Valid Usage Database (1.3.275)

VUID NAMECHECKEDSPIRV-TOOLTESTTYPEAPI/STRUCTEXTENSIONVUID TEXT
VUID-BaryCoordKHR-BaryCoordKHR-04154YYValidateBuiltIns.TargetIsVariable, VkLayerTest.VuidHashStabilityexplicitBaryCoordKHRcoreThe BaryCoordKHR decoration must be used only within the Fragment Execution Model
VUID-BaryCoordKHR-BaryCoordKHR-04155YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordKHRcoreThe variable decorated with BaryCoordKHR must be declared using the Input Storage Class
VUID-BaryCoordKHR-BaryCoordKHR-04156YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordKHRcoreThe variable decorated with BaryCoordKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157NNoneexplicitBaryCoordNoPerspAMDcoreThe BaryCoordNoPerspAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158NNoneexplicitBaryCoordNoPerspAMDcoreThe variable decorated with BaryCoordNoPerspAMD must be declared using the Input Storage Class
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159NNoneexplicitBaryCoordNoPerspAMDcoreThe variable decorated with BaryCoordNoPerspAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04163NNoneexplicitBaryCoordNoPerspCentroidAMDcoreThe BaryCoordNoPerspCentroidAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164NNoneexplicitBaryCoordNoPerspCentroidAMDcoreThe variable decorated with BaryCoordNoPerspCentroidAMD must be declared using the Input Storage Class
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165NNoneexplicitBaryCoordNoPerspCentroidAMDcoreThe variable decorated with BaryCoordNoPerspCentroidAMD must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04160YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordNoPerspKHRcoreThe BaryCoordNoPerspKHR decoration must be used only within the Fragment Execution Model
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04161YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordNoPerspKHRcoreThe variable decorated with BaryCoordNoPerspKHR must be declared using the Input Storage Class
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04162YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordNoPerspKHRcoreThe variable decorated with BaryCoordNoPerspKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166NNoneexplicitBaryCoordNoPerspSampleAMDcoreThe BaryCoordNoPerspSampleAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167NNoneexplicitBaryCoordNoPerspSampleAMDcoreThe variable decorated with BaryCoordNoPerspSampleAMD must be declared using the Input Storage Class
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168NNoneexplicitBaryCoordNoPerspSampleAMDcoreThe variable decorated with BaryCoordNoPerspSampleAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04169NNoneexplicitBaryCoordPullModelAMDcoreThe BaryCoordPullModelAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170NNoneexplicitBaryCoordPullModelAMDcoreThe variable decorated with BaryCoordPullModelAMD must be declared using the Input Storage Class
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171NNoneexplicitBaryCoordPullModelAMDcoreThe variable decorated with BaryCoordPullModelAMD must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04172NNoneexplicitBaryCoordSmoothAMDcoreThe BaryCoordSmoothAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173NNoneexplicitBaryCoordSmoothAMDcoreThe variable decorated with BaryCoordSmoothAMD must be declared using the Input Storage Class
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174NNoneexplicitBaryCoordSmoothAMDcoreThe variable decorated with BaryCoordSmoothAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04175NNoneexplicitBaryCoordSmoothCentroidAMDcoreThe BaryCoordSmoothCentroidAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176NNoneexplicitBaryCoordSmoothCentroidAMDcoreThe variable decorated with BaryCoordSmoothCentroidAMD must be declared using the Input Storage Class
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177NNoneexplicitBaryCoordSmoothCentroidAMDcoreThe variable decorated with BaryCoordSmoothCentroidAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04178NNoneexplicitBaryCoordSmoothSampleAMDcoreThe BaryCoordSmoothSampleAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179NNoneexplicitBaryCoordSmoothSampleAMDcoreThe variable decorated with BaryCoordSmoothSampleAMD must be declared using the Input Storage Class
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180NNoneexplicitBaryCoordSmoothSampleAMDcoreThe variable decorated with BaryCoordSmoothSampleAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaseInstance-BaseInstance-04181YYValidateLiterals.LiteralsKernelGoodexplicitBaseInstancecoreThe BaseInstance decoration must be used only within the Vertex Execution Model
VUID-BaseInstance-BaseInstance-04182YYValidateLiterals.LiteralsKernelGoodexplicitBaseInstancecoreThe variable decorated with BaseInstance must be declared using the Input Storage Class
VUID-BaseInstance-BaseInstance-04183YYValidateLiterals.LiteralsKernelGoodexplicitBaseInstancecoreThe variable decorated with BaseInstance must be declared as a scalar 32-bit integer value
VUID-BaseVertex-BaseVertex-04184YYValidateLiterals.LiteralsKernelGoodexplicitBaseVertexcoreThe BaseVertex decoration must be used only within the Vertex Execution Model
VUID-BaseVertex-BaseVertex-04185YYValidateLiterals.LiteralsKernelGoodexplicitBaseVertexcoreThe variable decorated with BaseVertex must be declared using the Input Storage Class
VUID-BaseVertex-BaseVertex-04186YYValidateLiterals.LiteralsKernelGoodexplicitBaseVertexcoreThe variable decorated with BaseVertex must be declared as a scalar 32-bit integer value
VUID-ClipDistance-ClipDistance-04187YYValidateLiterals.LiteralsKernelGoodexplicitClipDistancecoreThe ClipDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-ClipDistance-ClipDistance-04188YYValidateLiterals.LiteralsKernelGoodexplicitClipDistancecoreThe variable decorated with ClipDistance within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class
VUID-ClipDistance-ClipDistance-04189YYValidateLiterals.LiteralsKernelGoodexplicitClipDistancecoreThe variable decorated with ClipDistance within the Fragment Execution Model must be declared using the Input Storage Class
VUID-ClipDistance-ClipDistance-04190YYValidateLiterals.LiteralsKernelGoodexplicitClipDistancecoreThe variable decorated with ClipDistance within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared in a Storage Class other than Input or Output
VUID-ClipDistance-ClipDistance-04191YYValidateLiterals.LiteralsKernelGoodexplicitClipDistancecoreThe variable decorated with ClipDistance must be declared as an array of 32-bit floating-point values
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04192NNoneexplicitClipDistancePerViewNVcoreThe ClipDistancePerViewNV decoration must be used only within the MeshNV Execution Model
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04193NNoneexplicitClipDistancePerViewNVcoreThe variable decorated with ClipDistancePerViewNV must be declared using the Output Storage Class
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04194NNoneexplicitClipDistancePerViewNVcoreThe variable decorated with ClipDistancePerViewNV must also be decorated with the PerViewNV decoration
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195NNoneexplicitClipDistancePerViewNVcoreThe variable decorated with ClipDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values
VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07797NNoneexplicitClusterIDHUAWEIcoreThe ClusterIDHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07798NNoneexplicitClusterIDHUAWEIcoreThe variable decorated with ClusterIDHUAWEI must be declared as a scalar 32-bit integer value
VUID-ClusterShadingRateHUAWEI-ClusterShadingRateHUAWEI-09448NNoneexplicitClusterShadingRateHUAWEIcoreThe ClusterShadingRateHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-ClusterShadingRateHUAWEI-ClusterShadingRateHUAWEI-09449NNoneexplicitClusterShadingRateHUAWEIcoreThe variable decorated with ClusterShadingRateHUAWEI must be declared as a scalar 32-bit integer value
VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09172NNoneexplicitCoalescedInputCountAMDXcoreThe variable decorated with CoalescedInputCountAMDX must be declared using the Input Storage Class
VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09173NNoneexplicitCoalescedInputCountAMDXcoreIf a variable is decorated with CoalescedInputCountAMDX, the CoalescingAMDX execution mode must be declared
VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09174NNoneexplicitCoalescedInputCountAMDXcoreThe variable decorated with CoalescedInputCountAMDX must be declared as a scalar 32-bit integer value
VUID-CoreCountARM-CoreCountARM-07595NNoneexplicitCoreCountARMcoreThe variable decorated with CoreCountARM must be declared using the Input Storage Class
VUID-CoreCountARM-CoreCountARM-07596NNoneexplicitCoreCountARMcoreThe variable decorated with CoreCountARM must be declared as a scalar 32-bit integer value
VUID-CoreIDARM-CoreIDARM-07599NNoneexplicitCoreIDARMcoreThe variable decorated with CoreIDARM must be declared using the Input Storage Class
VUID-CoreIDARM-CoreIDARM-07600NNoneexplicitCoreIDARMcoreThe variable decorated with CoreIDARM must be declared as a scalar 32-bit integer value
VUID-CoreMaxIDARM-CoreMaxIDARM-07597NNoneexplicitCoreMaxIDARMcoreThe variable decorated with CoreMaxIDARM must be declared using the Input Storage Class
VUID-CoreMaxIDARM-CoreMaxIDARM-07598NNoneexplicitCoreMaxIDARMcoreThe variable decorated with CoreMaxIDARM must be declared as a scalar 32-bit integer value
VUID-CullDistance-CullDistance-04196YYValidateLiterals.LiteralsKernelGoodexplicitCullDistancecoreThe CullDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-CullDistance-CullDistance-04197YYValidateLiterals.LiteralsKernelGoodexplicitCullDistancecoreThe variable decorated with CullDistance within the MeshEXT, MeshNV or Vertex Execution Model must be declared using the Output Storage Class
VUID-CullDistance-CullDistance-04198YYValidateLiterals.LiteralsKernelGoodexplicitCullDistancecoreThe variable decorated with CullDistance within the Fragment Execution Model must be declared using the Input Storage Class
VUID-CullDistance-CullDistance-04199YYValidateLiterals.LiteralsKernelGoodexplicitCullDistancecoreThe variable decorated with CullDistance within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared using a Storage Class other than Input or Output
VUID-CullDistance-CullDistance-04200YYValidateLiterals.LiteralsKernelGoodexplicitCullDistancecoreThe variable decorated with CullDistance must be declared as an array of 32-bit floating-point values
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04201NNoneexplicitCullDistancePerViewNVcoreThe CullDistancePerViewNV decoration must be used only within the MeshNV Execution Model
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04202NNoneexplicitCullDistancePerViewNVcoreThe variable decorated with CullDistancePerViewNV must be declared using the Output Storage Class
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04203NNoneexplicitCullDistancePerViewNVcoreThe variable decorated with CullDistancePerViewNV must also be decorated with the PerViewNV decoration
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04204NNoneexplicitCullDistancePerViewNVcoreThe variable decorated with CullDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values
VUID-CullMaskKHR-CullMaskKHR-06735YYValidateLiterals.LiteralsKernelGoodexplicitCullMaskKHRcoreThe CullMaskKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-CullMaskKHR-CullMaskKHR-06736YYValidateLiterals.LiteralsKernelGoodexplicitCullMaskKHRcoreThe variable decorated with CullMaskKHR must be declared using the Input Storage Class
VUID-CullMaskKHR-CullMaskKHR-06737YYValidateLiterals.LiteralsKernelGoodexplicitCullMaskKHRcoreThe variable decorated with CullMaskKHR must be declared as a scalar 32-bit integer value
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07034NNoneexplicitCullPrimitiveEXTcoreThe CullPrimitiveEXT decoration must be used only within the MeshEXT Execution Model
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07035NNoneexplicitCullPrimitiveEXTcoreThe variable decorated with CullPrimitiveEXT must be declared using the Output Storage Class
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07036NNoneexplicitCullPrimitiveEXTcoreThe variable decorated with CullPrimitiveEXT must be declared as an array of boolean values
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07037NNoneexplicitCullPrimitiveEXTcoreThe size of the array decorated with CullPrimitiveEXT must match the value specified by OutputPrimitivesEXT
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07038NNoneexplicitCullPrimitiveEXTcoreThe variable decorated with CullPrimitiveEXT within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04942NNoneexplicitCurrentRayTimeNVcoreThe CurrentRayTimeNV decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04943NNoneexplicitCurrentRayTimeNVcoreThe variable decorated with CurrentRayTimeNV must be declared using the Input Storage Class
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04944NNoneexplicitCurrentRayTimeNVcoreThe variable decorated with CurrentRayTimeNV must be declared as a scalar 32-bit floating-point value
VUID-DeviceIndex-DeviceIndex-04205YYValidateLiterals.LiteralsKernelGoodexplicitDeviceIndexcoreThe variable decorated with DeviceIndex must be declared using the Input Storage Class
VUID-DeviceIndex-DeviceIndex-04206YYValidateLiterals.LiteralsKernelGoodexplicitDeviceIndexcoreThe variable decorated with DeviceIndex must be declared as a scalar 32-bit integer value
VUID-DrawIndex-DrawIndex-04207YYValidateLiterals.LiteralsKernelGoodexplicitDrawIndexcoreThe DrawIndex decoration must be used only within the Vertex, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-DrawIndex-DrawIndex-04208YYValidateLiterals.LiteralsKernelGoodexplicitDrawIndexcoreThe variable decorated with DrawIndex must be declared using the Input Storage Class
VUID-DrawIndex-DrawIndex-04209YYValidateLiterals.LiteralsKernelGoodexplicitDrawIndexcoreThe variable decorated with DrawIndex must be declared as a scalar 32-bit integer value
VUID-FirstIndexHUAWEI-FirstIndexHUAWEI-07799NNoneexplicitFirstIndexHUAWEIcoreThe FirstIndexHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-FirstIndexHUAWEI-FirstIndexHUAWEI-07800NNoneexplicitFirstIndexHUAWEIcoreThe variable decorated with FirstIndexHUAWEI must be declared as a scalar 32-bit integer value
VUID-FirstInstanceHUAWEI-FirstInstanceHUAWEI-07801NNoneexplicitFirstInstanceHUAWEIcoreThe FirstInstanceHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-FirstInstanceHUAWEI-FirstInstanceHUAWEI-07802NNoneexplicitFirstInstanceHUAWEIcoreThe variable decorated with FirstInstanceHUAWEI must be declared as a scalar 32-bit integer value
VUID-FirstVertexHUAWEI-FirstVertexHUAWEI-07803NNoneexplicitFirstVertexHUAWEIcoreThe FirstVertexHUAWEI decoration must be used only within the FirstVertexHUAWEI Execution Model
VUID-FirstVertexHUAWEI-FirstVertexHUAWEI-07804NNoneexplicitFirstVertexHUAWEIcoreThe variable decorated with FirstVertexHUAWEI must be declared as a scalar 32-bit integer value
VUID-FragCoord-FragCoord-04210YYValidateLiterals.LiteralsKernelGoodexplicitFragCoordcoreThe FragCoord decoration must be used only within the Fragment Execution Model
VUID-FragCoord-FragCoord-04211YYValidateLiterals.LiteralsKernelGoodexplicitFragCoordcoreThe variable decorated with FragCoord must be declared using the Input Storage Class
VUID-FragCoord-FragCoord-04212YYValidateLiterals.LiteralsKernelGoodexplicitFragCoordcoreThe variable decorated with FragCoord must be declared as a four-component vector of 32-bit floating-point values
VUID-FragDepth-FragDepth-04213YYValidateLiterals.LiteralsKernelGood, VkLayerTest.VuidHashStabilityexplicitFragDepthcoreThe FragDepth decoration must be used only within the Fragment Execution Model
VUID-FragDepth-FragDepth-04214YYValidateLiterals.LiteralsKernelGoodexplicitFragDepthcoreThe variable decorated with FragDepth must be declared using the Output Storage Class
VUID-FragDepth-FragDepth-04215YYValidateLiterals.LiteralsKernelGoodexplicitFragDepthcoreThe variable decorated with FragDepth must be declared as a scalar 32-bit floating-point value
VUID-FragDepth-FragDepth-04216YY, ValidateBuiltIns.VulkanFragmentFragDepthNoDepthReplacingexplicitFragDepthcoreIf the shader dynamically writes to the variable decorated with FragDepth, the DepthReplacing Execution Mode must be declared
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04217YYValidateBuiltIns.TargetIsVariableexplicitFragInvocationCountEXTcoreThe FragInvocationCountEXT decoration must be used only within the Fragment Execution Model
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04218YYValidateBuiltIns.TargetIsVariableexplicitFragInvocationCountEXTcoreThe variable decorated with FragInvocationCountEXT must be declared using the Input Storage Class
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04219YYValidateBuiltIns.TargetIsVariableexplicitFragInvocationCountEXTcoreThe variable decorated with FragInvocationCountEXT must be declared as a scalar 32-bit integer value
VUID-FragSizeEXT-FragSizeEXT-04220YYValidateBuiltIns.TargetIsVariableexplicitFragSizeEXTcoreThe FragSizeEXT decoration must be used only within the Fragment Execution Model
VUID-FragSizeEXT-FragSizeEXT-04221YYValidateBuiltIns.TargetIsVariableexplicitFragSizeEXTcoreThe variable decorated with FragSizeEXT must be declared using the Input Storage Class
VUID-FragSizeEXT-FragSizeEXT-04222YYValidateBuiltIns.TargetIsVariableexplicitFragSizeEXTcoreThe variable decorated with FragSizeEXT must be declared as a two-component vector of 32-bit integer values
VUID-FragStencilRefEXT-FragStencilRefEXT-04223YYValidateBuiltIns.TargetIsVariableexplicitFragStencilRefEXTcoreThe FragStencilRefEXT decoration must be used only within the Fragment Execution Model
VUID-FragStencilRefEXT-FragStencilRefEXT-04224YYValidateBuiltIns.TargetIsVariableexplicitFragStencilRefEXTcoreThe variable decorated with FragStencilRefEXT must be declared using the Output Storage Class
VUID-FragStencilRefEXT-FragStencilRefEXT-04225YYValidateBuiltIns.TargetIsVariableexplicitFragStencilRefEXTcoreThe variable decorated with FragStencilRefEXT must be declared as a scalar integer value
VUID-FragmentSizeNV-FragmentSizeNV-04226NNoneexplicitFragmentSizeNVcoreThe FragmentSizeNV decoration must be used only within the Fragment Execution Model
VUID-FragmentSizeNV-FragmentSizeNV-04227NNoneexplicitFragmentSizeNVcoreThe variable decorated with FragmentSizeNV must be declared using the Input Storage Class
VUID-FragmentSizeNV-FragmentSizeNV-04228NNoneexplicitFragmentSizeNVcoreThe variable decorated with FragmentSizeNV must be declared as a two-component vector of 32-bit integer values
VUID-FrontFacing-FrontFacing-04229YYValidateLiterals.LiteralsKernelGoodexplicitFrontFacingcoreThe FrontFacing decoration must be used only within the Fragment Execution Model
VUID-FrontFacing-FrontFacing-04230YYValidateLiterals.LiteralsKernelGoodexplicitFrontFacingcoreThe variable decorated with FrontFacing must be declared using the Input Storage Class
VUID-FrontFacing-FrontFacing-04231YYValidateLiterals.LiteralsKernelGoodexplicitFrontFacingcoreThe variable decorated with FrontFacing must be declared as a boolean value
VUID-FullyCoveredEXT-FullyCoveredEXT-04232YYValidateBuiltIns.TargetIsVariableexplicitFullyCoveredEXTcoreThe FullyCoveredEXT decoration must be used only within the Fragment Execution Model
VUID-FullyCoveredEXT-FullyCoveredEXT-04233YYValidateBuiltIns.TargetIsVariableexplicitFullyCoveredEXTcoreThe variable decorated with FullyCoveredEXT must be declared using the Input Storage Class
VUID-FullyCoveredEXT-FullyCoveredEXT-04234YYValidateBuiltIns.TargetIsVariableexplicitFullyCoveredEXTcoreThe variable decorated with FullyCoveredEXT must be declared as a boolean value
VUID-FullyCoveredEXT-conservativeRasterizationPostDepthCoverage-04235YNegativeShaderObject.ConservativeRasterizationPostDepthCoverage, NegativeShaderSpirv.ConservativeRasterizationPostDepthCoverageexplicitFullyCoveredEXTcoreIf VkPhysicalDeviceConservativeRasterizationPropertiesEXT::conservativeRasterizationPostDepthCoverage is not supported the PostDepthCoverage Execution Mode must not be declared, when a variable with the FullyCoveredEXT decoration is declared
VUID-GlobalInvocationId-GlobalInvocationId-04236YYValidateLiterals.LiteralsKernelGoodexplicitGlobalInvocationIdcoreThe GlobalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-GlobalInvocationId-GlobalInvocationId-04237YYValidateLiterals.LiteralsKernelGoodexplicitGlobalInvocationIdcoreThe variable decorated with GlobalInvocationId must be declared using the Input Storage Class
VUID-GlobalInvocationId-GlobalInvocationId-04238YYValidateLiterals.LiteralsKernelGoodexplicitGlobalInvocationIdcoreThe variable decorated with GlobalInvocationId must be declared as a three-component vector of 32-bit integer values
VUID-HelperInvocation-HelperInvocation-04239YYValidateLiterals.LiteralsKernelGoodexplicitHelperInvocationcoreThe HelperInvocation decoration must be used only within the Fragment Execution Model
VUID-HelperInvocation-HelperInvocation-04240YYValidateLiterals.LiteralsKernelGoodexplicitHelperInvocationcoreThe variable decorated with HelperInvocation must be declared using the Input Storage Class
VUID-HelperInvocation-HelperInvocation-04241YYValidateLiterals.LiteralsKernelGoodexplicitHelperInvocationcoreThe variable decorated with HelperInvocation must be declared as a boolean value
VUID-HitKindKHR-HitKindKHR-04242YYValidateLiterals.LiteralsKernelGoodexplicitHitKindKHRcoreThe HitKindKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR Execution Model
VUID-HitKindKHR-HitKindKHR-04243YYValidateLiterals.LiteralsKernelGoodexplicitHitKindKHRcoreThe variable decorated with HitKindKHR must be declared using the Input Storage Class
VUID-HitKindKHR-HitKindKHR-04244YYValidateLiterals.LiteralsKernelGoodexplicitHitKindKHRcoreThe variable decorated with HitKindKHR must be declared as a scalar 32-bit integer value
VUID-HitTNV-HitTNV-04245YYValidateLiterals.LiteralsKernelGoodexplicitHitTNVcoreThe HitTNV decoration must be used only within the AnyHitNV or ClosestHitNV Execution Model
VUID-HitTNV-HitTNV-04246YYValidateLiterals.LiteralsKernelGoodexplicitHitTNVcoreThe variable decorated with HitTNV must be declared using the Input Storage Class
VUID-HitTNV-HitTNV-04247YYValidateLiterals.LiteralsKernelGoodexplicitHitTNVcoreThe variable decorated with HitTNV must be declared as a scalar 32-bit floating-point value
VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08747NNoneexplicitHitTriangleVertexPositionsKHRcoreThe HitTriangleVertexPositionsKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR Execution Model
VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08748NNoneexplicitHitTriangleVertexPositionsKHRcoreThe variable decorated with HitTriangleVertexPositionsKHR must be declared using the Input Storage Class
VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08749NNoneexplicitHitTriangleVertexPositionsKHRcoreThe variable decorated with HitTriangleVertexPositionsKHR must be declared as an array of three vectors of three 32-bit float values
VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08750NNoneexplicitHitTriangleVertexPositionsKHRcoreThe variable decorated with HitTriangleVertexPositionsKHR must be used only if the value of HitKindKHR is HitKindFrontFacingTriangleKHR or HitKindBackFacingTriangleKHR
VUID-HitTriangleVertexPositionsKHR-None-08751NNoneexplicitHitTriangleVertexPositionsKHRcoreThe acceleration structure corresponding to the current intersection must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04248YYValidateLiterals.LiteralsKernelGoodexplicitIncomingRayFlagsKHRcoreThe IncomingRayFlagsKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04249YYValidateLiterals.LiteralsKernelGoodexplicitIncomingRayFlagsKHRcoreThe variable decorated with IncomingRayFlagsKHR must be declared using the Input Storage Class
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04250YYValidateLiterals.LiteralsKernelGoodexplicitIncomingRayFlagsKHRcoreThe variable decorated with IncomingRayFlagsKHR must be declared as a scalar 32-bit integer value
VUID-IndexCountHUAWEI-IndexCountHUAWEI-07805NNoneexplicitIndexCountHUAWEIcoreThe IndexCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-IndexCountHUAWEI-IndexCountHUAWEI-07806NNoneexplicitIndexCountHUAWEIcoreThe variable decorated with IndexCountHUAWEI must be declared as a scalar 32-bit integer value
VUID-InstanceCountHUAWEI-InstanceCountHUAWEI-07807NNoneexplicitInstanceCountHUAWEIcoreThe InstanceCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-InstanceCountHUAWEI-InstanceCountHUAWEI-07808NNoneexplicitInstanceCountHUAWEIcoreThe variable decorated with InstanceCountHUAWEI must be declared as a scalar 32-bit integer value
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04251YYValidateLiterals.LiteralsKernelGoodexplicitInstanceCustomIndexKHRcoreThe InstanceCustomIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04252YYValidateLiterals.LiteralsKernelGoodexplicitInstanceCustomIndexKHRcoreThe variable decorated with InstanceCustomIndexKHR must be declared using the Input Storage Class
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04253YYValidateLiterals.LiteralsKernelGoodexplicitInstanceCustomIndexKHRcoreThe variable decorated with InstanceCustomIndexKHR must be declared as a scalar 32-bit integer value
VUID-InstanceId-InstanceId-04254YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIdcoreThe InstanceId decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-InstanceId-InstanceId-04255YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIdcoreThe variable decorated with InstanceId must be declared using the Input Storage Class
VUID-InstanceId-InstanceId-04256YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIdcoreThe variable decorated with InstanceId must be declared as a scalar 32-bit integer value
VUID-InstanceIndex-InstanceIndex-04263YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIndexcoreThe InstanceIndex decoration must be used only within the Vertex Execution Model
VUID-InstanceIndex-InstanceIndex-04264YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIndexcoreThe variable decorated with InstanceIndex must be declared using the Input Storage Class
VUID-InstanceIndex-InstanceIndex-04265YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIndexcoreThe variable decorated with InstanceIndex must be declared as a scalar 32-bit integer value
VUID-InvocationId-InvocationId-04257YYValidateLiterals.LiteralsKernelGoodexplicitInvocationIdcoreThe InvocationId decoration must be used only within the TessellationControl or Geometry Execution Model
VUID-InvocationId-InvocationId-04258YYValidateLiterals.LiteralsKernelGoodexplicitInvocationIdcoreThe variable decorated with InvocationId must be declared using the Input Storage Class
VUID-InvocationId-InvocationId-04259YYValidateLiterals.LiteralsKernelGoodexplicitInvocationIdcoreThe variable decorated with InvocationId must be declared as a scalar 32-bit integer value
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04260NNoneexplicitInvocationsPerPixelNVcoreThe InvocationsPerPixelNV decoration must be used only within the Fragment Execution Model
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04261NNoneexplicitInvocationsPerPixelNVcoreThe variable decorated with InvocationsPerPixelNV must be declared using the Input Storage Class
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04262NNoneexplicitInvocationsPerPixelNVcoreThe variable decorated with InvocationsPerPixelNV must be declared as a scalar 32-bit integer value
VUID-LaunchIdKHR-LaunchIdKHR-04266YYValidateLiterals.LiteralsKernelGoodexplicitLaunchIdKHRcoreThe LaunchIdKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR Execution Model
VUID-LaunchIdKHR-LaunchIdKHR-04267YYValidateLiterals.LiteralsKernelGoodexplicitLaunchIdKHRcoreThe variable decorated with LaunchIdKHR must be declared using the Input Storage Class
VUID-LaunchIdKHR-LaunchIdKHR-04268YYValidateLiterals.LiteralsKernelGoodexplicitLaunchIdKHRcoreThe variable decorated with LaunchIdKHR must be declared as a three-component vector of 32-bit integer values
VUID-LaunchSizeKHR-LaunchSizeKHR-04269YYValidateLiterals.LiteralsKernelGoodexplicitLaunchSizeKHRcoreThe LaunchSizeKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR Execution Model
VUID-LaunchSizeKHR-LaunchSizeKHR-04270YYValidateLiterals.LiteralsKernelGoodexplicitLaunchSizeKHRcoreThe variable decorated with LaunchSizeKHR must be declared using the Input Storage Class
VUID-LaunchSizeKHR-LaunchSizeKHR-04271YYValidateLiterals.LiteralsKernelGoodexplicitLaunchSizeKHRcoreThe variable decorated with LaunchSizeKHR must be declared as a three-component vector of 32-bit integer values
VUID-Layer-Layer-04272YYValidateLiterals.LiteralsKernelGoodexplicitLayercoreThe Layer decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment Execution Model
VUID-Layer-Layer-04273YYValidateLiterals.LiteralsKernelGoodexplicitLayercoreIf the shaderOutputLayer feature is not enabled then the Layer decoration must be used only within the Geometry or Fragment Execution Model
VUID-Layer-Layer-04274YYValidateLiterals.LiteralsKernelGoodexplicitLayercoreThe variable decorated with Layer within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry Execution Model must be declared using the Output Storage Class
VUID-Layer-Layer-04275YYValidateLiterals.LiteralsKernelGoodexplicitLayercoreThe variable decorated with Layer within the Fragment Execution Model must be declared using the Input Storage Class
VUID-Layer-Layer-04276YYValidateLiterals.LiteralsKernelGoodexplicitLayercoreThe variable decorated with Layer must be declared as a scalar 32-bit integer value
VUID-Layer-Layer-07039NNoneexplicitLayercoreThe variable decorated with Layer within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-LayerPerViewNV-LayerPerViewNV-04277NNoneexplicitLayerPerViewNVcoreThe LayerPerViewNV decoration must be used only within the MeshNV Execution Model
VUID-LayerPerViewNV-LayerPerViewNV-04278NNoneexplicitLayerPerViewNVcoreThe variable decorated with LayerPerViewNV must be declared using the Output Storage Class
VUID-LayerPerViewNV-LayerPerViewNV-04279NNoneexplicitLayerPerViewNVcoreThe variable decorated with LayerPerViewNV must also be decorated with the PerViewNV decoration
VUID-LayerPerViewNV-LayerPerViewNV-04280NNoneexplicitLayerPerViewNVcoreThe variable decorated with LayerPerViewNV must be declared as an array of scalar 32-bit integer values
VUID-LocalInvocationId-LocalInvocationId-04281YYValidateLiterals.LiteralsKernelGoodexplicitLocalInvocationIdcoreThe LocalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-LocalInvocationId-LocalInvocationId-04282YYValidateLiterals.LiteralsKernelGoodexplicitLocalInvocationIdcoreThe variable decorated with LocalInvocationId must be declared using the Input Storage Class
VUID-LocalInvocationId-LocalInvocationId-04283YYValidateLiterals.LiteralsKernelGoodexplicitLocalInvocationIdcoreThe variable decorated with LocalInvocationId must be declared as a three-component vector of 32-bit integer values
VUID-LocalInvocationIndex-LocalInvocationIndex-04284NNoneexplicitLocalInvocationIndexcoreThe LocalInvocationIndex decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-LocalInvocationIndex-LocalInvocationIndex-04285NNoneexplicitLocalInvocationIndexcoreThe variable decorated with LocalInvocationIndex must be declared using the Input Storage Class
VUID-LocalInvocationIndex-LocalInvocationIndex-04286NNoneexplicitLocalInvocationIndexcoreThe variable decorated with LocalInvocationIndex must be declared as a scalar 32-bit integer value
VUID-MeshViewCountNV-MeshViewCountNV-04287NNoneexplicitMeshViewCountNVcoreThe MeshViewCountNV decoration must be used only within the MeshNV or TaskNV Execution Model
VUID-MeshViewCountNV-MeshViewCountNV-04288NNoneexplicitMeshViewCountNVcoreThe variable decorated with MeshViewCountNV must be declared using the Input Storage Class
VUID-MeshViewCountNV-MeshViewCountNV-04289NNoneexplicitMeshViewCountNVcoreThe variable decorated with MeshViewCountNV must be declared as a scalar 32-bit integer value
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04290NNoneexplicitMeshViewIndicesNVcoreThe MeshViewIndicesNV decoration must be used only within the MeshNV or TaskNV Execution Model
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04291NNoneexplicitMeshViewIndicesNVcoreThe variable decorated with MeshViewIndicesNV must be declared using the Input Storage Class
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04292NNoneexplicitMeshViewIndicesNVcoreThe variable decorated with MeshViewIndicesNV must be declared as an array of scalar 32-bit integer values
VUID-NumSubgroups-NumSubgroups-04293YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitNumSubgroupscoreThe NumSubgroups decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-NumSubgroups-NumSubgroups-04294YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitNumSubgroupscoreThe variable decorated with NumSubgroups must be declared using the Input Storage Class
VUID-NumSubgroups-NumSubgroups-04295YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitNumSubgroupscoreThe variable decorated with NumSubgroups must be declared as a scalar 32-bit integer value
VUID-NumWorkgroups-NumWorkgroups-04296YYValidateLiterals.LiteralsKernelGoodexplicitNumWorkgroupscoreThe NumWorkgroups decoration must be used only within the GLCompute, MeshEXT, or TaskEXT Execution Model
VUID-NumWorkgroups-NumWorkgroups-04297YYValidateLiterals.LiteralsKernelGoodexplicitNumWorkgroupscoreThe variable decorated with NumWorkgroups must be declared using the Input Storage Class
VUID-NumWorkgroups-NumWorkgroups-04298YYValidateLiterals.LiteralsKernelGoodexplicitNumWorkgroupscoreThe variable decorated with NumWorkgroups must be declared as a three-component vector of 32-bit integer values
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04299YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayDirectionKHRcoreThe ObjectRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04300YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayDirectionKHRcoreThe variable decorated with ObjectRayDirectionKHR must be declared using the Input Storage Class
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04301YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayDirectionKHRcoreThe variable decorated with ObjectRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04302YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayOriginKHRcoreThe ObjectRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04303YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayOriginKHRcoreThe variable decorated with ObjectRayOriginKHR must be declared using the Input Storage Class
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04304YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayOriginKHRcoreThe variable decorated with ObjectRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04305YYValidateLiterals.LiteralsKernelGoodexplicitObjectToWorldKHRcoreThe ObjectToWorldKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04306YYValidateLiterals.LiteralsKernelGoodexplicitObjectToWorldKHRcoreThe variable decorated with ObjectToWorldKHR must be declared using the Input Storage Class
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04307YYValidateLiterals.LiteralsKernelGoodexplicitObjectToWorldKHRcoreThe variable decorated with ObjectToWorldKHR must be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values
VUID-PFN_vkDebugUtilsMessengerCallbackEXT-None-04769NNoneexplicitPFN_vkDebugUtilsMessengerCallbackEXTcoreThe callback must not make calls to any Vulkan commands
VUID-PatchVertices-PatchVertices-04308YYValidateLiterals.LiteralsKernelGoodexplicitPatchVerticescoreThe PatchVertices decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model
VUID-PatchVertices-PatchVertices-04309YYValidateLiterals.LiteralsKernelGoodexplicitPatchVerticescoreThe variable decorated with PatchVertices must be declared using the Input Storage Class
VUID-PatchVertices-PatchVertices-04310YYValidateLiterals.LiteralsKernelGoodexplicitPatchVerticescoreThe variable decorated with PatchVertices must be declared as a scalar 32-bit integer value
VUID-PointCoord-PointCoord-04311YYValidateLiterals.LiteralsKernelGoodexplicitPointCoordcoreThe PointCoord decoration must be used only within the Fragment Execution Model
VUID-PointCoord-PointCoord-04312YYValidateLiterals.LiteralsKernelGoodexplicitPointCoordcoreThe variable decorated with PointCoord must be declared using the Input Storage Class
VUID-PointCoord-PointCoord-04313YYValidateLiterals.LiteralsKernelGoodexplicitPointCoordcoreThe variable decorated with PointCoord must be declared as a two-component vector of 32-bit floating-point values
VUID-PointSize-PointSize-04314YYValidateLiterals.LiteralsKernelGoodexplicitPointSizecoreThe PointSize decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-PointSize-PointSize-04315YYValidateLiterals.LiteralsKernelGoodexplicitPointSizecoreThe variable decorated with PointSize within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class
VUID-PointSize-PointSize-04316YYNoneexplicitPointSizecoreThe variable decorated with PointSize within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared using a Storage Class other than Input or Output
VUID-PointSize-PointSize-04317YYValidateLiterals.LiteralsKernelGoodexplicitPointSizecoreThe variable decorated with PointSize must be declared as a scalar 32-bit floating-point value
VUID-Position-Position-04318YYValidateLiterals.LiteralsKernelGoodexplicitPositioncoreThe Position decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-Position-Position-04319YYValidateLiterals.LiteralsKernelGoodexplicitPositioncoreThe variable decorated with Position within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class
VUID-Position-Position-04320YYValidateLiterals.LiteralsKernelGoodexplicitPositioncoreThe variable decorated with Position within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared using a Storage Class other than Input or Output
VUID-Position-Position-04321YYValidateLiterals.LiteralsKernelGoodexplicitPositioncoreThe variable decorated with Position must be declared as a four-component vector of 32-bit floating-point values
VUID-PositionPerViewNV-PositionPerViewNV-04322NNoneexplicitPositionPerViewNVcoreThe PositionPerViewNV decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-PositionPerViewNV-PositionPerViewNV-04323NNoneexplicitPositionPerViewNVcoreThe variable decorated with PositionPerViewNV within the Vertex, or MeshNV Execution Model must be declared using the Output Storage Class
VUID-PositionPerViewNV-PositionPerViewNV-04324NNoneexplicitPositionPerViewNVcoreThe variable decorated with PositionPerViewNV within the TessellationControl, TessellationEvaluation, or Geometry Execution Model must not be declared using a Storage Class other than Input or Output
VUID-PositionPerViewNV-PositionPerViewNV-04325NNoneexplicitPositionPerViewNVcoreThe variable decorated with PositionPerViewNV must be declared as an array of four-component vector of 32-bit floating-point values with at least as many elements as the maximum view in the subpass's view mask plus one
VUID-PositionPerViewNV-PositionPerViewNV-04326NNoneexplicitPositionPerViewNVcoreThe array variable decorated with PositionPerViewNV must only be indexed by a constant or specialization constant
VUID-PrimitiveCountNV-PrimitiveCountNV-04327NNoneexplicitPrimitiveCountNVcoreThe PrimitiveCountNV decoration must be used only within the MeshNV Execution Model
VUID-PrimitiveCountNV-PrimitiveCountNV-04328NNoneexplicitPrimitiveCountNVcoreThe variable decorated with PrimitiveCountNV must be declared using the Output Storage Class
VUID-PrimitiveCountNV-PrimitiveCountNV-04329NNoneexplicitPrimitiveCountNVcoreThe variable decorated with PrimitiveCountNV must be declared as a scalar 32-bit integer value
VUID-PrimitiveId-Fragment-04331NNoneexplicitPrimitiveIdcoreIf pipeline contains both the Fragment and Geometry Execution Model and a variable decorated with PrimitiveId is read from Fragment shader, then the Geometry shader must write to the output variables decorated with PrimitiveId in all execution paths
VUID-PrimitiveId-Fragment-04332NNoneexplicitPrimitiveIdcoreIf pipeline contains both the Fragment and MeshEXT or MeshNV Execution Model and a variable decorated with PrimitiveId is read from Fragment shader, then the MeshEXT or MeshNV shader must write to the output variables decorated with PrimitiveId in all execution paths
VUID-PrimitiveId-Fragment-04333NNoneexplicitPrimitiveIdcoreIf Fragment Execution Model contains a variable decorated with PrimitiveId, then either the MeshShadingEXT, MeshShadingNV, Geometry or Tessellation capability must also be declared
VUID-PrimitiveId-PrimitiveId-04330YYValidateLiterals.LiteralsKernelGoodexplicitPrimitiveIdcoreThe PrimitiveId decoration must be used only within the MeshEXT, MeshNV, IntersectionKHR, AnyHitKHR, ClosestHitKHR, TessellationControl, TessellationEvaluation, Geometry, or Fragment Execution Model
VUID-PrimitiveId-PrimitiveId-04334YYValidateLiterals.LiteralsKernelGoodexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId within the TessellationControl, TessellationEvaluation, Fragment, IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model must be declared using the Input Storage Class
VUID-PrimitiveId-PrimitiveId-04335NNoneexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId within the Geometry Execution Model must be declared using the Input or Output Storage Class
VUID-PrimitiveId-PrimitiveId-04336NNoneexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId within the MeshEXT or MeshNV Execution Model must be declared using the Output Storage Class
VUID-PrimitiveId-PrimitiveId-04337YYValidateLiterals.LiteralsKernelGoodexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value
VUID-PrimitiveId-PrimitiveId-07040NNoneexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-PrimitiveIndicesNV-OutputLinesNV-04343NNoneexplicitPrimitiveIndicesNVcoreIf the Execution Mode is OutputLinesNV, then the array decorated with PrimitiveIndicesNV must be the size of two times the value specified by OutputPrimitivesNV
VUID-PrimitiveIndicesNV-OutputPoints-04342NNoneexplicitPrimitiveIndicesNVcoreIf the Execution Mode is OutputPoints, then the array decorated with PrimitiveIndicesNV must be the size of the value specified by OutputPrimitivesNV
VUID-PrimitiveIndicesNV-OutputTrianglesNV-04344NNoneexplicitPrimitiveIndicesNVcoreIf the Execution Mode is OutputTrianglesNV, then the array decorated with PrimitiveIndicesNV must be the size of three times the value specified by OutputPrimitivesNV
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04338NNoneexplicitPrimitiveIndicesNVcoreThe PrimitiveIndicesNV decoration must be used only within the MeshNV Execution Model
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04339NNoneexplicitPrimitiveIndicesNVcoreThe variable decorated with PrimitiveIndicesNV must be declared using the Output Storage Class
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04340NNoneexplicitPrimitiveIndicesNVcoreThe variable decorated with PrimitiveIndicesNV must be declared as an array of scalar 32-bit integer values
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04341NNoneexplicitPrimitiveIndicesNVcoreAll index values of the array decorated with PrimitiveIndicesNV must be in the range [0, N-1], where N is the value specified by the OutputVertices Execution Mode
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07047NNoneexplicitPrimitiveLineIndicesEXTcoreThe PrimitiveLineIndicesEXT decoration must be used only within the MeshEXT Execution Model
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07048NNoneexplicitPrimitiveLineIndicesEXTcoreThe PrimitiveLineIndicesEXT decoration must be used with the OutputLinesEXT Execution Mode
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07049NNoneexplicitPrimitiveLineIndicesEXTcoreThe variable decorated with PrimitiveLineIndicesEXT must be declared using the Output Storage Class
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07050NNoneexplicitPrimitiveLineIndicesEXTcoreThe variable decorated with PrimitiveLineIndicesEXT must be declared as an array of two component vector 32-bit integer values
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07051NNoneexplicitPrimitiveLineIndicesEXTcoreAll index values of the array decorated with PrimitiveLineIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices Execution Mode
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07052NNoneexplicitPrimitiveLineIndicesEXTcoreThe size of the array decorated with PrimitiveLineIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07041NNoneexplicitPrimitivePointIndicesEXTcoreThe PrimitivePointIndicesEXT decoration must be used only within the MeshEXT Execution Model
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07042NNoneexplicitPrimitivePointIndicesEXTcoreThe PrimitivePointIndicesEXT decoration must be used with the OutputPoints Execution Mode
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07043NNoneexplicitPrimitivePointIndicesEXTcoreThe variable decorated with PrimitivePointIndicesEXT must be declared using the Output Storage Class
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07044NNoneexplicitPrimitivePointIndicesEXTcoreThe variable decorated with PrimitivePointIndicesEXT must be declared as an array of scalar 32-bit integer values
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07045NNoneexplicitPrimitivePointIndicesEXTcoreAll index values of the array decorated with PrimitivePointIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices Execution Mode
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07046NNoneexplicitPrimitivePointIndicesEXTcoreThe size of the array decorated with PrimitivePointIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484YYValidateBuiltIns.TargetIsVariableexplicitPrimitiveShadingRateKHRcoreThe PrimitiveShadingRateKHR decoration must be used only within the MeshEXT, MeshNV, Vertex, or Geometry Execution Model
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485YYValidateBuiltIns.TargetIsVariableexplicitPrimitiveShadingRateKHRcoreThe variable decorated with PrimitiveShadingRateKHR must be declared using the Output Storage Class
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486YYValidateBuiltIns.TargetIsVariableexplicitPrimitiveShadingRateKHRcoreThe variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487NNoneexplicitPrimitiveShadingRateKHRcoreThe value written to PrimitiveShadingRateKHR must include no more than one of Vertical2Pixels and Vertical4Pixels
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488NNoneexplicitPrimitiveShadingRateKHRcoreThe value written to PrimitiveShadingRateKHR must include no more than one of Horizontal2Pixels and Horizontal4Pixels
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489NNoneexplicitPrimitiveShadingRateKHRcoreThe value written to PrimitiveShadingRateKHR must not have any bits set other than those defined by Fragment Shading Rate Flags enumerants in the SPIR-V specification
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-07059NNoneexplicitPrimitiveShadingRateKHRcoreThe variable decorated with PrimitiveShadingRateKHR within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07053NNoneexplicitPrimitiveTriangleIndicesEXTcoreThe PrimitiveTriangleIndicesEXT decoration must be used only within the MeshEXT Execution Model
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07054NNoneexplicitPrimitiveTriangleIndicesEXTcoreThe PrimitiveTriangleIndicesEXT decoration must be used with the OutputTrianglesEXT Execution Mode
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07055NNoneexplicitPrimitiveTriangleIndicesEXTcoreThe variable decorated with PrimitiveTriangleIndicesEXT must be declared using the Output Storage Class
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07056NNoneexplicitPrimitiveTriangleIndicesEXTcoreThe variable decorated with PrimitiveTriangleIndicesEXT must be declared as an array of three component vector 32-bit integer values
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07057NNoneexplicitPrimitiveTriangleIndicesEXTcoreAll index values of the array decorated with PrimitiveTriangleIndicesEXT must be in the range [0, N-1], where N is the value specified by the OutputVertices Execution Mode
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07058NNoneexplicitPrimitiveTriangleIndicesEXTcoreThe size of the array decorated with PrimitiveTriangleIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04345YYValidateLiterals.LiteralsKernelGoodexplicitRayGeometryIndexKHRcoreThe RayGeometryIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346YYValidateLiterals.LiteralsKernelGoodexplicitRayGeometryIndexKHRcoreThe variable decorated with RayGeometryIndexKHR must be declared using the Input Storage Class
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347YYValidateLiterals.LiteralsKernelGoodexplicitRayGeometryIndexKHRcoreThe variable decorated with RayGeometryIndexKHR must be declared as a scalar 32-bit integer value
VUID-RayTmaxKHR-RayTmaxKHR-04348YYValidateLiterals.LiteralsKernelGoodexplicitRayTmaxKHRcoreThe RayTmaxKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-RayTmaxKHR-RayTmaxKHR-04349YYValidateLiterals.LiteralsKernelGood, VkLayerTest.VuidHashStabilityexplicitRayTmaxKHRcoreThe variable decorated with RayTmaxKHR must be declared using the Input Storage Class
VUID-RayTmaxKHR-RayTmaxKHR-04350YYValidateLiterals.LiteralsKernelGoodexplicitRayTmaxKHRcoreThe variable decorated with RayTmaxKHR must be declared as a scalar 32-bit floating-point value
VUID-RayTminKHR-RayTminKHR-04351YYValidateLiterals.LiteralsKernelGoodexplicitRayTminKHRcoreThe RayTminKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-RayTminKHR-RayTminKHR-04352YYValidateLiterals.LiteralsKernelGoodexplicitRayTminKHRcoreThe variable decorated with RayTminKHR must be declared using the Input Storage Class
VUID-RayTminKHR-RayTminKHR-04353YYValidateLiterals.LiteralsKernelGoodexplicitRayTminKHRcoreThe variable decorated with RayTminKHR must be declared as a scalar 32-bit floating-point value
VUID-RuntimeSpirv-DescriptorSet-06323NNoneexplicitRuntimeSpirvcoreDescriptorSet and Binding decorations must obey the constraints on Storage Class, type, and descriptor type described in DescriptorSet and Binding Assignment
VUID-RuntimeSpirv-KSize-08977YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSize, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, the type of B must have VkCooperativeMatrixPropertiesKHR::KSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::BType.
VUID-RuntimeSpirv-LocalSizeId-06434YNegativeShaderCompute.LocalSizeIdExecutionMode, NegativeShaderObject.LocalSizeIdExecutionModeexplicitRuntimeSpirvcoreIf Execution Mode LocalSizeId is used, maintenance4 must be enabled
VUID-RuntimeSpirv-Location-06272YNegativeGeometryTessellation.MaxGeometryInputOutputComponents, NegativeGeometryTessellation.MaxTessellationControlInputOutputComponents, NegativeGeometryTessellation.MaxTessellationEvaluationInputOutputComponents, NegativeShaderInterface.MaxComponentsBlocks, NegativeShaderInterface.MaxFragmentComponentsWithBuiltins, NegativeShaderInterface.MaxFragmentInputComponents, NegativeShaderInterface.MaxVertexComponentsWithBuiltins, NegativeShaderInterface.MaxVertexOutputComponentsexplicitRuntimeSpirvcoreThe sum of Location and the number of locations the variable it decorates consumes must be less than or equal to the value for the matching Execution Model defined in Shader Input and Output Locations
VUID-RuntimeSpirv-Location-06428NNoneexplicitRuntimeSpirvcoreThe maximum number of storage buffers, storage images, and output Location decorated color attachments written to in the Fragment Execution Model must be less than or equal to maxFragmentCombinedOutputResources
VUID-RuntimeSpirv-MSize-08975YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSize, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, the type of A must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::AType.
VUID-RuntimeSpirv-MSize-08979YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSize, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, the type of C must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::CType.
VUID-RuntimeSpirv-MSize-08981YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSize, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, the type of Result must have VkCooperativeMatrixPropertiesKHR::MSize rows and VkCooperativeMatrixPropertiesKHR::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::ResultType.
VUID-RuntimeSpirv-MeshEXT-07115YNegativeMesh.RuntimeSpirv, NegativeShaderObject.MeshOutputVerticesexplicitRuntimeSpirvcoreFor mesh shaders using the MeshEXT Execution Model the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices
VUID-RuntimeSpirv-MeshEXT-07116YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreFor mesh shaders using the MeshEXT Execution Model the OutputPrimitivesEXT OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives
VUID-RuntimeSpirv-MeshEXT-07118NNoneexplicitRuntimeSpirvcoreIn mesh shaders using the MeshEXT Execution Model OpSetMeshOutputsEXT must be called at most once under dynamically uniform conditions
VUID-RuntimeSpirv-MeshEXT-07295YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreFor mesh shaders using the MeshEXT Execution Model the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[0]
VUID-RuntimeSpirv-MeshEXT-07296YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreFor mesh shaders using the MeshEXT Execution Model the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[1]
VUID-RuntimeSpirv-MeshEXT-07297YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreFor mesh shaders using the MeshEXT Execution Model the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[2]
VUID-RuntimeSpirv-MeshEXT-07298YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreFor mesh shaders using the MeshEXT Execution Model the product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupInvocations
VUID-RuntimeSpirv-MeshEXT-07332NNoneexplicitRuntimeSpirvcoreFor mesh shaders using the MeshEXT Execution Model the "Vertex Count" operand of OpSetMeshOutputsEXT must be less than or equal to OutputVertices OpExecutionMode
VUID-RuntimeSpirv-MeshEXT-07333NNoneexplicitRuntimeSpirvcoreFor mesh shaders using the MeshEXT Execution Model the "Primitive Count" operand of OpSetMeshOutputsEXT must be less than or equal to OutputPrimitivesEXT OpExecutionMode
VUID-RuntimeSpirv-MeshEXT-09218NNoneexplicitRuntimeSpirvcoreIn mesh shaders using the MeshEXT or MeshNV Execution Model and the OutputPoints Execution Mode, if maintenance5 is not enabled, and if the number of output points is greater than 0, a PointSize decorated variable must be written to for each output point
VUID-RuntimeSpirv-MeshNV-07113YNegativeMesh.RuntimeSpirvNVexplicitRuntimeSpirvcoreFor mesh shaders using the MeshNV Execution Model the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices
VUID-RuntimeSpirv-MeshNV-07114YNegativeMesh.RuntimeSpirvNVexplicitRuntimeSpirvcoreFor mesh shaders using the MeshNV Execution Model the OutputPrimitivesNV OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives
VUID-RuntimeSpirv-NodePayloadAMDX-09192NNoneexplicitRuntimeSpirvcoreVariables in the NodePayloadAMDX storage class must only be declared in the GLCompute execution model
VUID-RuntimeSpirv-NonUniform-06274NNoneexplicitRuntimeSpirvcoreIf an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated with NonUniform
VUID-RuntimeSpirv-NonWritable-06340YNegativeAtomic.FragmentStoresAndAtomicsFeatureDisableexplicitRuntimeSpirvcoreIf fragmentStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage must be decorated with the NonWritable decoration
VUID-RuntimeSpirv-NonWritable-06341YNegativeAtomic.VertexStoresAndAtomicsFeatureDisableexplicitRuntimeSpirvcoreIf vertexPipelineStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages must be decorated with the NonWritable decoration
VUID-RuntimeSpirv-None-06275YNegativeShaderObject.ExtendedTypesDisabled, NegativeSubgroup.ExtendedTypesDisabledexplicitRuntimeSpirvcoreshaderSubgroupExtendedTypes must be enabled for group operations to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types
VUID-RuntimeSpirv-None-06278YNegativeAtomic.Int64, NegativeShaderObject.AtomicsexplicitRuntimeSpirvcoreshaderBufferInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of StorageBuffer or Uniform
VUID-RuntimeSpirv-None-06279YNegativeAtomic.Int64explicitRuntimeSpirvcoreshaderSharedInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Workgroup
VUID-RuntimeSpirv-None-06284YNegativeAtomic.Float, NegativeAtomic.Float2explicitRuntimeSpirvcoreshaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderBufferFloat32AtomicMinMax, or shaderBufferFloat64AtomicMinMax must be enabled for floating-point atomic operations to be supported on a Pointer with a Storage Class of StorageBuffer
VUID-RuntimeSpirv-None-06285YNegativeAtomic.Float, NegativeAtomic.Float2explicitRuntimeSpirvcoreshaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax, or shaderSharedFloat32AtomicMinMax, or shaderSharedFloat64AtomicMinMax must be enabled for floating-point atomic operations to be supported on a Pointer with a Storage Class of Workgroup
VUID-RuntimeSpirv-None-06286YNegativeAtomic.Float, NegativeAtomic.Float2, NegativeAtomic.FragmentStoresAndAtomicsFeatureDisable, NegativeAtomic.VertexStoresAndAtomicsFeatureDisableexplicitRuntimeSpirvcoreshaderImageFloat32Atomics, or shaderImageFloat32AtomicAdd, or shaderImageFloat32AtomicMinMax must be enabled for 32-bit floating-point atomic operations to be supported on a Pointer with a Storage Class of Image
VUID-RuntimeSpirv-None-06287NNoneexplicitRuntimeSpirvcoresparseImageFloat32Atomics, or sparseImageFloat32AtomicAdd, or sparseImageFloat32AtomicMinMax must be enabled for 32-bit floating-point atomics to be supported on sparse images
VUID-RuntimeSpirv-None-06288YNegativeAtomic.ImageInt64explicitRuntimeSpirvcoreshaderImageInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Image
VUID-RuntimeSpirv-None-06337YNoneexplicitRuntimeSpirvcoreshaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax must be enabled for 16-bit floating point atomic operations
VUID-RuntimeSpirv-None-06338YNegativeAtomic.Float2WidthMismatchexplicitRuntimeSpirvcoreshaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderImageFloat32Atomics, or shaderImageFloat32AtomicAdd or shaderBufferFloat32AtomicMinMax, or shaderSharedFloat32AtomicMinMax, or shaderImageFloat32AtomicMinMax must be enabled for 32-bit floating point atomic operations
VUID-RuntimeSpirv-None-06339YNoneexplicitRuntimeSpirvcoreshaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderBufferFloat64AtomicMinMax, or shaderSharedFloat64AtomicMinMax, must be enabled for 64-bit floating point atomic operations
VUID-RuntimeSpirv-None-06342YNegativeSubgroup.PropertiesexplicitRuntimeSpirvcoreIf subgroupQuadOperationsInAllStages is VK_FALSE, then quad subgroup operations must not be used except for in fragment and compute stages
VUID-RuntimeSpirv-None-06343YNegativeSubgroup.PropertiesexplicitRuntimeSpirvcoreGroup operations with subgroup scope must not be used if the shader stage is not in subgroupSupportedStages
VUID-RuntimeSpirv-Offset-06308YNegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvcoreThe Offset plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with XfbBuffer must not be greater than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataSize
VUID-RuntimeSpirv-Offset-06344NNoneexplicitRuntimeSpirvcoreThe first element of the Offset operand of InterpolateAtOffset must be greater than or equal to: fragwidth × minInterpolationOffset where fragwidth is the width of the current fragment in pixels
VUID-RuntimeSpirv-Offset-06345NNoneexplicitRuntimeSpirvcoreThe first element of the Offset operand of InterpolateAtOffset must be less than or equal to fragwidth × (maxInterpolationOffset + ULP ) - ULP where fragwidth is the width of the current fragment in pixels and ULP = 1 / 2^subPixelInterpolationOffsetBits^
VUID-RuntimeSpirv-Offset-06346NNoneexplicitRuntimeSpirvcoreThe second element of the Offset operand of InterpolateAtOffset must be greater than or equal to fragheight × minInterpolationOffset where fragheight is the height of the current fragment in pixels
VUID-RuntimeSpirv-Offset-06347NNoneexplicitRuntimeSpirvcoreThe second element of the Offset operand of InterpolateAtOffset must be less than or equal to fragheight × (maxInterpolationOffset + ULP ) - ULP where fragheight is the height of the current fragment in pixels and ULP = 1 / 2^subPixelInterpolationOffsetBits^.
VUID-RuntimeSpirv-OpCooperativeMatrixLoadKHR-08986NNoneexplicitRuntimeSpirvcoreFor OpCooperativeMatrixLoadKHR and OpCooperativeMatrixStoreKHR instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size).
VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324NNoneexplicitRuntimeSpirvcoreFor OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08976YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSize, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, when the component type of A is a signed integer type, the MatrixASignedComponents cooperative matrix operand must be present.
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08978YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSize, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, when the component type of B is a signed integer type, the MatrixBSignedComponents cooperative matrix operand must be present.
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08980YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSize, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, when the component type of C is a signed integer type, the MatrixCSignedComponents cooperative matrix operand must be present.
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08982YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSize, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, when the component type of Result is a signed integer type, the MatrixResultSignedComponents cooperative matrix operand must be present.
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06317YNoneexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddNV, the type of A must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::AType
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318YNoneexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddNV, the type of B must have VkCooperativeMatrixPropertiesNV::KSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::BType
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06319YNoneexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddNV, the type of C must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::CType
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06320YNoneexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddNV, the type of Result must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::DType
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06321NNoneexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddNV, the type of A, B, C, and Result must all have a scope of scope
VUID-RuntimeSpirv-OpEmitStreamVertex-06310YNegativeShaderObject.MaxTransformFeedbackStream, NegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvcoreThe Stream value to OpEmitStreamVertex and OpEndStreamPrimitive must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-RuntimeSpirv-OpEntryPoint-07754YNegativeShaderInterface.InputOutputMismatch, NegativeShaderInterface.VsFsTypeMismatch, NegativeShaderInterface.VsFsTypeMismatchBlockArrayOfStruct, NegativeShaderInterface.VsFsTypeMismatchBlockNestedStructType64bit, NegativeShaderInterface.VsFsTypeMismatchBlockStruct, NegativeShaderInterface.VsFsTypeMismatchBlockStruct64bit, NegativeShaderInterface.VsFsTypeMismatchBlockStructArraySizeVertex, NegativeShaderInterface.VsFsTypeMismatchBlockStructInnerArraySize, NegativeShaderInterface.VsFsTypeMismatchInBlockexplicitRuntimeSpirvcoreAny user-defined variables between the OpEntryPoint of two shader stages must have the same type and width for each Component
VUID-RuntimeSpirv-OpEntryPoint-08727NNoneexplicitRuntimeSpirvcoreEach OpEntryPoint must not have more than one variable decorated with InputAttachmentIndex per image aspect of the attachment image bound to it, either explicitly or implicitly as described by input attachment interface
VUID-RuntimeSpirv-OpEntryPoint-08743YNegativeGeometryTessellation.MaxGeometryInputOutputComponents, NegativeShaderInterface.FragmentInputNotProvided, NegativeShaderInterface.FragmentInputNotProvidedInBlock, NegativeShaderInterface.MaxFragmentInputComponents, NegativeShaderInterface.MultidimensionalArray, NegativeShaderInterface.MultidimensionalArray64bit, NegativeShaderInterface.MultidimensionalArrayDim, NegativeShaderInterface.PackingInsideArray, NegativeShaderInterface.VsFsMismatchByComponent, NegativeShaderInterface.VsFsMismatchByLocation, NegativeShaderInterface.VsFsTypeMismatchBlockNestedStructArray, NegativeShaderInterface.VsFsTypeMismatchBlockStructArraySizeVertex, NegativeShaderInterface.VsFsTypeMismatchBlockStructInnerArraySize, NegativeShaderInterface.VsFsTypeMismatchBlockStructOuter2DArraySize, NegativeShaderInterface.VsFsTypeMismatchBlockStructOuterArraySizeexplicitRuntimeSpirvcoreAny user-defined variables shared between the OpEntryPoint of two shader stages, and declared with Input as its Storage Class for the subsequent shader stage, must have all Location slots and Component words declared in the preceding shader stage's OpEntryPoint with Output as the Storage Class
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07704NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayMotionNV instructions, if Acceleration Structure was built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags, the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07709NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayMotionNV instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07711NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07705NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07706NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07707NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07708NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07710NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07712NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07713NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07714NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07715NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, if the Rayflags operand contains SkipTrianglesKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR set
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07716NNoneexplicitRuntimeSpirvcoreFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, if the Rayflags operand contains SkipAABBsKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR set
VUID-RuntimeSpirv-OpImage-06376YNegativeShaderLimits.MinAndMaxTexelGatherOffset, NegativeShaderObject.MinTexelGatherOffsetexplicitRuntimeSpirvcoreIf an OpImage*Gather operation has an image operand of Offset, ConstOffset, or ConstOffsets the offset value must be greater than or equal to minTexelGatherOffset
VUID-RuntimeSpirv-OpImage-06377YNegativeShaderLimits.MinAndMaxTexelGatherOffset, NegativeShaderObject.MinTexelGatherOffsetexplicitRuntimeSpirvcoreIf an OpImage*Gather operation has an image operand of Offset, ConstOffset, or ConstOffsets the offset value must be less than or equal to maxTexelGatherOffset
VUID-RuntimeSpirv-OpImageBlockMatchSADQCOM-06982NNoneexplicitRuntimeSpirvcoreIf an OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM operation is used, then the target sampled image, reference sampled image, and Block Size parameters must both be dynamically uniform for the quad
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06983NNoneexplicitRuntimeSpirvcoreIf an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must be of storage class UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=0, MS=0, and Sampled=1
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06984NNoneexplicitRuntimeSpirvcoreIf an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then the target sampled image and reference sampled image parameters must be decorated with BlockMatchTextureQCOM
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06985NNoneexplicitRuntimeSpirvcoreIf an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created using an identical sampler object
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06986NNoneexplicitRuntimeSpirvcoreIf an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with a sampler object with unnormalizedCoordinates equal to VK_TRUE
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987NNoneexplicitRuntimeSpirvcoreIf an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with a sampler object with unnormalizedCoordinates equal to VK_TRUE
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988NNoneexplicitRuntimeSpirvcoreIf an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09219NNoneexplicitRuntimeSpirvcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then the target sampled image, reference sampled image, and Block Size parameters must both be dynamically uniform for the quad
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09220NNoneexplicitRuntimeSpirvcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then target sampled image and reference sampled image parameters must be of storage class UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=0, MS=0, and Sampled=1
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09221NNoneexplicitRuntimeSpirvcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then the target sampled image and reference sampled image parameters must be decorated with BlockMatchTextureQCOM
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09222NNoneexplicitRuntimeSpirvcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then target sampled image and reference sampled image parameters must have been created using an identical sampler object
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09223NNoneexplicitRuntimeSpirvcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then target sampled image and reference sampled image parameters must have been created with a sampler object with unnormalizedCoordinates equal to VK_TRUE
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09224NNoneexplicitRuntimeSpirvcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then target sampled image and reference sampled image parameters must have been created with sampler object with unnormalizedCoordinates equal to VK_TRUE
VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06989NNoneexplicitRuntimeSpirvcoreIf an OpImageBoxFilterQCOM operation is used, then Box Size.y must be equal to or greater than 1.0 and less than or equal to maxBoxFilterBlockSize.height
VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06990NNoneexplicitRuntimeSpirvcoreIf an OpImageBoxFilterQCOM operation is used, then Sampled Texture Image and Box Size parameters must be dynamically uniform
VUID-RuntimeSpirv-OpImageSample-06435YNegativeShaderLimits.MinAndMaxTexelOffsetexplicitRuntimeSpirvcoreIf an OpImageSample* or OpImageFetch* operation has an image operand of ConstOffset then the offset value must be greater than or equal to minTexelOffset
VUID-RuntimeSpirv-OpImageSample-06436YNegativeShaderLimits.MinAndMaxTexelOffsetexplicitRuntimeSpirvcoreIf an OpImageSample* or OpImageFetch* operation has an image operand of ConstOffset then the offset value must be less than or equal to maxTexelOffset
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06979NNoneexplicitRuntimeSpirvcoreIf an OpImageWeightedSampleQCOM operation is used, then the Texture Sampled Image and Weight Image parameters must both be dynamically uniform for the quad
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06980NNoneexplicitRuntimeSpirvcoreIf an OpImageWeightedSampleQCOM operation is used, then the Weight Image parameter must be of Storage Class UniformConstant and type OpTypeImage with Depth=0, Dim=2D, Arrayed=1, MS=0, and Sampled=1
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06981NNoneexplicitRuntimeSpirvcoreIf an OpImageWeightedSampleQCOM operation is used, then the Weight Image parameter must be decorated with WeightTextureQCOM
VUID-RuntimeSpirv-OpImageWrite-07112YNegativeShaderObject.WriteLessComponent, NegativeShaderStorageImage.WriteLessComponent, NegativeShaderStorageImage.WriteLessComponentCopyObject, NegativeShaderStorageImage.WriteSpecConstantLessComponent, NegativeShaderStorageTexel.WriteLessComponentexplicitRuntimeSpirvcoreOpImageWrite to any Image whose Image Format is not Unknown must have the Texel operand contain at least as many components as the corresponding VkFormat as given in the SPIR-V Image Format compatibility table
VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06353NNoneexplicitRuntimeSpirvcoreFor OpRayQueryGenerateIntersectionKHR instructions, Hit T must satisfy the condition RayTmin ≤ Hit T ≤ RayTmax, where RayTmin is equal to the value returned by OpRayQueryGetRayTMinKHR with the same ray query object, and RayTmax is equal to the value of OpRayQueryGetIntersectionTKHR for the current committed intersection with the same ray query object
VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06354NNoneexplicitRuntimeSpirvcoreFor OpRayQueryGenerateIntersectionKHR instructions, Acceleration Structure must not be built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06348NNoneexplicitRuntimeSpirvcoreFor OpRayQueryInitializeKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349NNoneexplicitRuntimeSpirvcoreFor OpRayQueryInitializeKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350NNoneexplicitRuntimeSpirvcoreFor OpRayQueryInitializeKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351NNoneexplicitRuntimeSpirvcoreFor OpRayQueryInitializeKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352NNoneexplicitRuntimeSpirvcoreFor OpRayQueryInitializeKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06889NNoneexplicitRuntimeSpirvcoreFor OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06890NNoneexplicitRuntimeSpirvcoreFor OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06891NNoneexplicitRuntimeSpirvcoreFor OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpReportIntersectionKHR-06998NNoneexplicitRuntimeSpirvcoreThe value of the "Hit Kind" operand of OpReportIntersectionKHR must be in the range [0,127]
VUID-RuntimeSpirv-OpTraceRayKHR-06355NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpTraceRayKHR-06356NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpTraceRayKHR-06357NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpTraceRayKHR-06358NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpTraceRayKHR-06359NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure
VUID-RuntimeSpirv-OpTraceRayKHR-06360NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, if Acceleration Structure was built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags, the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpTraceRayKHR-06552NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpTraceRayKHR-06553NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, if the Rayflags operand contains SkipTrianglesKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR set
VUID-RuntimeSpirv-OpTraceRayKHR-06554NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, if the Rayflags operand contains SkipAABBsKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR set
VUID-RuntimeSpirv-OpTraceRayKHR-06892NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpTraceRayKHR-06893NNoneexplicitRuntimeSpirvcoreFor OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpTraceRayMotionNV-06361NNoneexplicitRuntimeSpirvcoreFor OpTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpTraceRayMotionNV-06362NNoneexplicitRuntimeSpirvcoreFor OpTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpTraceRayMotionNV-06363NNoneexplicitRuntimeSpirvcoreFor OpTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpTraceRayMotionNV-06364NNoneexplicitRuntimeSpirvcoreFor OpTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpTraceRayMotionNV-06365NNoneexplicitRuntimeSpirvcoreFor OpTraceRayMotionNV instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags
VUID-RuntimeSpirv-OpTraceRayMotionNV-06366NNoneexplicitRuntimeSpirvcoreFor OpTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0
VUID-RuntimeSpirv-OpTraceRayMotionNV-06367NNoneexplicitRuntimeSpirvcoreFor OpTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpTypeCooperativeMatrixKHR-08974YNegativeShaderCooperativeMatrix.KHRParametersMatchProperties, NegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderObject.CooperativeMatrixexplicitRuntimeSpirvcoreFor OpTypeCooperativeMatrixKHR, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesKHR.
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316YNoneexplicitRuntimeSpirvcoreFor OpTypeCooperativeMatrixNV, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesNV
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322YNoneexplicitRuntimeSpirvcoreOpTypeCooperativeMatrixNV and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages
VUID-RuntimeSpirv-OpVariable-08746YNegativeGeometryTessellation.BuiltinBlockOrderMismatchVsGs, NegativeGeometryTessellation.BuiltinBlockSizeMismatchVsGs, NegativeGeometryTessellation.TessellationPatchDecorationMismatchexplicitRuntimeSpirvcoreAny OpVariable, Block-decorated OpTypeStruct, or Block-decorated OpTypeStruct members shared between the OpEntryPoint of two shader stages must have matching decorations as defined in interface matching
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314NNoneexplicitRuntimeSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled any load or store through a physical pointer type must be aligned to a multiple of the size of the largest scalar type in the pointed-to type
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06315NNoneexplicitRuntimeSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled the pointer value of a memory access instruction must be at least as aligned as specified by the Aligned memory access operand
VUID-RuntimeSpirv-SampleRateShading-06378YNegativePipeline.RenderPassShaderResolveQCOMexplicitRuntimeSpirvcoreIf the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the SPIR-V fragment shader Capability SampleRateShading must not be enabled
VUID-RuntimeSpirv-ShaderEnqueueAMDX-09191NNoneexplicitRuntimeSpirvcoreThe ShaderEnqueueAMDX capability must only be used in shaders with the GLCompute execution model
VUID-RuntimeSpirv-Stream-06312YNegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvcoreThe stream number value to Stream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379YNegativeSubgroup.SubgroupUniformControlFlow, VkLayerTest.VuidHashStabilityexplicitRuntimeSpirvcoreThe Execution Mode SubgroupUniformControlFlowKHR must not be applied to an entry point unless shaderSubgroupUniformControlFlow is enabled and the corresponding shader stage bit is set in subgroup supportedStages and the entry point does not execute any invocation repack instructions
VUID-RuntimeSpirv-TaskEXT-07117NNoneexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model OpEmitMeshTasksEXT must be called exactly once under dynamically uniform conditions
VUID-RuntimeSpirv-TaskEXT-07291YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[0]
VUID-RuntimeSpirv-TaskEXT-07292YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[1]
VUID-RuntimeSpirv-TaskEXT-07293YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[2]
VUID-RuntimeSpirv-TaskEXT-07294YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model the product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupInvocations
VUID-RuntimeSpirv-TaskEXT-07299YNegativeMesh.MeshTasksWorkgroupCountexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model the value of the "Group Count X" operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]
VUID-RuntimeSpirv-TaskEXT-07300YNegativeMesh.MeshTasksWorkgroupCountexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model the value of the "Group Count Y" operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]
VUID-RuntimeSpirv-TaskEXT-07301YNegativeMesh.MeshTasksWorkgroupCountexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model the value of the "Group Count Z" operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]
VUID-RuntimeSpirv-TaskEXT-07302YNegativeMesh.MeshTasksWorkgroupCountexplicitRuntimeSpirvcoreIn task shaders using the TaskEXT Execution Model the product of the "Group Count" operands of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount
VUID-RuntimeSpirv-Workgroup-06530YNegativeShaderCompute.SharedMemoryBooleanOverLimit, NegativeShaderCompute.SharedMemoryOverLimit, NegativeShaderCompute.SharedMemoryOverLimitWorkgroupMemoryExplicitLayout, NegativeShaderCompute.SharedMemorySpecConstantDefault, NegativeShaderCompute.SharedMemorySpecConstantSet, NegativeShaderLimits.OffsetMaxComputeSharedMemorySize, NegativeShaderObject.SharedMemoryOverLimitexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and padding in the Workgroup Storage Class in the GLCompute Execution Model must be less than or equal to maxComputeSharedMemorySize
VUID-RuntimeSpirv-XfbBuffer-06309YNegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvcoreFor any given XfbBuffer value, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the same XfbBuffer value, the size of the output interface variable plus the Offset is less than or equal to the buffer data size. For a given Stream, the sum of all the buffer data sizes for all buffers writing to that stream the must not exceed VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreamDataSize
VUID-RuntimeSpirv-XfbStride-06313YNegativeShaderObject.TransformFeedbackStride, NegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvcoreThe XFB Stride value to XfbStride must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride
VUID-RuntimeSpirv-apiVersion-07954YNegativeShaderObject.MissingNonReadableDecorationFormatRead, NegativeShaderStorageImage.MissingNonWritableDecorationFormatWriteexplicitRuntimeSpirvcoreIf VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, and shaderStorageImageWriteWithoutFormat is not enabled, any variable created with a "Type" of OpTypeImage that has a "Sampled" operand of 2 and an "Image Format" operand of Unknown must be decorated with NonWritable
VUID-RuntimeSpirv-apiVersion-07955YNegativeShaderObject.MissingNonReadableDecorationFormatRead, NegativeShaderStorageImage.MissingNonReadableDecorationFormatReadexplicitRuntimeSpirvcoreIf VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, and shaderStorageImageReadWithoutFormat is not enabled, any variable created with a "Type" of OpTypeImage that has a "Sampled" operand of 2 and an "Image Format" operand of Unknown must be decorated with NonReadable
VUID-RuntimeSpirv-cooperativeMatrixSupportedStages-08985YNegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitRuntimeSpirvcoreOpTypeCooperativeMatrixKHR and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesKHR::cooperativeMatrixSupportedStages.
VUID-RuntimeSpirv-denormBehaviorIndependence-06289NNoneexplicitRuntimeSpirvcoreIf denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same denormals Execution Mode for both 16-bit and 64-bit floating-point types
VUID-RuntimeSpirv-denormBehaviorIndependence-06290NNoneexplicitRuntimeSpirvcoreIf denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same denormals Execution Mode for all floating-point types
VUID-RuntimeSpirv-flags-08761NNoneexplicitRuntimeSpirvcoreFor OpRayQueryGetIntersectionTriangleVertexPositionsKHR instructions, Acceleration Structure must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR in flags
VUID-RuntimeSpirv-maintenance4-06817YNegativeShaderInterface.VsFsTypeMismatchVectorSizeexplicitRuntimeSpirvcoreIf maintenance4 is not enabled, any OpTypeVector output interface variables must not have a higher Component Count than a matching OpTypeVector input interface variable
VUID-RuntimeSpirv-maintenance5-09190NNoneexplicitRuntimeSpirvcoreIf maintenance5 is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variable
VUID-RuntimeSpirv-maxBlockMatchRegion-09225NNoneexplicitRuntimeSpirvcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion
VUID-RuntimeSpirv-maxExecutionGraphShaderOutputNodes-09197NNoneexplicitRuntimeSpirvcoreShaders must not include more than maxExecutionGraphShaderOutputNodes instances of OpInitializeNodePayloadsAMDX
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadCount-09196NNoneexplicitRuntimeSpirvcoreShaders must not statically initialize more than maxExecutionGraphShaderPayloadCount variables in the NodeOutputPayloadAMDX storage class
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09193NNoneexplicitRuntimeSpirvcoreVariables declared in the NodePayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09194NNoneexplicitRuntimeSpirvcoreVariables declared in the NodeOutputPayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09195NNoneexplicitRuntimeSpirvcoreFor a given entry point, the sum of the size of any variable in the NodePayloadAMDX storage class, and the combined size of all statically initialized variables in the NodeOutputPayloadAMDX storage class must not be greater than maxExecutionGraphShaderPayloadSize
VUID-RuntimeSpirv-maxMeshOutputMemorySize-08756NNoneexplicitRuntimeSpirvcoreThe sum of size in bytes for variables in the Output Storage Class in the MeshEXT Execution Model must be less than or equal to maxMeshOutputMemorySize according to the formula in Mesh Shader Output
VUID-RuntimeSpirv-maxMeshPayloadAndOutputMemorySize-08757NNoneexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and in the TaskPayloadWorkgroupEXT or Output Storage Class in the MeshEXT Execution Model must be less than or equal to maxMeshPayloadAndOutputMemorySize according to the formula in Mesh Shader Output
VUID-RuntimeSpirv-maxMeshPayloadAndSharedMemorySize-08755NNoneexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and padding in the TaskPayloadWorkgroupEXT or Workgroup Storage Class in the MeshEXT Execution Model must be less than or equal to maxMeshPayloadAndSharedMemorySize
VUID-RuntimeSpirv-maxMeshSharedMemorySize-08754YNegativeShaderMesh.SharedMemoryOverLimit, NegativeShaderMesh.SharedMemoryOverLimitWorkgroupMemoryExplicitLayout, NegativeShaderMesh.SharedMemorySpecConstantDefault, NegativeShaderMesh.SharedMemorySpecConstantSetexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and padding in the Workgroup Storage Class in the MeshEXT Execution Model must be less than or equal to maxMeshSharedMemorySize
VUID-RuntimeSpirv-maxTaskPayloadAndSharedMemorySize-08760NNoneexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and padding in the TaskPayloadWorkgroupEXT or Workgroup Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskPayloadAndSharedMemorySize
VUID-RuntimeSpirv-maxTaskPayloadSize-08758NNoneexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and in the TaskPayloadWorkgroupEXT Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskPayloadSize
VUID-RuntimeSpirv-maxTaskSharedMemorySize-08759YNegativeShaderMesh.TaskSharedMemoryOverLimitexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and padding in the Workgroup Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskSharedMemorySize
VUID-RuntimeSpirv-minSampleShading-08731NNoneexplicitRuntimeSpirvcoreIf sample shading is enabled and minSampleShading is 1.0, the sample operand of any OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operation must evaluate to the value of the coverage index for any given fragment invocation
VUID-RuntimeSpirv-minSampleShading-08732YNegativePipeline.ShaderTileImageexplicitRuntimeSpirvcoreIf sample shading is enabled and any of the OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operations are used, then minSampleShading must be 1.0
VUID-RuntimeSpirv-pNext-09226NNoneexplicitRuntimeSpirvcoreIf a OpImageBlockMatchWindow*QCOM operation is used, then target sampled image must have been created using asampler object that included VkSamplerBlockMatchWindowCreateInfoQCOM in the pNext chain.
VUID-RuntimeSpirv-roundingModeIndependence-06291NNoneexplicitRuntimeSpirvcoreIf roundingModeIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same rounding Execution Mode for both 16-bit and 64-bit floating-point types
VUID-RuntimeSpirv-roundingModeIndependence-06292NNoneexplicitRuntimeSpirvcoreIf roundingModeIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same rounding Execution Mode for all floating-point types
VUID-RuntimeSpirv-samples-08725YNegativeShaderImageAccess.NonMultisampleMismatchWithPipelineexplicitRuntimeSpirvcoreIf an OpTypeImage has an MS operand 0, its bound image must have been created with VkImageCreateInfo::samples as VK_SAMPLE_COUNT_1_BIT
VUID-RuntimeSpirv-samples-08726YNegativeShaderImageAccess.MultisampleMismatchWithPipelineexplicitRuntimeSpirvcoreIf an OpTypeImage has an MS operand 1, its bound image must not have been created with VkImageCreateInfo::samples as VK_SAMPLE_COUNT_1_BIT
VUID-RuntimeSpirv-saturatingAccumulation-08983YNoneexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, the SaturatingAccumulation cooperative matrix operand must be present if and only if VkCooperativeMatrixPropertiesKHR::saturatingAccumulation is VK_TRUE.
VUID-RuntimeSpirv-scope-08984YNegativeShaderCooperativeMatrix.KHRSameScopeexplicitRuntimeSpirvcoreFor OpCooperativeMatrixMulAddKHR, the type of A, B, C, and Result must all have a scope of scope.
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat16-06299YNoneexplicitRuntimeSpirvcoreIf shaderDenormFlushToZeroFloat16 is VK_FALSE, then DenormFlushToZero for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat32-06300YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvcoreIf shaderDenormFlushToZeroFloat32 is VK_FALSE, then DenormFlushToZero for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat64-06301YNoneexplicitRuntimeSpirvcoreIf shaderDenormFlushToZeroFloat64 is VK_FALSE, then DenormFlushToZero for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat16-06296YNoneexplicitRuntimeSpirvcoreIf shaderDenormPreserveFloat16 is VK_FALSE, then DenormPreserve for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat32-06297YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvcoreIf shaderDenormPreserveFloat32 is VK_FALSE, then DenormPreserve for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat64-06298YNoneexplicitRuntimeSpirvcoreIf shaderDenormPreserveFloat64 is VK_FALSE, then DenormPreserve for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDeviceClock-06268YNegativeShaderSpirv.ReadShaderClockexplicitRuntimeSpirvcoreIf shaderDeviceClock is not enabled, the Device scope must not be used for OpReadClockKHR
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06767NNoneexplicitRuntimeSpirvcoreIf shaderEarlyAndLateFragmentTests is not enabled, the EarlyAndLateFragmentTestsEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06768NNoneexplicitRuntimeSpirvcoreIf shaderEarlyAndLateFragmentTests feature is not enabled, the StencilRefUnchangedFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06769NNoneexplicitRuntimeSpirvcoreIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefUnchangedBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06770NNoneexplicitRuntimeSpirvcoreIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06771NNoneexplicitRuntimeSpirvcoreIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06772NNoneexplicitRuntimeSpirvcoreIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06773NNoneexplicitRuntimeSpirvcoreIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat16-06302YNoneexplicitRuntimeSpirvcoreIf shaderRoundingModeRTEFloat16 is VK_FALSE, then RoundingModeRTE for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat32-06303YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvcoreIf shaderRoundingModeRTEFloat32 is VK_FALSE, then RoundingModeRTE for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat64-06304YNoneexplicitRuntimeSpirvcoreIf shaderRoundingModeRTEFloat64 is VK_FALSE, then RoundingModeRTE for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat16-06305YNoneexplicitRuntimeSpirvcoreIf shaderRoundingModeRTZFloat16 is VK_FALSE, then RoundingModeRTZ for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat32-06306YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvcoreIf shaderRoundingModeRTZFloat32 is VK_FALSE, then RoundingModeRTZ for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat64-06307YNoneexplicitRuntimeSpirvcoreIf shaderRoundingModeRTZFloat64 is VK_FALSE, then RoundingModeRTZ for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSampleRateInterpolationFunctions-06325YVkPortabilitySubsetTest.ShaderValidationexplicitRuntimeSpirvcoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::shaderSampleRateInterpolationFunctions is VK_FALSE, then GLSL.std.450 fragment interpolation functions are not supported by the implementation and OpCapability must not be set to InterpolationFunction
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-06293YNoneexplicitRuntimeSpirvcoreIf shaderSignedZeroInfNanPreserveFloat16 is VK_FALSE, then SignedZeroInfNanPreserve for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-06294YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvcoreIf shaderSignedZeroInfNanPreserveFloat32 is VK_FALSE, then SignedZeroInfNanPreserve for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-06295YNoneexplicitRuntimeSpirvcoreIf shaderSignedZeroInfNanPreserveFloat64 is VK_FALSE, then SignedZeroInfNanPreserve for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSubgroupClock-06267YNegativeShaderObject.ReadShaderClock, NegativeShaderSpirv.ReadShaderClockexplicitRuntimeSpirvcoreIf shaderSubgroupClock is not enabled, the Subgroup scope must not be used for OpReadClockKHR
VUID-RuntimeSpirv-shaderTileImageColorReadAccess-08728YNegativePipeline.ShaderTileImageDisabledexplicitRuntimeSpirvcoreIf shaderTileImageColorReadAccess is not enabled, OpColorAttachmentReadEXT operation must not be used
VUID-RuntimeSpirv-shaderTileImageDepthReadAccess-08729YNegativePipeline.ShaderTileImageDisabledexplicitRuntimeSpirvcoreIf shaderTileImageDepthReadAccess is not enabled, OpDepthAttachmentReadEXT operation must not be used
VUID-RuntimeSpirv-shaderTileImageStencilReadAccess-08730YNegativePipeline.ShaderTileImageDisabledexplicitRuntimeSpirvcoreIf shaderTileImageStencilReadAccess is not enabled, OpStencilAttachmentReadEXT operation must not be used
VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372YNegativeShaderCompute.ZeroInitializeWorkgroupMemory, NegativeShaderObject.ZeroInitializeWorkgroupMemoryexplicitRuntimeSpirvcoreIf shaderZeroInitializeWorkgroupMemory is not enabled, any OpVariable with Workgroup as its Storage Class must not have an Initializer operand
VUID-RuntimeSpirv-storageBuffer16BitAccess-06331YNegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvcoreIf storageBuffer16BitAccess is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have Storage Class of StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer
VUID-RuntimeSpirv-storageBuffer8BitAccess-06328YNegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvcoreIf storageBuffer8BitAccess is VK_FALSE, then objects containing an 8-bit integer element must not have Storage Class of StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer
VUID-RuntimeSpirv-storageInputOutput16-06334YNegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvcoreIf storageInputOutput16 is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have Storage Class of Input or Output
VUID-RuntimeSpirv-storagePushConstant16-06333YNegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvcoreIf storagePushConstant16 is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have Storage Class of PushConstant
VUID-RuntimeSpirv-storagePushConstant8-06330YNegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvcoreIf storagePushConstant8 is VK_FALSE, then objects containing an 8-bit integer element must not have Storage Class of PushConstant
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276NNoneexplicitRuntimeSpirvcoreIf subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the "Index" for OpGroupNonUniformQuadBroadcast must be dynamically uniform within the derivative group. Otherwise, "Index" must be a constant
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06277NNoneexplicitRuntimeSpirvcoreIf subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the "Id" for OpGroupNonUniformBroadcast must be dynamically uniform within the subgroup. Otherwise, "Id" must be a constant
VUID-RuntimeSpirv-tessellationShader-06326YVkPortabilitySubsetTest.ShaderValidationexplicitRuntimeSpirvcoreIf tessellationShader is enabled, and the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationIsolines is VK_FALSE, then OpExecutionMode must not be set to IsoLines
VUID-RuntimeSpirv-tessellationShader-06327YVkPortabilitySubsetTest.ShaderValidationexplicitRuntimeSpirvcoreIf tessellationShader is enabled, and the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationPointMode is VK_FALSE, then OpExecutionMode must not be set to PointMode
VUID-RuntimeSpirv-transformFeedbackStreamsLinesTriangles-06311YNegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvcoreIf the geometry shader emits to more than one vertex stream and VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackStreamsLinesTriangles is VK_FALSE, then Execution Mode must be OutputPoints
VUID-RuntimeSpirv-uniformAndStorageBuffer16BitAccess-06332YNegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvcoreIf uniformAndStorageBuffer16BitAccess is VK_FALSE, then objects in the Uniform Storage Class with the Block decoration must not have 16-bit integer or 16-bit floating-point members
VUID-RuntimeSpirv-uniformAndStorageBuffer8BitAccess-06329YNegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvcoreIf uniformAndStorageBuffer8BitAccess is VK_FALSE, then objects in the Uniform Storage Class with the Block decoration must not have an 8-bit integer member
VUID-RuntimeSpirv-vulkanMemoryModel-06265YNegativeShaderObject.MemoryModelNotEnabled, NegativeShaderSpirv.DeviceMemoryScopeexplicitRuntimeSpirvcoreIf vulkanMemoryModel is enabled and vulkanMemoryModelDeviceScope is not enabled, Device memory scope must not be used
VUID-RuntimeSpirv-vulkanMemoryModel-06266YNegativeShaderSpirv.QueueFamilyMemoryScopeexplicitRuntimeSpirvcoreIf vulkanMemoryModel is not enabled, QueueFamily memory scope must not be used
VUID-RuntimeSpirv-x-06429YNegativeShaderCompute.CmdDispatchExceedLimits, NegativeShaderCompute.WorkGroupSizeConstantDefault, NegativeShaderCompute.WorkGroupSizeLocalSizeId, NegativeShaderCompute.WorkGroupSizeLocalSizeIdSpecConstantDefault, NegativeShaderCompute.WorkGroupSizeLocalSizeIdSpecConstantSet, NegativeShaderCompute.WorkGroupSizeSpecConstant, NegativeShaderCompute.WorkGroupSizeSpecConstantDefault, NegativeShaderObject.LocalSizeExceedLimitsexplicitRuntimeSpirvcoreIn compute shaders using the GLCompute Execution Model the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-RuntimeSpirv-x-06432YNegativeShaderCompute.CmdDispatchExceedLimits, NegativeShaderCompute.WorkGroupSizeConstantDefault, NegativeShaderCompute.WorkGroupSizeLocalSizeId, NegativeShaderCompute.WorkGroupSizeLocalSizeIdSpecConstantDefault, NegativeShaderCompute.WorkGroupSizeLocalSizeIdSpecConstantSet, NegativeShaderCompute.WorkGroupSizeSpecConstant, NegativeShaderCompute.WorkGroupSizeSpecConstantDefault, NegativeShaderObject.LocalSizeExceedLimits, NegativeSubgroup.ComputeLocalWorkgroupSizeexplicitRuntimeSpirvcoreIn compute shaders using the GLCompute Execution Model the product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupInvocations
VUID-RuntimeSpirv-y-06430YNegativeShaderCompute.CmdDispatchExceedLimits, NegativeShaderCompute.WorkGroupSizeSpecConstantexplicitRuntimeSpirvcoreIn compute shaders using the GLCompute Execution Model the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-RuntimeSpirv-z-06431YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitRuntimeSpirvcoreIn compute shaders using the GLCompute Execution Model the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-SMCountNV-SMCountNV-04363NNoneexplicitSMCountNVcoreThe variable decorated with SMCountNV must be declared using the Input Storage Class
VUID-SMCountNV-SMCountNV-04364NNoneexplicitSMCountNVcoreThe variable decorated with SMCountNV must be declared as a scalar 32-bit integer value
VUID-SMIDNV-SMIDNV-04365NNoneexplicitSMIDNVcoreThe variable decorated with SMIDNV must be declared using the Input Storage Class
VUID-SMIDNV-SMIDNV-04366NNoneexplicitSMIDNVcoreThe variable decorated with SMIDNV must be declared as a scalar 32-bit integer value
VUID-SampleId-SampleId-04354YYValidateLiterals.LiteralsKernelGoodexplicitSampleIdcoreThe SampleId decoration must be used only within the Fragment Execution Model
VUID-SampleId-SampleId-04355YYValidateLiterals.LiteralsKernelGoodexplicitSampleIdcoreThe variable decorated with SampleId must be declared using the Input Storage Class
VUID-SampleId-SampleId-04356YYValidateLiterals.LiteralsKernelGoodexplicitSampleIdcoreThe variable decorated with SampleId must be declared as a scalar 32-bit integer value
VUID-SampleMask-SampleMask-04357YYValidateLiterals.LiteralsKernelGoodexplicitSampleMaskcoreThe SampleMask decoration must be used only within the Fragment Execution Model
VUID-SampleMask-SampleMask-04358YYValidateLiterals.LiteralsKernelGoodexplicitSampleMaskcoreThe variable decorated with SampleMask must be declared using the Input or Output Storage Class
VUID-SampleMask-SampleMask-04359YYValidateLiterals.LiteralsKernelGoodexplicitSampleMaskcoreThe variable decorated with SampleMask must be declared as an array of 32-bit integer values
VUID-SamplePosition-SamplePosition-04360YYValidateLiterals.LiteralsKernelGoodexplicitSamplePositioncoreThe SamplePosition decoration must be used only within the Fragment Execution Model
VUID-SamplePosition-SamplePosition-04361YYValidateLiterals.LiteralsKernelGoodexplicitSamplePositioncoreThe variable decorated with SamplePosition must be declared using the Input Storage Class
VUID-SamplePosition-SamplePosition-04362YYValidateLiterals.LiteralsKernelGoodexplicitSamplePositioncoreThe variable decorated with SamplePosition must be declared as a two-component vector of 32-bit floating-point values
VUID-ShaderIndexAMDX-ShaderIndexAMDX-09175NNoneexplicitShaderIndexAMDXcoreThe variable decorated with ShaderIndexAMDX must be declared using the Input Storage Class
VUID-ShaderIndexAMDX-ShaderIndexAMDX-09176NNoneexplicitShaderIndexAMDXcoreThe variable decorated with ShaderIndexAMDX must be declared as a scalar 32-bit integer value
VUID-ShadingRateKHR-ShadingRateKHR-04490YYValidateBuiltIns.TargetIsVariableexplicitShadingRateKHRcoreThe ShadingRateKHR decoration must be used only within the Fragment Execution Model
VUID-ShadingRateKHR-ShadingRateKHR-04491YYValidateBuiltIns.TargetIsVariableexplicitShadingRateKHRcoreThe variable decorated with ShadingRateKHR must be declared using the Input Storage Class
VUID-ShadingRateKHR-ShadingRateKHR-04492YYValidateBuiltIns.TargetIsVariableexplicitShadingRateKHRcoreThe variable decorated with ShadingRateKHR must be declared as a scalar 32-bit integer value
VUID-StandaloneSpirv-Base-04781YYValidateBitwise.OpBitCountBaseNotInt, ValidateBitwise.OpBitCountNot32Vulkan, ValidateBitwise.OpBitFieldInsertNot32Vulkan, ValidateBitwise.OpBitFieldSExtractNot32Vulkan, ValidateBitwise.OpBitReverseNot32VulkanexplicitStandaloneSpirvcoreThe Base operand of any OpBitCount, OpBitReverse, OpBitFieldInsert, OpBitFieldSExtract, or OpBitFieldUExtract instruction must be a 32-bit integer scalar or a vector of 32-bit integers
VUID-StandaloneSpirv-Base-07650YYNoneexplicitStandaloneSpirvcoreThe Base operand of OpPtrAccessChain must have a storage class of Workgroup, StorageBuffer, or PhysicalStorageBuffer
VUID-StandaloneSpirv-Base-07651YYValidateMemory.VulkanPtrAccessChainWorkgroupCapabilityexplicitStandaloneSpirvcoreIf the Base operand of OpPtrAccessChain has a Workgroup Storage Class, then the VariablePointers capability must be declared
VUID-StandaloneSpirv-Base-07652YYValidateMemory.VulkanPtrAccessChainStorageBufferCapabilityexplicitStandaloneSpirvcoreIf the Base operand of OpPtrAccessChain has a StorageBuffer Storage Class, then the VariablePointers or VariablePointersStorageBuffer capability must be declared
VUID-StandaloneSpirv-BuiltIn-04668NNoneexplicitStandaloneSpirvcoreAny BuiltIn decoration not listed in Built-In Variables must not be used
VUID-StandaloneSpirv-CallableDataKHR-04704YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvcoreCallableDataKHR Storage Class must only be used in ray generation, closest hit, miss, and callable shaders
VUID-StandaloneSpirv-Component-04920YYValidateDecorations.ComponentDecorationIntBad4VulkanexplicitStandaloneSpirvcoreThe Component decoration value must not be greater than 3
VUID-StandaloneSpirv-Component-04921YYValidateDecorations.ComponentDecorationArrayBadVulkan, ValidateDecorations.ComponentDecorationBlockBadVulkan, ValidateDecorations.ComponentDecorationVector4Bad1Vulkan, ValidateDecorations.ComponentDecorationVector4Bad3VulkanexplicitStandaloneSpirvcoreIf the Component decoration is used on an OpVariable that has a OpTypeVector type with a Component Type with a Width that is less than or equal to 32, the sum of its Component Count and the Component decoration value must be less than or equal to 4
VUID-StandaloneSpirv-Component-04922YYValidateDecorations.ComponentDecoration64Vec2BadVulkanexplicitStandaloneSpirvcoreIf the Component decoration is used on an OpVariable that has a OpTypeVector type with a Component Type with a Width that is equal to 64, the sum of two times its Component Count and the Component decoration value must be less than or equal to 4
VUID-StandaloneSpirv-Component-04923YYValidateDecorations.ComponentDecoration64Scalar1BadVulkan, ValidateDecorations.ComponentDecoration64Scalar3BadVulkan, ValidateDecorations.ComponentDecoration64Vec1BadVulkanexplicitStandaloneSpirvcoreThe Component decorations value must not be 1 or 3 for scalar or two-component 64-bit data types
VUID-StandaloneSpirv-Component-04924YYValidateDecorations.ComponentDecorationBadTypeVulkanexplicitStandaloneSpirvcoreThe Component decorations must not be used with any type that is not a scalar or vector, or an array of such a type
VUID-StandaloneSpirv-Component-07703YYValidateDecorations.ComponentDecoration64VecWideBadVulkanexplicitStandaloneSpirvcoreThe Component decorations must not be used for a 64-bit vector type with more than two components
VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778NNoneexplicitStandaloneSpirvcoreFor compute shaders using the DerivativeGroupLinearNV execution mode, the product of the dimensions of the local workgroup size must be a multiple of four
VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684NNoneexplicitStandaloneSpirvcoreFor compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two
VUID-StandaloneSpirv-DescriptorSet-06491YYDecorationTest.WorkgroupSizeKernelexplicitStandaloneSpirvcoreIf a variable is decorated by DescriptorSet or Binding, the Storage Class must correspond to an entry in Shader Resource and Storage Class Correspondence
VUID-StandaloneSpirv-ExecutionModel-07320YYNoneexplicitStandaloneSpirvcoreIf the Execution Model is TessellationControl, and the MemoryModel is GLSL450, the Scope for memory must not be Workgroup
VUID-StandaloneSpirv-FPRoundingMode-04675YYValidateDecorations.VulkanFPRoundingModeBadModeexplicitStandaloneSpirvcoreRounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration
VUID-StandaloneSpirv-Flat-04670YYDecorationTest.WorkgroupSizeKernelexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must only be used on variables with the Output or Input Storage Class
VUID-StandaloneSpirv-Flat-04744YYValidateDecorations.VulkanFlatMultipleInterfaceBad, ValidateDecorations.VulkanNoFlatFloat64, ValidateDecorations.VulkanNoFlatIntVectorexplicitStandaloneSpirvcoreAny variable with integer or double-precision floating-point type and with Input Storage Class in a fragment shader, must be decorated Flat
VUID-StandaloneSpirv-Flat-06201YYValidateDecorations.VulkanNoFlatIntVectorexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Output storage class in a fragment shader
VUID-StandaloneSpirv-Flat-06202YYValidateDecorations.VulkanNoFlatIntVectorexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Input storage class in a vertex shader
VUID-StandaloneSpirv-Function-04681NNoneexplicitStandaloneSpirvcoreA type T that is an array sized with a specialization constant must neither be, nor be contained in, the type T2 of a variable V, unless either: a) T is equal to T2, b) V is declared in the Function, or Private Storage Class, c) V is a non-Block variable in the Workgroup Storage Class, or d) V is an interface variable with an additional level of arrayness, as described in interface matching, and T is the member type of the array type T2
VUID-StandaloneSpirv-GLSLShared-04669YYValidateDecorations.BlockGLSLPackedBad, ValidateDecorations.BlockGLSLSharedBad, ValidateDecorations.BlockNestedStructGLSLPackedBad, ValidateDecorations.BlockNestedStructGLSLSharedBad, ValidateDecorations.BufferBlockGLSLPackedBad, ValidateDecorations.BufferBlockGLSLSharedBad, ValidateDecorations.BufferBlockNestedStructGLSLPackedBad, ValidateDecorations.BufferBlockNestedStructGLSLSharedBad, ValidateDecorations.NonWritableRuntimeArrayGoodexplicitStandaloneSpirvcoreThe GLSLShared and GLSLPacked decorations must not be used
VUID-StandaloneSpirv-HitAttributeKHR-04701YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvcoreHitAttributeKHR Storage Class must only be used in intersection, any-hit, or closest hit shaders
VUID-StandaloneSpirv-HitAttributeKHR-04702NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the HitAttributeKHR Storage Class in the input interface of an entry point
VUID-StandaloneSpirv-HitAttributeKHR-04703YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvcoreA variable with HitAttributeKHR Storage Class must only be written to in an intersection shader
VUID-StandaloneSpirv-Image-04965NNoneexplicitStandaloneSpirvcoreThe SPIR-V Type of the Image Format operand of an OpTypeImage must match the Sampled Type, as defined in Image Format and Type Matching
VUID-StandaloneSpirv-IncomingCallableDataKHR-04705YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvcoreIncomingCallableDataKHR Storage Class must only be used in callable shaders
VUID-StandaloneSpirv-IncomingCallableDataKHR-04706NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the IncomingCallableDataKHR Storage Class in the input interface of an entry point
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvcoreIncomingRayPayloadKHR Storage Class must only be used in closest hit, any-hit, or miss shaders
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the IncomingRayPayloadKHR Storage Class in the input interface of an entry point
VUID-StandaloneSpirv-Input-06778YYValidateDecorations.PerVertexVulkanNonArrayexplicitStandaloneSpirvcoreVariables with a Storage Class of Input in a fragment shader stage that are decorated with PerVertexKHR must be declared as arrays
VUID-StandaloneSpirv-Input-07290YYValidateSpvExpectAssumeKHR.ExpectKHR_Value1MustMatchResultTypeexplicitStandaloneSpirvcoreVariables with a Storage Class of Input or Output and a type of OpTypeBool must be decorated with the BuiltIn decoration
VUID-StandaloneSpirv-InputAttachmentIndex-06678YYNoneexplicitStandaloneSpirvcoreVariables decorated with InputAttachmentIndex must be in the UniformConstant Storage Class
VUID-StandaloneSpirv-Invariant-04677YYValidateMemory.VulkanInvariantMemberWrongStorageClass, ValidateMemory.VulkanInvariantWrongStorageClassexplicitStandaloneSpirvcoreVariables decorated with Invariant and variables with structure types that have any members decorated with Invariant must be in the Output or Input Storage Class, Invariant used on an Input Storage Class variable or structure member has no effect
VUID-StandaloneSpirv-LocalSize-06426YYValidateMode.GLComputeNoModeVulkanexplicitStandaloneSpirvcoreFor each compute shader entry point, either a LocalSize or LocalSizeId Execution Mode, or an object decorated with the WorkgroupSize decoration must be specified
VUID-StandaloneSpirv-Location-04915YYValidateDecorations.BuiltinVariablesWithComponentDecorationVulkan, ValidateDecorations.BuiltinVariablesWithLocationDecorationVulkanexplicitStandaloneSpirvcoreThe Location or Component decorations must not be used with BuiltIn
VUID-StandaloneSpirv-Location-04916YYValidateDecorations.LocationDecorationVariableNonStructVulkanBadexplicitStandaloneSpirvcoreThe Location decorations must be used on user-defined variables
VUID-StandaloneSpirv-Location-04917YYValidateDecorations.LocationDecorationVariableStructNoBlockVulkanBadexplicitStandaloneSpirvcoreIf a user-defined variable is not a pointer to a Block decorated OpTypeStruct, then the OpVariable must have a Location decoration
VUID-StandaloneSpirv-Location-04918YYValidateDecorations.LocationDecorationVariableExtraMemeberVulkan, ValidateInterfacesTest.VulkanLocationsMemberAndSubMemberAssigned, ValidateInterfacesTest.VulkanLocationsVariableAndMemberAssignedexplicitStandaloneSpirvcoreIf a user-defined variable has a Location decoration, and the variable is a pointer to a OpTypeStruct, then the members of that structure must not have Location decorations
VUID-StandaloneSpirv-Location-04919YYValidateDecorations.LocationDecorationVariableMissingMemeberVulkan, ValidateInterfacesTest.StructWithBuiltinsMissingBlock_BadexplicitStandaloneSpirvcoreIf a user-defined variable does not have a Location decoration, and the variable is a pointer to a Block decorated OpTypeStruct, then each member of the struct must have a Location decoration
VUID-StandaloneSpirv-Location-06672YYDecorationTest.WorkgroupSizeKernelexplicitStandaloneSpirvcoreThe Location or Component decorations must only be used with the Input, Output, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, HitObjectAttributeNV, CallableDataKHR, IncomingCallableDataKHR, or ShaderRecordBufferKHR storage classes
VUID-StandaloneSpirv-MeshEXT-07102YYValidateMeshShading.VulkanBasicMeshAndTaskBadexplicitStandaloneSpirvcoreThe module must not contain both an entry point that uses the TaskEXT or MeshEXT Execution Model and an entry point that uses the TaskNV or MeshNV Execution Model
VUID-StandaloneSpirv-MeshEXT-07106NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT Execution Model OpSetMeshOutputsEXT must be called before any outputs are written
VUID-StandaloneSpirv-MeshEXT-07107NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT Execution Model all variables declared as output must not be read from
VUID-StandaloneSpirv-MeshEXT-07108NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT Execution Model for OpSetMeshOutputsEXT instructions, the "Vertex Count" and "Primitive Count" operands must not depend on ViewIndex
VUID-StandaloneSpirv-MeshEXT-07109NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT Execution Model variables decorated with PrimitivePointIndicesEXT, PrimitiveLineIndicesEXT, or PrimitiveTriangleIndicesEXT declared as an array must not be accessed by indices that depend on ViewIndex
VUID-StandaloneSpirv-MeshEXT-07110NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT Execution Model any values stored in variables decorated with PrimitivePointIndicesEXT, PrimitiveLineIndicesEXT, or PrimitiveTriangleIndicesEXT must not depend on ViewIndex
VUID-StandaloneSpirv-MeshEXT-07111NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT Execution Model variables in workgroup or private Storage Class declared as or containing a composite type must not be accessed by indices that depend on ViewIndex
VUID-StandaloneSpirv-MeshEXT-07330NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT Execution Model the OutputVertices Execution Mode must be greater than 0
VUID-StandaloneSpirv-MeshEXT-07331NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT Execution Model the OutputPrimitivesEXT Execution Mode must be greater than 0
VUID-StandaloneSpirv-None-04633YYValidateSpvExpectAssumeKHR.ExpectKHR_Value1MustMatchResultTypeexplicitStandaloneSpirvcoreEvery entry point must have no return value and accept no arguments
VUID-StandaloneSpirv-None-04634YYValidationStateTest.CheckVulkanDirectlyRecursiveBodyBad, ValidationStateTest.CheckVulkanIndirectlyRecursiveBodyBadexplicitStandaloneSpirvcoreThe static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed
VUID-StandaloneSpirv-None-04635YYNoneexplicitStandaloneSpirvcoreThe Logical or PhysicalStorageBuffer64 addressing model must be selected
VUID-StandaloneSpirv-None-04636YYValidateBarriers.OpControlBarrierShaderCallRayGenFailure, ValidateBarriers.OpControlBarrierVulkanExecutionScopeDevice, ValidateDecorations.UniformDecorationWithScopeIdV14VulkanEnvexplicitStandaloneSpirvcoreScope for execution must be limited to Workgroup or Subgroup
VUID-StandaloneSpirv-None-04637YYexplicitStandaloneSpirvcoreIf the Scope for execution is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute Execution Model
VUID-StandaloneSpirv-None-04638YYValidateBarriers.OpControlBarrierVulkan1p1MemoryScopeCrossDeviceexplicitStandaloneSpirvcoreScope for memory must be limited to Device, QueueFamily, Workgroup, ShaderCallKHR, Subgroup, or Invocation
VUID-StandaloneSpirv-None-04640YYValidateBarriers.OpMemoryBarrierShaderCallComputeFailureexplicitStandaloneSpirvcoreIf the Scope for memory is ShaderCallKHR, then it must only be used in ray generation, intersection, closest hit, any-hit, miss, and callable Execution Model
VUID-StandaloneSpirv-None-04641YYValidateAtomics.AtomicCompareExchangeVulkanInvocationSemanticsEqual, ValidateAtomics.AtomicCompareExchangeVulkanInvocationSemanticsUnequal, ValidateAtomics.AtomicExchangeVulkanInvocationSemantics, ValidateAtomics.AtomicLoadVulkanInvocationSemantics, ValidateAtomics.AtomicStoreVulkanInvocationSemantics, ValidateBarriers.OpControlBarrierVulkanInvocationFailureexplicitStandaloneSpirvcoreIf the Scope for memory is Invocation, then memory semantics must be None
VUID-StandaloneSpirv-None-04642YYValidateCFG.BadSwitchexplicitStandaloneSpirvcoreScope for group operations must be limited to Subgroup
VUID-StandaloneSpirv-None-04643YYValidateMisc.VulkanInvalidStorageClassexplicitStandaloneSpirvcoreStorage Class must be limited to UniformConstant, Input, Uniform, Output, Workgroup, Private, Function, PushConstant, Image, StorageBuffer, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, CallableDataKHR, IncomingCallableDataKHR, ShaderRecordBufferKHR, PhysicalStorageBuffer, or TileImageEXT
VUID-StandaloneSpirv-None-04644YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvcoreIf the Storage Class is Output, then it must not be used in the GlCompute, RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR Execution Model
VUID-StandaloneSpirv-None-04645YYValidateAtomics.AtomicLoadVulkanWrongStorageClass, ValidateAtomics.AtomicStoreVulkanWrongStorageClassexplicitStandaloneSpirvcoreIf the Storage Class is Workgroup, then it must only be used in the task, mesh, or compute Execution Model
VUID-StandaloneSpirv-None-04667YYValidateSpvExpectAssumeKHR.ExpectKHR_Value1MustMatchResultTypeexplicitStandaloneSpirvcoreStructure types must not contain opaque types
VUID-StandaloneSpirv-None-04686YYValidateAtomics.AtomicStoreVulkanFunctionPointerStorageTypeexplicitStandaloneSpirvcoreThe Pointer operand of all atomic instructions must have a Storage Class limited to Uniform, Workgroup, Image, StorageBuffer, PhysicalStorageBuffer, or TaskPayloadWorkgroupEXT
VUID-StandaloneSpirv-None-04745NNoneexplicitStandaloneSpirvcoreAll block members in a variable with a Storage Class of PushConstant declared as an array must only be accessed by dynamically uniform indices
VUID-StandaloneSpirv-None-07321YYexplicitStandaloneSpirvcoreIf the Scope for memory is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute Execution Model
VUID-StandaloneSpirv-None-08720NNoneexplicitStandaloneSpirvcoreIf the Storage Class is TileImageEXT, then it must only be used in the fragment execution model
VUID-StandaloneSpirv-None-08724NNoneexplicitStandaloneSpirvcoreThe TileImageEXT Storage Class must only be used for declaring tile image variables.
VUID-StandaloneSpirv-Offset-04663YYValidateImage.SampleImplicitLodVulkanOffsetWrongSizeexplicitStandaloneSpirvcoreImage operand Offset must only be used with OpImage*Gather instructions
VUID-StandaloneSpirv-Offset-04687NNoneexplicitStandaloneSpirvcoreOutput variables or block members decorated with Offset that have a 64-bit type, or a composite type containing a 64-bit type, must specify an Offset value aligned to a 8 byte boundary
VUID-StandaloneSpirv-Offset-04689NNoneexplicitStandaloneSpirvcoreThe size of any output block containing any member decorated with Offset that is a 64-bit type must be a multiple of 8
VUID-StandaloneSpirv-Offset-04690NNoneexplicitStandaloneSpirvcoreThe first member of an output block specifying a Offset decoration must specify a Offset value that is aligned to an 8 byte boundary if that block contains any member decorated with Offset and is a 64-bit type
VUID-StandaloneSpirv-Offset-04691NNoneexplicitStandaloneSpirvcoreOutput variables or block members decorated with Offset that have a 32-bit type, or a composite type contains a 32-bit type, must specify an Offset value aligned to a 4 byte boundary
VUID-StandaloneSpirv-Offset-04692NNoneexplicitStandaloneSpirvcoreOutput variables, blocks or block members decorated with Offset must only contain base types that have components that are either 32-bit or 64-bit in size
VUID-StandaloneSpirv-Offset-04716NNoneexplicitStandaloneSpirvcoreOnly variables or block members in the output interface decorated with Offset can be captured for transform feedback, and those variables or block members must also be decorated with XfbBuffer and XfbStride, or inherit XfbBuffer and XfbStride decorations from a block containing them
VUID-StandaloneSpirv-Offset-04865NNoneexplicitStandaloneSpirvcoreAny image instruction which uses an Offset, ConstOffset, or ConstOffsets image operand, must only consume a "Sampled Image" operand whose type has its "Sampled" operand set to 1
VUID-StandaloneSpirv-OpAtomicLoad-04731YYValidateAtomics.AtomicLoadVulkanAcquireRelease, ValidateAtomics.AtomicLoadVulkanRelease, ValidateAtomics.AtomicLoadVulkanSequentiallyConsistentexplicitStandaloneSpirvcoreOpAtomicLoad must not use Release, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpAtomicStore-04730YYValidateAtomics.AtomicStoreVulkanAcquire, ValidateAtomics.AtomicStoreVulkanAcquireRelease, ValidateAtomics.AtomicStoreVulkanSequentiallyConsistentexplicitStandaloneSpirvcoreOpAtomicStore must not use Acquire, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpControlBarrier-04650NNoneexplicitStandaloneSpirvcoreIf the semantics for OpControlBarrier includes one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics, then it must include at least one Storage Class
VUID-StandaloneSpirv-OpControlBarrier-04682YY, ValidateBarriers.OpControlBarrierWorkgroupExecutionFragment1p1, ValidateBarriers.OpControlBarrierWorkgroupExecutionGeometry1p1, ValidateBarriers.OpControlBarrierWorkgroupExecutionVertex1p1explicitStandaloneSpirvcoreIf OpControlBarrier is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope must be Subgroup
VUID-StandaloneSpirv-OpEntryPoint-06674YY, ValidateDecorations.VulkanMultiplePushConstantsSingleEntryPointBadexplicitStandaloneSpirvcoreEach OpEntryPoint must not statically use more than one OpVariable in the PushConstant Storage Class
VUID-StandaloneSpirv-OpEntryPoint-08721YYValidateInterfacesTest.VulkanLocationsArray2Conflict, ValidateInterfacesTest.VulkanLocationsArray4Conflict, ValidateInterfacesTest.VulkanLocationsComponentIn64BitVec3, ValidateInterfacesTest.VulkanLocationsLargeFloatVectorConflict, ValidateInterfacesTest.VulkanLocationsLargeIntVectorConflict, ValidateInterfacesTest.VulkanLocationsLargeMatrix2x2Conflict, ValidateInterfacesTest.VulkanLocationsLargeMatrix3x3Conflict, ValidateInterfacesTest.VulkanLocationsLargeMatrix4x4Conflict, ValidateInterfacesTest.VulkanLocationsMatrix2x2Conflict, ValidateInterfacesTest.VulkanLocationsMatrix3x3Conflict, ValidateInterfacesTest.VulkanLocationsMatrix4x4Array4Conflict, ValidateInterfacesTest.VulkanLocationsMatrix4x4Conflict, ValidateInterfacesTest.VulkanLocationsVariableConflictInputexplicitStandaloneSpirvcoreEach OpEntryPoint must not have more than one Input variable assigned the same Component word inside a Location slot, either explicitly or implicitly
VUID-StandaloneSpirv-OpEntryPoint-08722YYValidateInterfacesTest.VulkanLocationsArrayWithComponentBad, ValidateInterfacesTest.VulkanLocationsVariableConflictOutput, ValidateInterfacesTest.VulkanLocationsVariableConflictOutputIndex1explicitStandaloneSpirvcoreEach OpEntryPoint must not have more than one Output variable assigned the same Component word inside a Location slot, either explicitly or implicitly
VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685YYValidateGroupNonUniform.VulkanGroupNonUniformBallotBitCountOperationexplicitStandaloneSpirvcoreIf OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan
VUID-StandaloneSpirv-OpImage-04777YYValidateImage.DrefGatherWrongDimVulkan, ValidateImage.SampleDrefImplicitLodWrongDimVulkanexplicitStandaloneSpirvcoreOpImage*Dref* instructions must not consume an image whose Dim is 3D
VUID-StandaloneSpirv-OpImageGather-04664YYValidateImage.GatherComponentNotConstantVulkanexplicitStandaloneSpirvcoreThe "Component" operand of OpImageGather, and OpImageSparseGather must be the of a constant instruction
VUID-StandaloneSpirv-OpImageQuerySizeLod-04659YYValidateImage.QuerySizeLevelsVulkanNonSampledError, ValidateImage.QuerySizeLodVulkanNonSampledErrorexplicitStandaloneSpirvcoreOpImageQuerySizeLod, OpImageQueryLod, and OpImageQueryLevels must only consume an "Image" operand whose type has its "Sampled" operand set to 1
VUID-StandaloneSpirv-OpImageTexelPointer-04658YYValidateImage.ImageTexelPointerRgba16fVulkan, ValidateImage.ImageTexelPointerRgba32iVulkanexplicitStandaloneSpirvcoreIf an OpImageTexelPointer is used in an atomic operation, the image type of the image parameter to OpImageTexelPointer must have an image format of R64i, R64ui, R32f, R32i, or R32ui
VUID-StandaloneSpirv-OpMemoryBarrier-04732YYValidateBarriers.OpMemoryBarrierVulkanMemorySemanticsNoneexplicitStandaloneSpirvcoreOpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpMemoryBarrier-04733YYValidateBarriers.OpMemoryBarrierVulkanMemorySemanticsAcquire, ValidateBarriers.OpMemoryBarrierVulkanSubgroupStorageClassexplicitStandaloneSpirvcoreOpMemoryBarrier must include at least one Storage Class
VUID-StandaloneSpirv-OpReadClockKHR-04652YYValidateMisc.VulkanShaderClockWorkgroupScopeexplicitStandaloneSpirvcoreScope for OpReadClockKHR must be limited to Subgroup or Device
VUID-StandaloneSpirv-OpTypeForwardPointer-04711YYValidateData.VulkanTypeForwardStorageClassexplicitStandaloneSpirvcoreOpTypeForwardPointer must have a Storage Class of PhysicalStorageBuffer
VUID-StandaloneSpirv-OpTypeImage-04656YYValidateImage.TypeImageF64SampledTypeVulkan, ValidateImage.TypeImageF64SampledTypeWithInt64Vulkan, ValidateImage.TypeImageVoidSampledTypeVulkanexplicitStandaloneSpirvcoreOpTypeImage must declare a scalar 32-bit float, 64-bit integer, or 32-bit integer type for the "Sampled Type" (RelaxedPrecision can be applied to a sampling instruction and to the variable holding the result of a sampling instruction)
VUID-StandaloneSpirv-OpTypeImage-04657YYValidateImage.QueryLodVulkanNonSampledError, ValidateImage.TypeImage_Vulkan_Sampled0_InvalidexplicitStandaloneSpirvcoreOpTypeImage must have a "Sampled" operand of 1 (sampled image) or 2 (storage image)
VUID-StandaloneSpirv-OpTypeImage-06214YYValidateImage.TypeImageWrongArrayForSubpassDataVulkan, ValidateImage.TypeImageWrongSampledForSubpassDataVulkanexplicitStandaloneSpirvcoreAn OpTypeImage with a "Dim" operand of SubpassData must have an "Arrayed" operand of 0 (non-arrayed) and a "Sampled" operand of 2 (storage image)
VUID-StandaloneSpirv-OpTypeImage-06924NNoneexplicitStandaloneSpirvcoreObjects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, and arrays of these types must not be stored to or modified
VUID-StandaloneSpirv-OpTypeRuntimeArray-04680YY, .TEST_F(, ValidateData.vulkan_RTA_not_at_end_of_struct, ValidateDecorations.VulkanStructWithoutDecorationWithRuntimeArray, ValidateMemory.VulkanRTAInsideArrayBad, ValidateMemory.VulkanRTAInsideArrayInsideStructBad, ValidateMemory.VulkanRTAInsideArrayWithRuntimeDescriptorArrayBad, ValidateMemory.VulkanRTAInsideRTABad, ValidateMemory.VulkanRTAInsideRTAInsideStructBad, ValidateMemory.VulkanRTAInsideRTAWithRuntimeDescriptorArrayBad, ValidateMemory.VulkanRTAInsideStorageBufferStructWithoutBlockBad, ValidateMemory.VulkanRTAInsideUniformStructWithoutBufferBlockBad, ValidateMemory.VulkanRTAInsideWrongStorageClassStructBad, ValidateMemory.VulkanRTAOutsideOfStructBadexplicitStandaloneSpirvcoreOpTypeRuntimeArray must only be used for: the last member of a Block-decorated OpTypeStruct in StorageBuffer or PhysicalStorageBuffer storage Storage Class BufferBlock-decorated OpTypeStruct in the Uniform storage Storage Class the outermost dimension of an arrayed variable in the StorageBuffer, Uniform, or UniformConstant storage Storage Class variables in the NodePayloadAMDX storage Storage Class when the CoalescingAMDX Execution Mode is specified
VUID-StandaloneSpirv-OpTypeSampledImage-06671YYNoneexplicitStandaloneSpirvcoreOpTypeSampledImage must have a OpTypeImage with a "Sampled" operand of 1 (sampled image)
VUID-StandaloneSpirv-OpVariable-04651YYValidateMemory.VulkanInitializerWithDisallowedStorageClassesBadexplicitStandaloneSpirvcoreAny OpVariable with an Initializer operand must have Output, Private, Function, or Workgroup as its Storage Class operand
VUID-StandaloneSpirv-OpVariable-04734YYValidateMemory.VulkanInitializerWithWorkgroupStorageClassBadexplicitStandaloneSpirvcoreAny OpVariable with an Initializer operand and Workgroup as its Storage Class operand must use OpConstantNull as the initializer
VUID-StandaloneSpirv-OpVariable-06673NNoneexplicitStandaloneSpirvcoreThere must not be more than one OpVariable in the PushConstant Storage Class listed in the Interface for each OpEntryPoint
VUID-StandaloneSpirv-OriginLowerLeft-04653YYValidateMode.FragmentOriginLowerLeftVulkanexplicitStandaloneSpirvcoreThe OriginLowerLeft Execution Mode must not be used; fragment entry points must declare OriginUpperLeft
VUID-StandaloneSpirv-PerVertexKHR-06777YYValidateDecorations.PerVertexVulkanNonFragment, ValidateDecorations.PerVertexVulkanOutputexplicitStandaloneSpirvcoreThe PerVertexKHR decoration must only be used on variables with the Input Storage Class in a fragment shader
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708YYValidateMemory.PSBCopyMemoryAlignedMissingBoth, ValidateMemory.PSBCopyMemoryAlignedMissingSource, ValidateMemory.PSBCopyMemoryAlignedMissingTarget, ValidateMemory.PSBLoadAlignedMissing, ValidateMemory.PSBLoadAlignedMissingWithOtherOperand, ValidateMemory.PSBStoreAlignedMissingexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, all instructions that support memory access operands and that use a physical pointer must include the Aligned operand
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709NNoneexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, any access chain instruction that accesses into a RowMajor matrix must only be used as the Pointer operand to OpLoad or OpStore
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710YYValidateConversion.ConvertPtrToUVulkanWrongWidth, ValidateConversion.ConvertUToPtrVulkanWrongWidthexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64
VUID-StandaloneSpirv-PixelCenterInteger-04654YYValidateMode.FragmentPixelCenterIntegerVulkanexplicitStandaloneSpirvcoreThe PixelCenterInteger Execution Mode must not be used (pixels are always centered at half-integer coordinates)
VUID-StandaloneSpirv-Pointer-08973YYNoneexplicitStandaloneSpirvcoreThe Storage Class of the Pointer operand to OpCooperativeMatrixLoadKHR or OpCooperativeMatrixStoreKHR must be limited to Workgroup, StorageBuffer, or PhysicalStorageBuffer.
VUID-StandaloneSpirv-PushConstant-06675YYValidateDecorations.VulkanBufferBlockOnStorageBufferBad, ValidateDecorations.VulkanPushConstantMissingBlockBad, ValidateDecorations.VulkanStorageBufferArrayMissingBlock, ValidateDecorations.VulkanStorageBufferMissingBlock, ValidateDecorations.VulkanStorageBufferRuntimeArrayMissingBlockexplicitStandaloneSpirvcoreAny variable in the PushConstant or StorageBuffer storage class must be decorated as Block
VUID-StandaloneSpirv-PushConstant-06808YYValidateMemory.VulkanPushConstantArrayOfStructBad, ValidateMemory.VulkanPushConstantNotStructBadexplicitStandaloneSpirvcoreAny variable in the PushConstant Storage Class must be typed as OpTypeStruct
VUID-StandaloneSpirv-RayPayloadKHR-04698YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvcoreRayPayloadKHR Storage Class must only be used in ray generation, closest hit or miss shaders
VUID-StandaloneSpirv-Result-04780YYValidateImage.ReadWrongNumComponentsResultType_VulkanexplicitStandaloneSpirvcoreThe Result Type operand of any OpImageRead or OpImageSparseRead instruction must be a vector of four components
VUID-StandaloneSpirv-ShaderRecordBufferKHR-07119YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvcoreShaderRecordBufferKHR Storage Class must only be used in ray generation, intersection, any-hit, closest hit, callable, or miss shaders
VUID-StandaloneSpirv-Stream-04694NNoneexplicitStandaloneSpirvcoreIf any variables or block members in the output interface of the entry point being compiled are decorated with Stream, then all variables belonging to the same XfbBuffer must specify the same Stream value
VUID-StandaloneSpirv-SubgroupVoteKHR-07951YYValidateBarriers.OpControlBarrierVulkanMemoryScopeSubgroup, ValidateBarriers.OpMemoryBarrierVulkanMemoryScopeSubgroupexplicitStandaloneSpirvcoreIf none of the SubgroupVoteKHR, GroupNonUniform, or SubgroupBallotKHR capabilities are declared, Scope for memory must not be Subgroup
VUID-StandaloneSpirv-SubpassData-04660NNoneexplicitStandaloneSpirvcoreThe (u,v) coordinates used for a SubpassData must be the of a constant vector (0,0), or if a layer coordinate is used, must be a vector that was formed with constant 0 for the u and v components
VUID-StandaloneSpirv-TileImageEXT-08723NNoneexplicitStandaloneSpirvcoreThe tile image variable declarations must obey the constraints on the TileImageEXT Storage Class and the Location decoration described in Fragment Tile Image Interface
VUID-StandaloneSpirv-Uniform-06676YYValidateDecorations.VulkanUniformArrayMissingBlock, ValidateDecorations.VulkanUniformMissingBlock, ValidateDecorations.VulkanUniformRuntimeArrayMissingBlockexplicitStandaloneSpirvcoreAny variable in the Uniform Storage Class must be decorated as Block or BufferBlock
VUID-StandaloneSpirv-Uniform-06807YYValidateMemory.VulkanStorageBufferArrayNotAStruct, ValidateMemory.VulkanStorageBufferNotAStruct, ValidateMemory.VulkanStorageBufferRuntimeArrayNotAStruct, ValidateMemory.VulkanUniformOnArrayOfArrayBad, ValidateMemory.VulkanUniformOnIntBad, ValidateMemory.VulkanUniformOnRuntimeArrayOfArrayBadexplicitStandaloneSpirvcoreAny variable in the Uniform or StorageBuffer Storage Class must be typed as OpTypeStruct or an array of this type
VUID-StandaloneSpirv-Uniform-06925YYValidateMemory.StoreToUniformBlockVulkan, ValidateMemory.StoreToUniformBlockVulkan2, ValidateMemory.StoreToUniformBlockVulkanArray, ValidateMemory.StoreToUniformBlockVulkanArray2, ValidateMemory.StoreToUniformBlockVulkanRuntimeArrayexplicitStandaloneSpirvcoreAny variable in the Uniform Storage Class decorated as Block must not be stored to or modified
VUID-StandaloneSpirv-UniformConstant-04655YYValidateMemory.VulkanUniformConstantOnNonOpaqueResourceArrayBad, ValidateMemory.VulkanUniformConstantOnNonOpaqueResourceBadexplicitStandaloneSpirvcoreAny variable in the UniformConstant Storage Class must be typed as either OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, or an array of one of these types
VUID-StandaloneSpirv-UniformConstant-06677YY, ValidateDecorations.VulkanStorageBufferMissingBindingBad, ValidateDecorations.VulkanStorageBufferMissingDescriptorSetBad, ValidateDecorations.VulkanUniformConstantMissingBindingBad, ValidateDecorations.VulkanUniformConstantMissingDescriptorSetBad, ValidateDecorations.VulkanUniformMissingBindingBad, ValidateDecorations.VulkanUniformMissingDescriptorSetBadexplicitStandaloneSpirvcoreAny variable in the UniformConstant, StorageBuffer, or Uniform Storage Class must be decorated with DescriptorSet and Binding
VUID-StandaloneSpirv-ViewportMaskNV-04674NNoneexplicitStandaloneSpirvcoreThe ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint's that form the pre-rasterization shader stages of a graphics pipeline
VUID-StandaloneSpirv-ViewportRelativeNV-04672NNoneexplicitStandaloneSpirvcoreThe ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages
VUID-StandaloneSpirv-ViewportRelativeNV-04673NNoneexplicitStandaloneSpirvcoreThe ViewportRelativeNV decoration must not be used unless a variable decorated with one of ViewportIndex or ViewportMaskNV is also statically used by the same OpEntryPoint
VUID-StandaloneSpirv-VulkanMemoryModel-04678NNoneexplicitStandaloneSpirvcore If the VulkanMemoryModel capability is not declared, the Volatile decoration must be used on any variable declaration that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader
VUID-StandaloneSpirv-VulkanMemoryModel-04679NNoneexplicitStandaloneSpirvcoreIf the VulkanMemoryModel capability is declared, the OpLoad instruction must use the Volatile memory semantics when it accesses into any variable that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader
VUID-StandaloneSpirv-XfbBuffer-04693NNoneexplicitStandaloneSpirvcoreAll variables or block members in the output interface of the entry point being compiled decorated with a specific XfbBuffer value must all be decorated with identical XfbStride values
VUID-StandaloneSpirv-XfbBuffer-04696NNoneexplicitStandaloneSpirvcoreFor any two variables or block members in the output interface of the entry point being compiled with the same XfbBuffer value, the ranges determined by the Offset decoration and the size of the type must not overlap
VUID-StandaloneSpirv-XfbBuffer-04697NNoneexplicitStandaloneSpirvcoreAll block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited XfbBuffer decoration must specify the same XfbBuffer value
VUID-SubgroupEqMask-SubgroupEqMask-04370YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupEqMaskcoreThe variable decorated with SubgroupEqMask must be declared using the Input Storage Class
VUID-SubgroupEqMask-SubgroupEqMask-04371YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupEqMaskcoreThe variable decorated with SubgroupEqMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupGeMask-SubgroupGeMask-04372YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupGeMaskcoreThe variable decorated with SubgroupGeMask must be declared using the Input Storage Class
VUID-SubgroupGeMask-SubgroupGeMask-04373YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupGeMaskcoreThe variable decorated with SubgroupGeMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupGtMask-SubgroupGtMask-04374YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupGtMaskcoreThe variable decorated with SubgroupGtMask must be declared using the Input Storage Class
VUID-SubgroupGtMask-SubgroupGtMask-04375YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupGtMaskcoreThe variable decorated with SubgroupGtMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupId-SubgroupId-04367YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitSubgroupIdcoreThe SubgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-SubgroupId-SubgroupId-04368YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitSubgroupIdcoreThe variable decorated with SubgroupId must be declared using the Input Storage Class
VUID-SubgroupId-SubgroupId-04369YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitSubgroupIdcoreThe variable decorated with SubgroupId must be declared as a scalar 32-bit integer value
VUID-SubgroupLeMask-SubgroupLeMask-04376YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupLeMaskcoreThe variable decorated with SubgroupLeMask must be declared using the Input Storage Class
VUID-SubgroupLeMask-SubgroupLeMask-04377YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupLeMaskcoreThe variable decorated with SubgroupLeMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04380YYValidateBuiltIns.SubgroupMaskMemberDecorateexplicitSubgroupLocalInvocationIdcoreThe variable decorated with SubgroupLocalInvocationId must be declared using the Input Storage Class
VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04381YYValidateBuiltIns.SubgroupMaskMemberDecorateexplicitSubgroupLocalInvocationIdcoreThe variable decorated with SubgroupLocalInvocationId must be declared as a scalar 32-bit integer value
VUID-SubgroupLtMask-SubgroupLtMask-04378YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupLtMaskcoreThe variable decorated with SubgroupLtMask must be declared using the Input Storage Class
VUID-SubgroupLtMask-SubgroupLtMask-04379YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupLtMaskcoreThe variable decorated with SubgroupLtMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupSize-SubgroupSize-04382YYValidateBuiltIns.SubgroupMaskMemberDecorateexplicitSubgroupSizecoreThe variable decorated with SubgroupSize must be declared using the Input Storage Class
VUID-SubgroupSize-SubgroupSize-04383YYValidateBuiltIns.SubgroupMaskMemberDecorateexplicitSubgroupSizecoreThe variable decorated with SubgroupSize must be declared as a scalar 32-bit integer value
VUID-TaskCountNV-TaskCountNV-04384NNoneexplicitTaskCountNVcoreThe TaskCountNV decoration must be used only within the TaskNV Execution Model
VUID-TaskCountNV-TaskCountNV-04385NNoneexplicitTaskCountNVcoreThe variable decorated with TaskCountNV must be declared using the Output Storage Class
VUID-TaskCountNV-TaskCountNV-04386NNoneexplicitTaskCountNVcoreThe variable decorated with TaskCountNV must be declared as a scalar 32-bit integer value
VUID-TessCoord-TessCoord-04387YYValidateLiterals.LiteralsKernelGoodexplicitTessCoordcoreThe TessCoord decoration must be used only within the TessellationEvaluation Execution Model
VUID-TessCoord-TessCoord-04388YYValidateLiterals.LiteralsKernelGoodexplicitTessCoordcoreThe variable decorated with TessCoord must be declared using the Input Storage Class
VUID-TessCoord-TessCoord-04389YYValidateLiterals.LiteralsKernelGoodexplicitTessCoordcoreThe variable decorated with TessCoord must be declared as a three-component vector of 32-bit floating-point values
VUID-TessLevelInner-TessLevelInner-04394YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelInnercoreThe TessLevelInner decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model
VUID-TessLevelInner-TessLevelInner-04395YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelInnercoreThe variable decorated with TessLevelInner within the TessellationControl Execution Model must be declared using the Output Storage Class
VUID-TessLevelInner-TessLevelInner-04396YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelInnercoreThe variable decorated with TessLevelInner within the TessellationEvaluation Execution Model must be declared using the Input Storage Class
VUID-TessLevelInner-TessLevelInner-04397YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelInnercoreThe variable decorated with TessLevelInner must be declared as an array of size two, containing 32-bit floating-point values
VUID-TessLevelOuter-TessLevelOuter-04390YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelOutercoreThe TessLevelOuter decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model
VUID-TessLevelOuter-TessLevelOuter-04391YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelOutercoreThe variable decorated with TessLevelOuter within the TessellationControl Execution Model must be declared using the Output Storage Class
VUID-TessLevelOuter-TessLevelOuter-04392YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelOutercoreThe variable decorated with TessLevelOuter within the TessellationEvaluation Execution Model must be declared using the Input Storage Class
VUID-TessLevelOuter-TessLevelOuter-04393YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelOutercoreThe variable decorated with TessLevelOuter must be declared as an array of size four, containing 32-bit floating-point values
VUID-VertexCountHUAWEI-VertexCountHUAWEI-07809NNoneexplicitVertexCountHUAWEIcoreThe VertexCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-VertexCountHUAWEI-VertexCountHUAWEI-07810NNoneexplicitVertexCountHUAWEIcoreThe variable decorated with VertexCountHUAWEI must be declared as a scalar 32-bit integer value
VUID-VertexIndex-VertexIndex-04398YYValidateLiterals.LiteralsKernelGoodexplicitVertexIndexcoreThe VertexIndex decoration must be used only within the Vertex Execution Model
VUID-VertexIndex-VertexIndex-04399YYValidateLiterals.LiteralsKernelGoodexplicitVertexIndexcoreThe variable decorated with VertexIndex must be declared using the Input Storage Class
VUID-VertexIndex-VertexIndex-04400YYValidateLiterals.LiteralsKernelGoodexplicitVertexIndexcoreThe variable decorated with VertexIndex must be declared as a scalar 32-bit integer value
VUID-VertexOffsetHUAWEI-VertexOffsetHUAWEI-07811NNoneexplicitVertexOffsetHUAWEIcoreThe VertexOffsetHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-VertexOffsetHUAWEI-VertexOffsetHUAWEI-07812NNoneexplicitVertexOffsetHUAWEIcoreThe variable decorated with VertexOffsetHUAWEI must be declared as a scalar 32-bit integer value
VUID-ViewIndex-ViewIndex-04401YYValidateLiterals.LiteralsKernelGoodexplicitViewIndexcoreThe ViewIndex decoration must be used only within the MeshEXT, Vertex, Geometry, TessellationControl, TessellationEvaluation or Fragment Execution Model
VUID-ViewIndex-ViewIndex-04402YYValidateLiterals.LiteralsKernelGoodexplicitViewIndexcoreThe variable decorated with ViewIndex must be declared using the Input Storage Class
VUID-ViewIndex-ViewIndex-04403YYValidateLiterals.LiteralsKernelGoodexplicitViewIndexcoreThe variable decorated with ViewIndex must be declared as a scalar 32-bit integer value
VUID-ViewportIndex-ViewportIndex-04404YYValidateLiterals.LiteralsKernelGoodexplicitViewportIndexcoreThe ViewportIndex decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment Execution Model
VUID-ViewportIndex-ViewportIndex-04405YYValidateLiterals.LiteralsKernelGoodexplicitViewportIndexcoreIf the shaderOutputViewportIndex feature is not enabled then the ViewportIndex decoration must be used only within the Geometry or Fragment Execution Model
VUID-ViewportIndex-ViewportIndex-04406YYValidateLiterals.LiteralsKernelGoodexplicitViewportIndexcoreThe variable decorated with ViewportIndex within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry Execution Model must be declared using the Output Storage Class
VUID-ViewportIndex-ViewportIndex-04407YYValidateLiterals.LiteralsKernelGoodexplicitViewportIndexcoreThe variable decorated with ViewportIndex within the Fragment Execution Model must be declared using the Input Storage Class
VUID-ViewportIndex-ViewportIndex-04408YYValidateLiterals.LiteralsKernelGoodexplicitViewportIndexcoreThe variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value
VUID-ViewportIndex-ViewportIndex-07060NNoneexplicitViewportIndexcoreThe variable decorated with ViewportIndex within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-ViewportMaskNV-ViewportMaskNV-04409NNoneexplicitViewportMaskNVcoreThe ViewportMaskNV decoration must be used only within the Vertex, MeshNV, TessellationEvaluation, or Geometry Execution Model
VUID-ViewportMaskNV-ViewportMaskNV-04410NNoneexplicitViewportMaskNVcoreThe variable decorated with ViewportMaskNV must be declared using the Output Storage Class
VUID-ViewportMaskNV-ViewportMaskNV-04411NNoneexplicitViewportMaskNVcoreThe variable decorated with ViewportMaskNV must be declared as an array of 32-bit integer values
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04412NNoneexplicitViewportMaskPerViewNVcoreThe ViewportMaskPerViewNV decoration must be used only within the Vertex, MeshNV, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04413NNoneexplicitViewportMaskPerViewNVcoreThe variable decorated with ViewportMaskPerViewNV must be declared using the Output Storage Class
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04414NNoneexplicitViewportMaskPerViewNVcoreThe variable decorated with ViewportMaskPerViewNV must be declared as an array of 32-bit integer values
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04415NNoneexplicitViewportMaskPerViewNVcoreThe array decorated with ViewportMaskPerViewNV must be a size less than or equal to 32
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04416NNoneexplicitViewportMaskPerViewNVcoreThe array decorated with ViewportMaskPerViewNV must be a size greater than the maximum view in the subpass's view mask
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04417NNoneexplicitViewportMaskPerViewNVcoreThe array variable decorated with ViewportMaskPerViewNV must only be indexed by a constant or specialization constant
VUID-VkAabbPositionsKHR-minX-03546NNoneexplicitVkAabbPositionsKHRcoreminX must be less than or equal to maxX
VUID-VkAabbPositionsKHR-minY-03547NNoneexplicitVkAabbPositionsKHRcoreminY must be less than or equal to maxY
VUID-VkAabbPositionsKHR-minZ-03548NNoneexplicitVkAabbPositionsKHRcoreminZ must be less than or equal to maxZ
VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparentYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHRcoreBoth of dstAccelerationStructure, and srcAccelerationStructure that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkAccelerationStructureBuildGeometryInfoKHR-dstAccelerationStructure-04927NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf dstAccelerationStructure was created with VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV set in VkAccelerationStructureCreateInfoKHR::flags, VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV must be set in flags
VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-03796YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR bit set
VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-04928NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV is set in flags, dstAccelerationStructure must have been created with VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV set in VkAccelerationStructureCreateInfoKHR::flags
VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-04929NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV is set in flags, type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-07334NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf flags has the VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT bit set then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT bit set
VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-parameterYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHRcoreflags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreOnly one of pGeometries or ppGeometries can be a valid pointer, the other must be NULL
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameterYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf geometryCount is not 0, and pGeometries is not NULL, pGeometries must be a valid pointer to an array of geometryCount valid VkAccelerationStructureGeometryKHR structures
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHRcorepNext must be NULL
VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameterYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf geometryCount is not 0, and ppGeometries is not NULL, ppGeometries must be a valid pointer to an array of geometryCount valid pointers to valid VkAccelerationStructureGeometryKHR structures
VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-sTypeYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03654YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHRcoretype must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03789YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, the geometryType member of elements of either pGeometries or ppGeometries must be VK_GEOMETRY_TYPE_INSTANCES_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03790YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, geometryCount must be 1
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03791YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR the geometryType member of elements of either pGeometries or ppGeometries must not be VK_GEOMETRY_TYPE_INSTANCES_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03792YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then the geometryType member of each geometry in either pGeometries or ppGeometries must be the same
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03793YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then geometryCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxGeometryCount
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_AABBS_KHR, the total number of AABBs in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03795YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHRcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-parameterYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHRcoretype must be a valid VkAccelerationStructureTypeKHR value
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRcoreFor geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry uses indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::indexData must be a multiple of the element size of VkAccelerationStructureGeometryTrianglesDataKHR::indexType
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRcoreFor geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry does not use indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::vertexData must be a multiple of the component size of VkAccelerationStructureGeometryTrianglesDataKHR::vertexFormat
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03659NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRcoreFor geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRcoreFor geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16
VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRcoreFor geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16
VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNextNNoneimplicitVkAccelerationStructureBuildSizesInfoKHRcorepNext must be NULL
VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sTypeYNoneimplicitVkAccelerationStructureBuildSizesInfoKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08091YNegativeDescriptorBuffer.NotEnabledexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcoreIf accelerationStructure is not VK_NULL_HANDLE then accelerationStructure must have been created with VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkAccelerationStructureCreateInfoKHR::createFlags
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08093YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcoreIf accelerationStructure is not VK_NULL_HANDLE then accelerationStructureNV must be VK_NULL_HANDLE
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-parameterYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcoreIf accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08092YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcoreIf accelerationStructureNV is not VK_NULL_HANDLE then accelerationStructureNV must have been created with VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkAccelerationStructureCreateInfoNV::info.flags
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08094YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcoreIf accelerationStructureNV is not VK_NULL_HANDLE then accelerationStructure must be VK_NULL_HANDLE
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-parameterYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcoreIf accelerationStructureNV is not VK_NULL_HANDLE, accelerationStructureNV must be a valid VkAccelerationStructureNV handle
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-commonparentYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcoreBoth of accelerationStructure, and accelerationStructureNV that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcorepNext must be NULL
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkAccelerationStructureCreateInfoKHR-buffer-03614YNegativeRayTracing.CreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHRcorebuffer must have been created with a usage value containing VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
VUID-VkAccelerationStructureCreateInfoKHR-buffer-03615YNoneexplicitVkAccelerationStructureCreateInfoKHRcorebuffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameterYNoneimplicitVkAccelerationStructureCreateInfoKHRcorebuffer must be a valid VkBuffer handle
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613YNegativeRayTracing.CreateAccelerationStructureKHRReplayFeatureexplicitVkAccelerationStructureCreateInfoKHRcoreIf createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureCaptureReplay must be VK_TRUE
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04954NNoneexplicitVkAccelerationStructureCreateInfoKHRcoreIf VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV is set in createFlags and type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, one member of the pNext chain must be a pointer to a valid instance of VkAccelerationStructureMotionInfoNV
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04955NNoneexplicitVkAccelerationStructureCreateInfoKHRcoreIf any geometry includes VkAccelerationStructureGeometryMotionTrianglesDataNV then createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108YNegativeDescriptorBuffer.NotEnabledexplicitVkAccelerationStructureCreateInfoKHRcoreIf createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameterYNegativeRayTracing.CreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHRcorecreateFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612YNegativeRayTracing.CreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHRcoreIf deviceAddress is not zero, createFlags must include VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-09488NNoneexplicitVkAccelerationStructureCreateInfoKHRcoreIf deviceAddress is not zero, it must have been retrieved from an identically created acceleration structure, except for buffer and deviceAddress
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-09489NNoneexplicitVkAccelerationStructureCreateInfoKHRcoreIf deviceAddress is not zero, buffer must have been created identically to the buffer used to create the acceleration structure from which deviceAddress was retrieved, except for VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-09490NNoneexplicitVkAccelerationStructureCreateInfoKHRcoreIf deviceAddress is not zero, buffer must have been created with a VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress that was retrieved from vkGetBufferOpaqueCaptureAddress for the buffer that was used to create the acceleration structure from which deviceAddress was retrieved
VUID-VkAccelerationStructureCreateInfoKHR-offset-03616YNegativeRayTracing.CreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHRcoreThe sum of offset and size must be less than the size of buffer
VUID-VkAccelerationStructureCreateInfoKHR-offset-03734YNoneexplicitVkAccelerationStructureCreateInfoKHRcoreoffset must be a multiple of 256 bytes
VUID-VkAccelerationStructureCreateInfoKHR-pNext-08109YNegativeDescriptorBuffer.NotEnabledexplicitVkAccelerationStructureCreateInfoKHRcoreIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureCreateInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAccelerationStructureMotionInfoNV or VkOpaqueCaptureDescriptorDataCreateInfoEXT
VUID-VkAccelerationStructureCreateInfoKHR-sType-sTypeYNegativeRayTracing.CreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
VUID-VkAccelerationStructureCreateInfoKHR-sType-uniqueYNoneimplicitVkAccelerationStructureCreateInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureCreateInfoKHR-type-parameterYNegativeRayTracing.CreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHRcoretype must be a valid VkAccelerationStructureTypeKHR value
VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureCreateInfoNVcoreIf compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0
VUID-VkAccelerationStructureCreateInfoNV-info-parameterNNoneimplicitVkAccelerationStructureCreateInfoNVcoreinfo must be a valid VkAccelerationStructureInfoNV structure
VUID-VkAccelerationStructureCreateInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureCreateInfoNVcorepNext must be NULL or a pointer to a valid instance of VkOpaqueCaptureDescriptorDataCreateInfoEXT
VUID-VkAccelerationStructureCreateInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
VUID-VkAccelerationStructureCreateInfoNV-sType-uniqueYNoneimplicitVkAccelerationStructureCreateInfoNVcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameterYNoneimplicitVkAccelerationStructureDeviceAddressInfoKHRcoreaccelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureDeviceAddressInfoKHRcorepNext must be NULL
VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sTypeYNoneimplicitVkAccelerationStructureDeviceAddressInfoKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryAabbsDataKHRcorepNext must be NULL
VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryAabbsDataKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03545YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryAabbsDataKHRcorestride must be a multiple of 8
VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03820YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryAabbsDataKHRcorestride must be less than or equal to 232-1
VUID-VkAccelerationStructureGeometryInstancesDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryInstancesDataKHRcorepNext must be NULL
VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryInstancesDataKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
VUID-VkAccelerationStructureGeometryKHR-aabbs-parameterYNoneimplicitVkAccelerationStructureGeometryKHRcoreIf geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure
VUID-VkAccelerationStructureGeometryKHR-flags-parameterYNoneimplicitVkAccelerationStructureGeometryKHRcoreflags must be a valid combination of VkGeometryFlagBitsKHR values
VUID-VkAccelerationStructureGeometryKHR-geometryType-parameterYNoneimplicitVkAccelerationStructureGeometryKHRcoregeometryType must be a valid VkGeometryTypeKHR value
VUID-VkAccelerationStructureGeometryKHR-instances-parameterYNoneimplicitVkAccelerationStructureGeometryKHRcoreIf geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure
VUID-VkAccelerationStructureGeometryKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryKHRcorepNext must be NULL
VUID-VkAccelerationStructureGeometryKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
VUID-VkAccelerationStructureGeometryKHR-triangles-parameterYNoneimplicitVkAccelerationStructureGeometryKHRcoreIf geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure
VUID-VkAccelerationStructureGeometryMotionTrianglesDataNV-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryMotionTrianglesDataNVcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryTrianglesDataKHRcoreindexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameterYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRcoreindexType must be a valid VkIndexType value
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAccelerationStructureGeometryMotionTrianglesDataNV, VkAccelerationStructureTrianglesDisplacementMicromapNV, or VkAccelerationStructureTrianglesOpacityMicromapEXT
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-uniqueNNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797NNoneexplicitVkAccelerationStructureGeometryTrianglesDataKHRcoreThe format features of vertexFormat must contain VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameterYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRcorevertexFormat must be a valid VkFormat value
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735NNoneexplicitVkAccelerationStructureGeometryTrianglesDataKHRcorevertexStride must be a multiple of the size in bytes of the smallest component of vertexFormat
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryTrianglesDataKHRcorevertexStride must be less than or equal to 232-1
VUID-VkAccelerationStructureInfoNV-flags-02592YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVcoreIf flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set
VUID-VkAccelerationStructureInfoNV-flags-parameterYNoneimplicitVkAccelerationStructureInfoNVcoreflags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values
VUID-VkAccelerationStructureInfoNV-geometryCount-02422YNoneexplicitVkAccelerationStructureInfoNVcoregeometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
VUID-VkAccelerationStructureInfoNV-instanceCount-02423YNoneexplicitVkAccelerationStructureInfoNVcoreinstanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount
VUID-VkAccelerationStructureInfoNV-instanceData-02782YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitVkAccelerationStructureInfoNVcoreIf instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424YNoneexplicitVkAccelerationStructureInfoNVcoreThe total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount
VUID-VkAccelerationStructureInfoNV-pGeometries-parameterYNoneimplicitVkAccelerationStructureInfoNVcoreIf geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures
VUID-VkAccelerationStructureInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureInfoNVcorepNext must be NULL
VUID-VkAccelerationStructureInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureInfoNVcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
VUID-VkAccelerationStructureInfoNV-scratch-02781YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitVkAccelerationStructureInfoNVcorescratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-VkAccelerationStructureInfoNV-type-02425YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0
VUID-VkAccelerationStructureInfoNV-type-02426YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0
VUID-VkAccelerationStructureInfoNV-type-02786YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVcoreIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then the geometryType member of each geometry in pGeometries must be the same
VUID-VkAccelerationStructureInfoNV-type-04623YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVcoretype must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureInfoNV-type-parameterNNoneimplicitVkAccelerationStructureInfoNVcoretype must be a valid VkAccelerationStructureTypeNV value
VUID-VkAccelerationStructureInstanceKHR-flags-parameterNNoneimplicitVkAccelerationStructureInstanceKHRcoreflags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameterNNoneimplicitVkAccelerationStructureMatrixMotionInstanceNVcoreflags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameterYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNVcoreaccelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNVcorepNext must be NULL
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNVcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameterYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNVcoretype must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value
VUID-VkAccelerationStructureMotionInfoNV-flags-zerobitmaskYNoneimplicitVkAccelerationStructureMotionInfoNVcoreflags must be 0
VUID-VkAccelerationStructureMotionInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureMotionInfoNVcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
VUID-VkAccelerationStructureMotionInstanceNV-flags-zerobitmaskNNoneimplicitVkAccelerationStructureMotionInstanceNVcoreflags must be 0
VUID-VkAccelerationStructureMotionInstanceNV-matrixMotionInstance-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNVcoreIf type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV, the matrixMotionInstance member of data must be a valid VkAccelerationStructureMatrixMotionInstanceNV structure
VUID-VkAccelerationStructureMotionInstanceNV-srtMotionInstance-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNVcoreIf type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV, the srtMotionInstance member of data must be a valid VkAccelerationStructureSRTMotionInstanceNV structure
VUID-VkAccelerationStructureMotionInstanceNV-staticInstance-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNVcoreIf type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV, the staticInstance member of data must be a valid VkAccelerationStructureInstanceKHR structure
VUID-VkAccelerationStructureMotionInstanceNV-type-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNVcoretype must be a valid VkAccelerationStructureMotionInstanceTypeNV value
VUID-VkAccelerationStructureSRTMotionInstanceNV-flags-parameterNNoneimplicitVkAccelerationStructureSRTMotionInstanceNVcoreflags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementBiasAndScaleFormat-parameterYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVcoredisplacementBiasAndScaleFormat must be a valid VkFormat value
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementVectorFormat-parameterYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVcoredisplacementVectorFormat must be a valid VkFormat value
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-indexType-parameterYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVcoreindexType must be a valid VkIndexType value
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-micromap-parameterNNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVcoreIf micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-07992NNoneexplicitVkAccelerationStructureTrianglesDisplacementMicromapNVcoreOnly one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-parameterNNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVcoreIf usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-ppUsageCounts-parameterNNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVcoreIf usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-sType-sTypeYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-parameterYNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTcoreindexType must be a valid VkIndexType value
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameterNNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTcoreIf micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-07335NNoneexplicitVkAccelerationStructureTrianglesOpacityMicromapEXTcoreOnly one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-parameterNNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTcoreIf usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-ppUsageCounts-parameterNNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTcoreIf usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-sType-sTypeYNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
VUID-VkAccelerationStructureVersionInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureVersionInfoKHRcorepNext must be NULL
VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameterYNegativeRayTracing.AccelerationStructureVersionInfoKHRimplicitVkAccelerationStructureVersionInfoKHRcorepVersionData must be a valid pointer to an array of \(2 \times \mathtt{VK\_UUID\_SIZE}\) uint8_t values
VUID-VkAccelerationStructureVersionInfoKHR-sType-sTypeYNegativeRayTracing.AccelerationStructureVersionInfoKHRimplicitVkAccelerationStructureVersionInfoKHRcoresType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
VUID-VkAcquireNextImageInfoKHR-commonparentYNoneimplicitVkAcquireNextImageInfoKHRcoreEach of fence, semaphore, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkAcquireNextImageInfoKHR-deviceMask-01290YNegativeWsi.DeviceMaskexplicitVkAcquireNextImageInfoKHRcoredeviceMask must be a valid device mask
VUID-VkAcquireNextImageInfoKHR-deviceMask-01291YNegativeWsi.DeviceMaskexplicitVkAcquireNextImageInfoKHRcoredeviceMask must not be zero
VUID-VkAcquireNextImageInfoKHR-fence-01289NNoneexplicitVkAcquireNextImageInfoKHRcoreIf fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue
VUID-VkAcquireNextImageInfoKHR-fence-parameterYNoneimplicitVkAcquireNextImageInfoKHRcoreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-VkAcquireNextImageInfoKHR-pNext-pNextYNoneimplicitVkAcquireNextImageInfoKHRcorepNext must be NULL
VUID-VkAcquireNextImageInfoKHR-sType-sTypeYNoneimplicitVkAcquireNextImageInfoKHRcoresType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
VUID-VkAcquireNextImageInfoKHR-semaphore-01288YNegativeWsi.SwapchainAcquireImageWithSignaledSemaphoreexplicitVkAcquireNextImageInfoKHRcoreIf semaphore is not VK_NULL_HANDLE it must be unsignaled
VUID-VkAcquireNextImageInfoKHR-semaphore-01781YNegativeWsi.SwapchainAcquireImageWithPendingSemaphoreWaitexplicitVkAcquireNextImageInfoKHRcoreIf semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending
VUID-VkAcquireNextImageInfoKHR-semaphore-01782YNegativeWsi.SwapchainAcquireImageNoSync2KHRexplicitVkAcquireNextImageInfoKHRcoresemaphore and fence must not both be equal to VK_NULL_HANDLE
VUID-VkAcquireNextImageInfoKHR-semaphore-03266YNegativeWsi.SwapchainAcquireImageNoBinarySemaphore2KHRexplicitVkAcquireNextImageInfoKHRcoresemaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkAcquireNextImageInfoKHR-semaphore-parameterYNoneimplicitVkAcquireNextImageInfoKHRcoreIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-VkAcquireNextImageInfoKHR-swapchain-01675YNegativeWsi.SwapchainAcquireImageRetiredexplicitVkAcquireNextImageInfoKHRcoreswapchain must not be in the retired state
VUID-VkAcquireNextImageInfoKHR-swapchain-parameterYNoneimplicitVkAcquireNextImageInfoKHRcoreswapchain must be a valid VkSwapchainKHR handle
VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmaskYNoneimplicitVkAcquireProfilingLockInfoKHRcoreflags must be 0
VUID-VkAcquireProfilingLockInfoKHR-pNext-pNextYNoneimplicitVkAcquireProfilingLockInfoKHRcorepNext must be NULL
VUID-VkAcquireProfilingLockInfoKHR-sType-sTypeYNoneimplicitVkAcquireProfilingLockInfoKHRcoresType must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
VUID-VkAllocationCallbacks-pfnAllocation-00632YVkLayerTest.InvalidAllocationCallbacksexplicitVkAllocationCallbackscorepfnAllocation must be a valid pointer to a valid user-defined PFN_vkAllocationFunction
VUID-VkAllocationCallbacks-pfnFree-00634YVkLayerTest.InvalidAllocationCallbacksexplicitVkAllocationCallbackscorepfnFree must be a valid pointer to a valid user-defined PFN_vkFreeFunction
VUID-VkAllocationCallbacks-pfnInternalAllocation-00635YVkLayerTest.InvalidAllocationCallbacksexplicitVkAllocationCallbackscoreIf either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks
VUID-VkAllocationCallbacks-pfnReallocation-00633YVkLayerTest.InvalidAllocationCallbacksexplicitVkAllocationCallbackscorepfnReallocation must be a valid pointer to a valid user-defined PFN_vkReallocationFunction
VUID-VkAmigoProfilingSubmitInfoSEC-sType-sTypeYNoneimplicitVkAmigoProfilingSubmitInfoSECcoresType must be VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
VUID-VkAndroidHardwareBufferFormatProperties2ANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatProperties2ANDROIDcoresType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID
VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatPropertiesANDROIDcoresType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferFormatResolvePropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatResolvePropertiesANDROIDcoresType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNextYNoneimplicitVkAndroidHardwareBufferPropertiesANDROIDcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAndroidHardwareBufferFormatProperties2ANDROID, VkAndroidHardwareBufferFormatPropertiesANDROID, or VkAndroidHardwareBufferFormatResolvePropertiesANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferPropertiesANDROIDcoresType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-uniqueYNoneimplicitVkAndroidHardwareBufferPropertiesANDROIDcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkAndroidHardwareBufferUsageANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferUsageANDROIDcoresType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkAndroidSurfaceCreateInfoKHRcoreflags must be 0
VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkAndroidSurfaceCreateInfoKHRcorepNext must be NULL
VUID-VkAndroidSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkAndroidSurfaceCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
VUID-VkAndroidSurfaceCreateInfoKHR-window-01248NNoneexplicitVkAndroidSurfaceCreateInfoKHRcorewindow must point to a valid Android ANativeWindow
VUID-VkApplicationInfo-apiVersion-04010YNoneexplicitVkApplicationInfocoreIf apiVersion is not 0, then it must be greater than or equal to VK_API_VERSION_1_0
VUID-VkApplicationInfo-pApplicationName-parameterNNoneimplicitVkApplicationInfocoreIf pApplicationName is not NULL, pApplicationName must be a null-terminated UTF-8 string
VUID-VkApplicationInfo-pEngineName-parameterNNoneimplicitVkApplicationInfocoreIf pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string
VUID-VkApplicationInfo-pNext-pNextYNoneimplicitVkApplicationInfocorepNext must be NULL
VUID-VkApplicationInfo-sType-sTypeYNegativeInstanceless.InstanceAppInfoBadStypeimplicitVkApplicationInfocoresType must be VK_STRUCTURE_TYPE_APPLICATION_INFO
VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07309YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescriptioncoreIf the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07310YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescriptioncoreIf the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription-finalLayout-00843YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncorefinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescription-finalLayout-parameterYNoneimplicitVkAttachmentDescriptioncorefinalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription-flags-parameterYNoneimplicitVkAttachmentDescriptioncoreflags must be a valid combination of VkAttachmentDescriptionFlagBits values
VUID-VkAttachmentDescription-format-03280YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03281YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-03282YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03283YNegativeImage.ImageLayout, NegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-03286YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03287YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03290YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes only the depth component, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03291YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes only the depth component, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03292YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes only the stencil component, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03293YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes only the stencil component, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-06242YNegativeRenderPass.InvalidAttachmentDescriptionDSLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-06243YNegativeRenderPass.InvalidAttachmentDescriptionDSLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-06487YNegativeRenderPass.InvalidAttachmentDescriptionColorLayoutexplicitVkAttachmentDescriptioncoreIf format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-06488YNegativeRenderPass.InvalidAttachmentDescriptionColorLayoutexplicitVkAttachmentDescriptioncoreIf format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-06698YNegativeRenderPass.AttachmentDescriptionUndefinedFormat, NegativeRenderPass.RenderPassAttachmentFormatexplicitVkAttachmentDescriptioncoreformat must not be VK_FORMAT_UNDEFINED
VUID-VkAttachmentDescription-format-06699YNegativeRenderPass.AttachmentUndefinedLayoutexplicitVkAttachmentDescriptioncoreIf format includes a color or depth component and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription-format-06700YNegativeRenderPass.AttachmentUndefinedLayoutexplicitVkAttachmentDescriptioncoreIf format includes a stencil component and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription-format-06906YNoneexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-06907YNoneexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-parameterYNoneimplicitVkAttachmentDescriptioncoreformat must be a valid VkFormat value
VUID-VkAttachmentDescription-initialLayout-parameterYNoneimplicitVkAttachmentDescriptioncoreinitialLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription-loadOp-parameterYNoneimplicitVkAttachmentDescriptioncoreloadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription-samples-08745NNoneexplicitVkAttachmentDescriptioncoresamples must be a valid VkSampleCountFlagBits value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for the given format
VUID-VkAttachmentDescription-samples-parameterYNoneimplicitVkAttachmentDescriptioncoresamples must be a valid VkSampleCountFlagBits value
VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
VUID-VkAttachmentDescription-stencilLoadOp-parameterYNoneimplicitVkAttachmentDescriptioncorestencilLoadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription-stencilStoreOp-parameterYNoneimplicitVkAttachmentDescriptioncorestencilStoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription-storeOp-parameterYNoneimplicitVkAttachmentDescriptioncorestoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription-synchronization2-06908YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf the synchronization2 feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkAttachmentDescription-synchronization2-06909YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptioncoreIf the synchronization2 feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07309YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescription2coreIf the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07310YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescription2coreIf the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription2-finalLayout-00843YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2corefinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescription2-finalLayout-parameterYNoneimplicitVkAttachmentDescription2corefinalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription2-flags-parameterYNoneimplicitVkAttachmentDescription2coreflags must be a valid combination of VkAttachmentDescriptionFlagBits values
VUID-VkAttachmentDescription2-format-03280YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-03281YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription2-format-03282YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-03283YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription2-format-03286YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-03287YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-03290YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf format is a depth/stencil format which includes only the depth component, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-03291YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf format is a depth/stencil format which includes only the depth component, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-06247YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure and format only includes a stencil component, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-06248YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure and format only includes a stencil component, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-06249YNegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentDescription2coreIf format is a depth/stencil format which includes both depth and stencil components, and initialLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure
VUID-VkAttachmentDescription2-format-06250YNegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentDescription2coreIf format is a depth/stencil format which includes both depth and stencil components, and finalLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure
VUID-VkAttachmentDescription2-format-06487YNoneexplicitVkAttachmentDescription2coreIf format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription2-format-06488YNoneexplicitVkAttachmentDescription2coreIf format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription2-format-06699YNegativeRenderPass.AttachmentUndefinedLayoutexplicitVkAttachmentDescription2coreIf format includes a color or depth component and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-format-06906YNegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentDescription2coreIf format is a depth/stencil format which includes both depth and stencil components, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-06907YNegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentDescription2coreIf format is a depth/stencil format which includes both depth and stencil components, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-09332YNegativeRenderPass.RenderPassAttachmentFormatexplicitVkAttachmentDescription2coreIf externalFormatResolve is not enabled, format must not be VK_FORMAT_UNDEFINED
VUID-VkAttachmentDescription2-format-09334YNegativeAndroidExternalResolve.AttachmentDescriptionZeroExternalFormatexplicitVkAttachmentDescription2coreIf format is VK_FORMAT_UNDEFINED, there must be a VkExternalFormatANDROID structure in the pNext chain with a externalFormat that is not equal to 0
VUID-VkAttachmentDescription2-format-parameterYNoneimplicitVkAttachmentDescription2coreformat must be a valid VkFormat value
VUID-VkAttachmentDescription2-initialLayout-parameterYNoneimplicitVkAttachmentDescription2coreinitialLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription2-loadOp-parameterYNoneimplicitVkAttachmentDescription2coreloadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription2-pNext-06704YNegativeRenderPass.StencilLoadOpexplicitVkAttachmentDescription2coreIf the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure, format includes a stencil component, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-pNext-06705YNegativeRenderPass.StencilLoadOpexplicitVkAttachmentDescription2coreIf the pNext chain includes a VkAttachmentDescriptionStencilLayout structure, format includes a stencil component, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then VkAttachmentDescriptionStencilLayout::stencilInitialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-pNext-pNextYNoneimplicitVkAttachmentDescription2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAttachmentDescriptionStencilLayout or VkExternalFormatANDROID
VUID-VkAttachmentDescription2-sType-sTypeYNoneimplicitVkAttachmentDescription2coresType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
VUID-VkAttachmentDescription2-sType-uniqueYNoneimplicitVkAttachmentDescription2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkAttachmentDescription2-samples-08745NNoneexplicitVkAttachmentDescription2coresamples must be a valid VkSampleCountFlagBits value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for the given format
VUID-VkAttachmentDescription2-samples-parameterYNoneimplicitVkAttachmentDescription2coresamples must be a valid VkSampleCountFlagBits value
VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03284YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03285YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
VUID-VkAttachmentDescription2-stencilLoadOp-parameterYNoneimplicitVkAttachmentDescription2corestencilLoadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription2-stencilStoreOp-parameterYNoneimplicitVkAttachmentDescription2corestencilStoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription2-storeOp-parameterYNoneimplicitVkAttachmentDescription2corestoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription2-synchronization2-06908YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf the synchronization2 feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkAttachmentDescription2-synchronization2-06909YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2coreIf the synchronization2 feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkAttachmentDescriptionStencilLayout-sType-sTypeYNoneimplicitVkAttachmentDescriptionStencilLayoutcoresType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionStencilLayoutcorestencilFinalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03310YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionStencilLayoutcorestencilFinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameterYNoneimplicitVkAttachmentDescriptionStencilLayoutcorestencilFinalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionStencilLayoutcorestencilInitialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-parameterYNoneimplicitVkAttachmentDescriptionStencilLayoutcorestencilInitialLayout must be a valid VkImageLayout value
VUID-VkAttachmentReference-attachmentFeedbackLoopLayout-07311YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentReferencecoreIf the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentReference-layout-03077YNegativeRenderPass.AttachmentReferenceLayout, NegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentReferencecoreIf attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
VUID-VkAttachmentReference-layout-parameterYNoneimplicitVkAttachmentReferencecorelayout must be a valid VkImageLayout value
VUID-VkAttachmentReference-separateDepthStencilLayouts-03313YNegativeRenderPass.AttachmentReferenceLayoutexplicitVkAttachmentReferencecoreIf the separateDepthStencilLayouts feature is not enabled, and attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
VUID-VkAttachmentReference-synchronization2-06910YNegativeRenderPass.AttachmentReferenceSync2LayoutexplicitVkAttachmentReferencecoreIf the synchronization2 feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkAttachmentReference2-attachmentFeedbackLoopLayout-07311YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentReference2coreIf the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentReference2-layout-03077YNegativeRenderPass.AttachmentReferenceLayout, NegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentReference2coreIf attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
VUID-VkAttachmentReference2-layout-parameterYNoneimplicitVkAttachmentReference2corelayout must be a valid VkImageLayout value
VUID-VkAttachmentReference2-pNext-pNextYNoneimplicitVkAttachmentReference2corepNext must be NULL or a pointer to a valid instance of VkAttachmentReferenceStencilLayout
VUID-VkAttachmentReference2-sType-sTypeYNoneimplicitVkAttachmentReference2coresType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
VUID-VkAttachmentReference2-sType-uniqueYNoneimplicitVkAttachmentReference2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313YNegativeRenderPass.AttachmentReferenceLayoutexplicitVkAttachmentReference2coreIf the separateDepthStencilLayouts feature is not enabled, and attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
VUID-VkAttachmentReference2-synchronization2-06910YNegativeRenderPass.AttachmentReferenceSync2LayoutexplicitVkAttachmentReference2coreIf the synchronization2 feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkAttachmentReferenceStencilLayout-sType-sTypeYNoneimplicitVkAttachmentReferenceStencilLayoutcoresType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318YNegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentReferenceStencilLayoutcorestencilLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
VUID-VkAttachmentReferenceStencilLayout-stencilLayout-parameterYNoneimplicitVkAttachmentReferenceStencilLayoutcorestencilLayout must be a valid VkImageLayout value
VUID-VkAttachmentSampleCountInfoAMD-sType-sTypeYNoneimplicitVkAttachmentSampleCountInfoAMDcoresType must be VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531YNegativeRenderPass.BeginSampleLocationsIndicesEXTexplicitVkAttachmentSampleLocationsEXTcoreattachmentIndex must be less than the attachmentCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with
VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameterNNoneimplicitVkAttachmentSampleLocationsEXTcoresampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-03620YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVcoreaccelerationStructure must not already be backed by a memory object
VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameterYNoneimplicitVkBindAccelerationStructureMemoryInfoNVcoreaccelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-VkBindAccelerationStructureMemoryInfoNV-commonparentYNoneimplicitVkBindAccelerationStructureMemoryInfoNVcoreBoth of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindAccelerationStructureMemoryInfoNV-memory-03622YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVcorememory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV
VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameterYNegativeRayTracingNV.ValidateBindAccelerationStructureimplicitVkBindAccelerationStructureMemoryInfoNVcorememory must be a valid VkDeviceMemory handle
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVcorememoryOffset must be less than the size of memory
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVcorememoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV
VUID-VkBindAccelerationStructureMemoryInfoNV-pDeviceIndices-parameterYNoneimplicitVkBindAccelerationStructureMemoryInfoNVcoreIf deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNextYNoneimplicitVkBindAccelerationStructureMemoryInfoNVcorepNext must be NULL
VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sTypeYNoneimplicitVkBindAccelerationStructureMemoryInfoNVcoresType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
VUID-VkBindAccelerationStructureMemoryInfoNV-size-03624YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVcoreThe size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV must be less than or equal to the size of memory minus memoryOffset
VUID-VkBindBufferMemoryDeviceGroupInfo-deviceIndexCount-01606YNegativeMemory.BindBufferMemoryDeviceGroupexplicitVkBindBufferMemoryDeviceGroupInfocoredeviceIndexCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607YNegativeMemory.BindBufferMemoryDeviceGroupexplicitVkBindBufferMemoryDeviceGroupInfocoreAll elements of pDeviceIndices must be valid device indices
VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameterYNoneimplicitVkBindBufferMemoryDeviceGroupInfocoreIf deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sTypeYNoneimplicitVkBindBufferMemoryDeviceGroupInfocoresType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
VUID-VkBindBufferMemoryInfo-None-01898YNoneexplicitVkBindBufferMemoryInfocoreIf buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkBindBufferMemoryInfo-None-01899YNoneexplicitVkBindBufferMemoryInfocoreIf buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkBindBufferMemoryInfo-apiVersion-07920NNoneexplicitVkBindBufferMemoryInfocoreIf the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image
VUID-VkBindBufferMemoryInfo-buffer-01030YNoneexplicitVkBindBufferMemoryInfocorebuffer must not have been created with any sparse memory binding flags
VUID-VkBindBufferMemoryInfo-buffer-01038NNoneexplicitVkBindBufferMemoryInfocoreIf buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been allocated with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero
VUID-VkBindBufferMemoryInfo-buffer-01444NNoneexplicitVkBindBufferMemoryInfocoreIf buffer requires a dedicated allocation (as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been allocated with VkMemoryDedicatedAllocateInfo::buffer equal to buffer
VUID-VkBindBufferMemoryInfo-buffer-06408NNoneexplicitVkBindBufferMemoryInfocoreIf buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-VkBindBufferMemoryInfo-buffer-07459YNoneexplicitVkBindBufferMemoryInfocorebuffer must not have been bound to a memory object
VUID-VkBindBufferMemoryInfo-buffer-09201YNoneexplicitVkBindBufferMemoryInfocoreIf the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set
VUID-VkBindBufferMemoryInfo-buffer-parameterYNoneimplicitVkBindBufferMemoryInfocorebuffer must be a valid VkBuffer handle
VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339YNoneexplicitVkBindBufferMemoryInfocoreIf the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set
VUID-VkBindBufferMemoryInfo-bufferDeviceAddressCaptureReplay-09200YNoneexplicitVkBindBufferMemoryInfocoreIf the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressCaptureReplay feature is enabled and buffer was created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set
VUID-VkBindBufferMemoryInfo-commonparentYNegativeParent.BindBufferimplicitVkBindBufferMemoryInfocoreBoth of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112YNoneexplicitVkBindBufferMemoryInfocoreIf the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set
VUID-VkBindBufferMemoryInfo-memory-01035YNegativeAndroidHardwareBuffer.ImportBufferHandleTypeexplicitVkBindBufferMemoryInfocorememory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer
VUID-VkBindBufferMemoryInfo-memory-01508YNoneexplicitVkBindBufferMemoryInfocoreIf the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero
VUID-VkBindBufferMemoryInfo-memory-02726YNegativeExternalMemorySync.ExportBufferHandleTypeexplicitVkBindBufferMemoryInfocoreIf the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created
VUID-VkBindBufferMemoryInfo-memory-02985YNegativeExternalMemorySync.ImportMemoryHandleTypeexplicitVkBindBufferMemoryInfocoreIf memory was allocated by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created
VUID-VkBindBufferMemoryInfo-memory-02986YNegativeAndroidHardwareBuffer.ImportBufferHandleTypeexplicitVkBindBufferMemoryInfocoreIf memory was allocated with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created
VUID-VkBindBufferMemoryInfo-memory-parameterYNoneimplicitVkBindBufferMemoryInfocorememory must be a valid VkDeviceMemory handle
VUID-VkBindBufferMemoryInfo-memoryOffset-01031YNoneexplicitVkBindBufferMemoryInfocorememoryOffset must be less than the size of memory
VUID-VkBindBufferMemoryInfo-memoryOffset-01036YNoneexplicitVkBindBufferMemoryInfocorememoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer
VUID-VkBindBufferMemoryInfo-pNext-01605NNoneexplicitVkBindBufferMemoryInfocoreIf the pNext chain includes a VkBindBufferMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindBufferMemoryDeviceGroupInfo::pDeviceIndices must have been allocated
VUID-VkBindBufferMemoryInfo-pNext-pNextYNoneimplicitVkBindBufferMemoryInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBindBufferMemoryDeviceGroupInfo or VkBindMemoryStatusKHR
VUID-VkBindBufferMemoryInfo-sType-sTypeYNoneimplicitVkBindBufferMemoryInfocoresType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
VUID-VkBindBufferMemoryInfo-sType-uniqueYNoneimplicitVkBindBufferMemoryInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBindBufferMemoryInfo-size-01037YNoneexplicitVkBindBufferMemoryInfocoreThe size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-None-09495YNoneexplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcoreIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-layout-09496NNoneexplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcoreIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-layout-parameterYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcoreIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-pNext-pNextYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcorepNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-sType-sTypeYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcoresType must be VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-sType-uniqueYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-set-08070YNoneexplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcoreThe VkDescriptorSetLayout at index set when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT bit set
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-set-08071YNoneexplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcoreset must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-stageFlags-parameterYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-stageFlags-requiredbitmaskYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTcorestageFlags must not be 0
VUID-VkBindDescriptorSetsInfoKHR-None-09495YNegativeDescriptors.BindDescriptorSetsInfoPipelineLayoutexplicitVkBindDescriptorSetsInfoKHRcoreIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkBindDescriptorSetsInfoKHR-commonparentYNoneimplicitVkBindDescriptorSetsInfoKHRcoreBoth of layout, and the elements of pDescriptorSets that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindDescriptorSetsInfoKHR-descriptorSetCount-arraylengthNNoneimplicitVkBindDescriptorSetsInfoKHRcoredescriptorSetCount must be greater than 0
VUID-VkBindDescriptorSetsInfoKHR-dynamicOffsetCount-00359YNegativeDescriptors.DynamicOffsetCasesMaintenance6explicitVkBindDescriptorSetsInfoKHRcoredynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets
VUID-VkBindDescriptorSetsInfoKHR-firstSet-00360YNoneexplicitVkBindDescriptorSetsInfoKHRcoreThe sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkBindDescriptorSetsInfoKHR-layout-09496NNoneexplicitVkBindDescriptorSetsInfoKHRcoreIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkBindDescriptorSetsInfoKHR-layout-parameterYNegativeDescriptors.BindDescriptorSetsInfoPipelineLayoutimplicitVkBindDescriptorSetsInfoKHRcoreIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-00358YNoneexplicitVkBindDescriptorSetsInfoKHRcoreEach element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout that matches (is the same as, or identically defined as) the VkDescriptorSetLayout at set n in layout, where n is the sum of firstSet and the index into pDescriptorSets
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-01979YNoneexplicitVkBindDescriptorSetsInfoKHRcoreFor each dynamic uniform or storage buffer binding in pDescriptorSets, the sum of the effective offset and the range of the binding must be less than or equal to the size of the buffer
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-04616YNoneexplicitVkBindDescriptorSetsInfoKHRcoreEach element of pDescriptorSets must not have been allocated from a VkDescriptorPool with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-06563YNoneexplicitVkBindDescriptorSetsInfoKHRcoreIf graphicsPipelineLibrary is not enabled, each element of pDescriptorSets must be a valid VkDescriptorSet
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-06715YNoneexplicitVkBindDescriptorSetsInfoKHRcoreFor each dynamic uniform or storage buffer binding in pDescriptorSets, if the range was set with VK_WHOLE_SIZE then pDynamicOffsets which corresponds to the descriptor binding must be 0
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-08010YNegativeDescriptorBuffer.BindingexplicitVkBindDescriptorSetsInfoKHRcoreEach element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout which was not created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-parameterYNoneimplicitVkBindDescriptorSetsInfoKHRcorepDescriptorSets must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSet handles
VUID-VkBindDescriptorSetsInfoKHR-pDynamicOffsets-01971YNoneexplicitVkBindDescriptorSetsInfoKHRcoreEach element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment
VUID-VkBindDescriptorSetsInfoKHR-pDynamicOffsets-01972YNoneexplicitVkBindDescriptorSetsInfoKHRcoreEach element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment
VUID-VkBindDescriptorSetsInfoKHR-pDynamicOffsets-parameterNNoneimplicitVkBindDescriptorSetsInfoKHRcoreIf dynamicOffsetCount is not 0, and pDynamicOffsets is not NULL, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount or VK_NULL_HANDLE uint32_t values
VUID-VkBindDescriptorSetsInfoKHR-pNext-pNextYNoneimplicitVkBindDescriptorSetsInfoKHRcorepNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkBindDescriptorSetsInfoKHR-sType-sTypeYNoneimplicitVkBindDescriptorSetsInfoKHRcoresType must be VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR
VUID-VkBindDescriptorSetsInfoKHR-sType-uniqueYNoneimplicitVkBindDescriptorSetsInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBindDescriptorSetsInfoKHR-stageFlags-parameterYNoneimplicitVkBindDescriptorSetsInfoKHRcorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkBindDescriptorSetsInfoKHR-stageFlags-requiredbitmaskYNoneimplicitVkBindDescriptorSetsInfoKHRcorestageFlags must not be 0
VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633YNegativeImage.BindIMageMemoryDeviceGroupInfo, NegativeImage.ImageSplitInstanceBindRegionCountexplicitVkBindImageMemoryDeviceGroupInfocoreAt least one of deviceIndexCount and splitInstanceBindRegionCount must be zero
VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634YNegativeImage.ImageSplitInstanceBindRegionCount, NegativeMemory.BindBufferMemoryDeviceGroupexplicitVkBindImageMemoryDeviceGroupInfocoredeviceIndexCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640NNoneexplicitVkBindImageMemoryDeviceGroupInfocoreThe extent.width member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource
VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641NNoneexplicitVkBindImageMemoryDeviceGroupInfocoreThe extent.height member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresource
VUID-VkBindImageMemoryDeviceGroupInfo-offset-01638NNoneexplicitVkBindImageMemoryDeviceGroupInfocoreThe offset.x member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image
VUID-VkBindImageMemoryDeviceGroupInfo-offset-01639NNoneexplicitVkBindImageMemoryDeviceGroupInfocoreThe offset.y member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image
VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635NNoneexplicitVkBindImageMemoryDeviceGroupInfocoreAll elements of pDeviceIndices must be valid device indices
VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameterYNoneimplicitVkBindImageMemoryDeviceGroupInfocoreIf deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637NNoneexplicitVkBindImageMemoryDeviceGroupInfocoreElements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap
VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameterYNoneimplicitVkBindImageMemoryDeviceGroupInfocoreIf splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures
VUID-VkBindImageMemoryDeviceGroupInfo-sType-sTypeYNoneimplicitVkBindImageMemoryDeviceGroupInfocoresType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636YNegativeImage.ImageSplitInstanceBindRegionCountWithDeviceGroupexplicitVkBindImageMemoryDeviceGroupInfocoresplitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared
VUID-VkBindImageMemoryInfo-None-01901YNoneexplicitVkBindImageMemoryInfocoreIf image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkBindImageMemoryInfo-None-01902YNoneexplicitVkBindImageMemoryInfocoreIf image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkBindImageMemoryInfo-apiVersion-07921NNoneexplicitVkBindImageMemoryInfocoreIf the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image
VUID-VkBindImageMemoryInfo-commonparentYNegativeParent.BindImageimplicitVkBindImageMemoryInfocoreBoth of image, and memory that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindImageMemoryInfo-descriptorBufferCaptureReplay-08113YNoneexplicitVkBindImageMemoryInfocoreIf the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set
VUID-VkBindImageMemoryInfo-image-01045YNoneexplicitVkBindImageMemoryInfocoreimage must not have been created with any sparse memory binding flags
VUID-VkBindImageMemoryInfo-image-01050NNoneexplicitVkBindImageMemoryInfocoreIf image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero
VUID-VkBindImageMemoryInfo-image-01445NNoneexplicitVkBindImageMemoryInfocoreIf image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image
VUID-VkBindImageMemoryInfo-image-01630YNegativeWsi.BindImageMemorySwapchainexplicitVkBindImageMemoryInfocoreIf image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHR::swapchain, then the pNext chain must include a VkBindImageMemorySwapchainInfoKHR structure containing the same swapchain handle
VUID-VkBindImageMemoryInfo-image-07460YNoneexplicitVkBindImageMemoryInfocoreimage must not have been bound to a memory object
VUID-VkBindImageMemoryInfo-image-07736YNegativeMemory.BindMemory2BindInfos, NegativeYcbcr.BindMemoryexplicitVkBindImageMemoryInfocoreIf image was created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set, then the pNext chain must include a VkBindImagePlaneMemoryInfo structure
VUID-VkBindImageMemoryInfo-image-09202YNoneexplicitVkBindImageMemoryInfocoreIf the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set
VUID-VkBindImageMemoryInfo-image-parameterYNoneimplicitVkBindImageMemoryInfocoreimage must be a valid VkImage handle
VUID-VkBindImageMemoryInfo-memory-02628YNoneexplicitVkBindImageMemoryInfocoreIf the dedicatedAllocationImageAliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero
VUID-VkBindImageMemoryInfo-memory-02629YNoneexplicitVkBindImageMemoryInfocoreIf the dedicatedAllocationImageAliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created
VUID-VkBindImageMemoryInfo-memory-02728YNegativeExternalMemorySync.ExportImageHandleTypeexplicitVkBindImageMemoryInfocoreIf the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryImageCreateInfo::handleTypes when image was created
VUID-VkBindImageMemoryInfo-memory-02989YNegativeExternalMemorySync.ImportMemoryHandleTypeexplicitVkBindImageMemoryInfocoreIf memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created
VUID-VkBindImageMemoryInfo-memory-02990YNegativeAndroidHardwareBuffer.ImportImageHandleTypeexplicitVkBindImageMemoryInfocoreIf memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created
VUID-VkBindImageMemoryInfo-memoryOffset-01046YNoneexplicitVkBindImageMemoryInfocorememoryOffset must be less than the size of memory
VUID-VkBindImageMemoryInfo-pNext-01615YNegativeAndroidHardwareBuffer.ImportImageHandleType, NegativeExternalMemorySync.ImportMemoryHandleType, NegativeYcbcr.BindMemory2DisjointUnsupportedexplicitVkBindImageMemoryInfocoreIf the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image
VUID-VkBindImageMemoryInfo-pNext-01616YNegativeYcbcr.BindMemory2DisjointexplicitVkBindImageMemoryInfocoreIf the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image
VUID-VkBindImageMemoryInfo-pNext-01617YNegativeAndroidHardwareBuffer.ImportImageHandleType, NegativeExternalMemorySync.ImportMemoryHandleType, NegativeYcbcr.BindMemory2DisjointexplicitVkBindImageMemoryInfocoreIf the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image
VUID-VkBindImageMemoryInfo-pNext-01618YNegativeYcbcr.BindMemoryexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImagePlaneMemoryInfo structure, image must have been created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set
VUID-VkBindImageMemoryInfo-pNext-01619YNegativeYcbcr.BindMemory, NegativeYcbcr.BindMemory2DisjointUnsupportedexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImagePlaneMemoryInfo structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure's pNext chain
VUID-VkBindImageMemoryInfo-pNext-01620YNegativeMemory.BindMemoryNoCheck, NegativeYcbcr.BindMemory2DisjointexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure's pNext chain
VUID-VkBindImageMemoryInfo-pNext-01621YNegativeYcbcr.BindMemory, NegativeYcbcr.BindMemory2DisjointexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure's pNext chain
VUID-VkBindImageMemoryInfo-pNext-01626NNoneexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated
VUID-VkBindImageMemoryInfo-pNext-01627YNegativeImage.ImageSplitInstanceBindRegionCountexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, and VkBindImageMemoryDeviceGroupInfo::splitInstanceBindRegionCount is not zero, then image must have been created with the VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT bit set
VUID-VkBindImageMemoryInfo-pNext-01628NNoneexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions must be valid rectangles contained within the dimensions of image
VUID-VkBindImageMemoryInfo-pNext-01629NNoneexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, the union of the areas of all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions that correspond to the same instance of image must cover the entire image
VUID-VkBindImageMemoryInfo-pNext-01631YNegativeWsi.BindImageMemorySwapchainexplicitVkBindImageMemoryInfocoreIf the pNext chain includes a VkBindImageMemorySwapchainInfoKHR structure, memory must be VK_NULL_HANDLE
VUID-VkBindImageMemoryInfo-pNext-01632YNegativeWsi.BindImageMemorySwapchainexplicitVkBindImageMemoryInfocoreIf the pNext chain does not include a VkBindImageMemorySwapchainInfoKHR structure, memory must be a valid VkDeviceMemory handle
VUID-VkBindImageMemoryInfo-pNext-pNextYNoneimplicitVkBindImageMemoryInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBindImageMemoryDeviceGroupInfo, VkBindImageMemorySwapchainInfoKHR, VkBindImagePlaneMemoryInfo, or VkBindMemoryStatusKHR
VUID-VkBindImageMemoryInfo-sType-sTypeYNoneimplicitVkBindImageMemoryInfocoresType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
VUID-VkBindImageMemoryInfo-sType-uniqueYNoneimplicitVkBindImageMemoryInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644YNegativeWsi.BindImageMemorySwapchainexplicitVkBindImageMemorySwapchainInfoKHRcoreimageIndex must be less than the number of images in swapchain
VUID-VkBindImageMemorySwapchainInfoKHR-sType-sTypeYNoneimplicitVkBindImageMemorySwapchainInfoKHRcoresType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07756YNegativeWsi.SwapchainMaintenance1ExtensionCapsexplicitVkBindImageMemorySwapchainInfoKHRcoreIf the swapchain has been created with VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT, imageIndex must be one that has previously been returned by vkAcquireNextImageKHR or vkAcquireNextImage2KHR
VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameterYNoneimplicitVkBindImageMemorySwapchainInfoKHRcoreswapchain must be a valid VkSwapchainKHR handle
VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283YNegativeYcbcr.BindMemoryexplicitVkBindImagePlaneMemoryInfocoreIf the image's tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask bit
VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284YNegativeImageDrm.MultiPlanarBindMemoryexplicitVkBindImagePlaneMemoryInfocoreIf the image's tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)
VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameterYNoneimplicitVkBindImagePlaneMemoryInfocoreplaneAspect must be a valid VkImageAspectFlagBits value
VUID-VkBindImagePlaneMemoryInfo-sType-sTypeYNoneimplicitVkBindImagePlaneMemoryInfocoresType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
VUID-VkBindIndexBufferIndirectCommandNV-None-02946NNoneexplicitVkBindIndexBufferIndirectCommandNVcoreThe buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set
VUID-VkBindIndexBufferIndirectCommandNV-None-02948NNoneexplicitVkBindIndexBufferIndirectCommandNVcoreEach element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947NNoneexplicitVkBindIndexBufferIndirectCommandNVcoreThe bufferAddress must be aligned to the indexType used
VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameterNNoneimplicitVkBindIndexBufferIndirectCommandNVcoreindexType must be a valid VkIndexType value
VUID-VkBindMemoryStatusKHR-pResult-parameterYNoneimplicitVkBindMemoryStatusKHRcorepResult must be a valid pointer to a VkResult value
VUID-VkBindMemoryStatusKHR-sType-sTypeYNoneimplicitVkBindMemoryStatusKHRcoresType must be VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR
VUID-VkBindPipelineIndirectCommandNV-None-09092NNoneexplicitVkBindPipelineIndirectCommandNVcoreThe referenced pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkBindPipelineIndirectCommandNV-None-09093NNoneexplicitVkBindPipelineIndirectCommandNVcoreThe referenced pipeline must have been updated with vkCmdUpdatePipelineIndirectBufferNV
VUID-VkBindPipelineIndirectCommandNV-None-09094NNoneexplicitVkBindPipelineIndirectCommandNVcoreThe referenced pipeline's address must have been queried with vkGetPipelineIndirectDeviceAddressNV
VUID-VkBindPipelineIndirectCommandNV-deviceGeneratedComputePipelines-09091NNoneexplicitVkBindPipelineIndirectCommandNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-VkBindShaderGroupIndirectCommandNV-None-02944NNoneexplicitVkBindShaderGroupIndirectCommandNVcoreThe current bound graphics pipeline, as well as the pipelines it may reference, must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkBindShaderGroupIndirectCommandNV-index-02945NNoneexplicitVkBindShaderGroupIndirectCommandNVcoreThe index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details
VUID-VkBindSparseInfo-commonparentYNoneimplicitVkBindSparseInfocoreBoth of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindSparseInfo-pBufferBinds-parameterYNoneimplicitVkBindSparseInfocoreIf bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures
VUID-VkBindSparseInfo-pImageBinds-parameterYNoneimplicitVkBindSparseInfocoreIf imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures
VUID-VkBindSparseInfo-pImageOpaqueBinds-parameterYNoneimplicitVkBindSparseInfocoreIf imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures
VUID-VkBindSparseInfo-pNext-03247YNegativeSyncObject.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfocoreIf the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its waitSemaphoreValueCount member must equal waitSemaphoreCount
VUID-VkBindSparseInfo-pNext-03248YNegativeSyncObject.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfocoreIf the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its signalSemaphoreValueCount member must equal signalSemaphoreCount
VUID-VkBindSparseInfo-pNext-pNextYNoneimplicitVkBindSparseInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupBindSparseInfo, VkFrameBoundaryEXT, or VkTimelineSemaphoreSubmitInfo
VUID-VkBindSparseInfo-pSignalSemaphores-03249YNegativeSyncObject.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfocoreFor each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value greater than the current value of the semaphore when the semaphore signal operation is executed
VUID-VkBindSparseInfo-pSignalSemaphores-03251YNegativeSyncObject.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfocoreFor each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkBindSparseInfo-pSignalSemaphores-parameterYNoneimplicitVkBindSparseInfocoreIf signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles
VUID-VkBindSparseInfo-pWaitSemaphores-03246YNegativeSyncObject.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfocoreIf any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure
VUID-VkBindSparseInfo-pWaitSemaphores-03250YNegativeSyncObject.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfocoreFor each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkBindSparseInfo-pWaitSemaphores-parameterYNoneimplicitVkBindSparseInfocoreIf waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkBindSparseInfo-sType-sTypeYNoneimplicitVkBindSparseInfocoresType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
VUID-VkBindSparseInfo-sType-uniqueYNoneimplicitVkBindSparseInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBindVertexBufferIndirectCommandNV-None-02949NNoneexplicitVkBindVertexBufferIndirectCommandNVcoreThe buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT bit set
VUID-VkBindVertexBufferIndirectCommandNV-None-02950NNoneexplicitVkBindVertexBufferIndirectCommandNVcoreEach element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBindVideoSessionMemoryInfoKHR-memory-parameterYNoneimplicitVkBindVideoSessionMemoryInfoKHRcorememory must be a valid VkDeviceMemory handle
VUID-VkBindVideoSessionMemoryInfoKHR-memoryOffset-07201YNegativeVideo.BindVideoSessionMemoryexplicitVkBindVideoSessionMemoryInfoKHRcorememoryOffset must be less than the size of memory
VUID-VkBindVideoSessionMemoryInfoKHR-memorySize-07202YNegativeVideo.BindVideoSessionMemoryexplicitVkBindVideoSessionMemoryInfoKHRcorememorySize must be less than or equal to the size of memory minus memoryOffset
VUID-VkBindVideoSessionMemoryInfoKHR-pNext-pNextYNoneimplicitVkBindVideoSessionMemoryInfoKHRcorepNext must be NULL
VUID-VkBindVideoSessionMemoryInfoKHR-sType-sTypeYNoneimplicitVkBindVideoSessionMemoryInfoKHRcoresType must be VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR
VUID-VkBlitImageCubicWeightsInfoQCOM-cubicWeights-parameterYNoneimplicitVkBlitImageCubicWeightsInfoQCOMcorecubicWeights must be a valid VkCubicFilterWeightsQCOM value
VUID-VkBlitImageCubicWeightsInfoQCOM-sType-sTypeYNoneimplicitVkBlitImageCubicWeightsInfoQCOMcoresType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM
VUID-VkBlitImageInfo2-aspectMask-00241YNoneexplicitVkBlitImageInfo2coreFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkBlitImageInfo2-aspectMask-00242YNoneexplicitVkBlitImageInfo2coreFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkBlitImageInfo2-commonparentYNoneimplicitVkBlitImageInfo2coreBoth of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBlitImageInfo2-dstImage-00224YNegativeCommand.CopyCommands2V13explicitVkBlitImageInfo2coredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkBlitImageInfo2-dstImage-00225YNoneexplicitVkBlitImageInfo2coreIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2-dstImage-00234YNoneexplicitVkBlitImageInfo2coredstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2-dstImage-00250YNoneexplicitVkBlitImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffsets[0].y must be 0 and dstOffsets[1].y must be 1
VUID-VkBlitImageInfo2-dstImage-00252YNoneexplicitVkBlitImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffsets[0].z must be 0 and dstOffsets[1].z must be 1
VUID-VkBlitImageInfo2-dstImage-02000YNegativeImage.BlitFormatTypesexplicitVkBlitImageInfo2coreThe format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT
VUID-VkBlitImageInfo2-dstImage-02545YNoneexplicitVkBlitImageInfo2coredstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkBlitImageInfo2-dstImage-06422YNoneexplicitVkBlitImageInfo2coredstImage must not use a format that requires a sampler Y'CBCR conversion
VUID-VkBlitImageInfo2-dstImage-parameterYNoneimplicitVkBlitImageInfo2coredstImage must be a valid VkImage handle
VUID-VkBlitImageInfo2-dstImageLayout-00226YNoneexplicitVkBlitImageInfo2coredstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkBlitImageInfo2-dstImageLayout-01399YNoneexplicitVkBlitImageInfo2coredstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-dstImageLayout-parameterYNoneimplicitVkBlitImageInfo2coredstImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2-dstOffset-00248YNoneexplicitVkBlitImageInfo2coreFor 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-VkBlitImageInfo2-dstOffset-00249YNoneexplicitVkBlitImageInfo2coreFor 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-VkBlitImageInfo2-dstOffset-00251YNoneexplicitVkBlitImageInfo2coreFor 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-VkBlitImageInfo2-dstSubresource-01706YNoneexplicitVkBlitImageInfo2coreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkBlitImageInfo2-dstSubresource-01708YNoneexplicitVkBlitImageInfo2coreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkBlitImageInfo2-filter-00237YNoneexplicitVkBlitImageInfo2coreIf filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkBlitImageInfo2-filter-02001YNoneexplicitVkBlitImageInfo2coreIf filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-VkBlitImageInfo2-filter-02002YNoneexplicitVkBlitImageInfo2coreIf filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-VkBlitImageInfo2-filter-09204NNoneexplicitVkBlitImageInfo2coreIf filter is VK_FILTER_CUBIC_EXT and if the selectableCubicWeights feature is not enabled then the cubic weights must be VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-VkBlitImageInfo2-filter-parameterYNoneimplicitVkBlitImageInfo2corefilter must be a valid VkFilter value
VUID-VkBlitImageInfo2-pNext-pNextYNoneimplicitVkBlitImageInfo2corepNext must be NULL or a pointer to a valid instance of VkBlitImageCubicWeightsInfoQCOM
VUID-VkBlitImageInfo2-pRegions-00215YNoneexplicitVkBlitImageInfo2coreThe source region specified by each element of pRegions must be a region that is contained within srcImage
VUID-VkBlitImageInfo2-pRegions-00216YNoneexplicitVkBlitImageInfo2coreThe destination region specified by each element of pRegions must be a region that is contained within dstImage
VUID-VkBlitImageInfo2-pRegions-00217YNoneexplicitVkBlitImageInfo2coreThe 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-VkBlitImageInfo2-pRegions-04561NNoneexplicitVkBlitImageInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be block-compressed images
VUID-VkBlitImageInfo2-pRegions-parameterYNoneimplicitVkBlitImageInfo2corepRegions must be a valid pointer to an array of regionCount valid VkImageBlit2 structures
VUID-VkBlitImageInfo2-regionCount-arraylengthYNoneimplicitVkBlitImageInfo2coreregionCount must be greater than 0
VUID-VkBlitImageInfo2-sType-sTypeYNoneimplicitVkBlitImageInfo2coresType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
VUID-VkBlitImageInfo2-sType-uniqueYNoneimplicitVkBlitImageInfo2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkBlitImageInfo2-srcImage-00219YNoneexplicitVkBlitImageInfo2coresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkBlitImageInfo2-srcImage-00220YNoneexplicitVkBlitImageInfo2coreIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2-srcImage-00229YNegativeImage.BlitFormatTypesexplicitVkBlitImageInfo2coreIf either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat
VUID-VkBlitImageInfo2-srcImage-00230YNegativeImage.BlitFormatTypesexplicitVkBlitImageInfo2coreIf either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat
VUID-VkBlitImageInfo2-srcImage-00231YNoneexplicitVkBlitImageInfo2coreIf either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format
VUID-VkBlitImageInfo2-srcImage-00232YNoneexplicitVkBlitImageInfo2coreIf srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST
VUID-VkBlitImageInfo2-srcImage-00233YNoneexplicitVkBlitImageInfo2coresrcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2-srcImage-00240YNoneexplicitVkBlitImageInfo2coreIf either srcImage or dstImage is of type VK_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-VkBlitImageInfo2-srcImage-00245YNoneexplicitVkBlitImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffsets[0].y must be 0 and srcOffsets[1].y must be 1
VUID-VkBlitImageInfo2-srcImage-00247YNoneexplicitVkBlitImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1
VUID-VkBlitImageInfo2-srcImage-01999YNegativeImage.BlitFormatTypesexplicitVkBlitImageInfo2coreThe format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT
VUID-VkBlitImageInfo2-srcImage-06421YNoneexplicitVkBlitImageInfo2coresrcImage must not use a format that requires a sampler Y'CBCR conversion
VUID-VkBlitImageInfo2-srcImage-09459YNoneexplicitVkBlitImageInfo2coreIf srcImage and dstImage are the same, and an elements of pRegions contains the srcSubresource and dstSubresource with matching mipLevel and overlapping array layers, then the srcImageLayout and dstImageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkBlitImageInfo2-srcImage-parameterYNoneimplicitVkBlitImageInfo2coresrcImage must be a valid VkImage handle
VUID-VkBlitImageInfo2-srcImageLayout-00221YNoneexplicitVkBlitImageInfo2coresrcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkBlitImageInfo2-srcImageLayout-01398YNoneexplicitVkBlitImageInfo2coresrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-srcImageLayout-parameterYNoneimplicitVkBlitImageInfo2coresrcImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2-srcOffset-00243YNoneexplicitVkBlitImageInfo2coreFor 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-VkBlitImageInfo2-srcOffset-00244YNoneexplicitVkBlitImageInfo2coreFor 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-VkBlitImageInfo2-srcOffset-00246YNoneexplicitVkBlitImageInfo2coreFor 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-VkBlitImageInfo2-srcSubresource-01705YNoneexplicitVkBlitImageInfo2coreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkBlitImageInfo2-srcSubresource-01707YNoneexplicitVkBlitImageInfo2coreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkBlitImageInfo2KHR-pRegions-06207NNoneexplicitVkBlitImageInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkBlitImageInfo2KHR-pRegions-06208NNoneexplicitVkBlitImageInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format
VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-08075YNegativeDescriptorBuffer.NotEnabledexplicitVkBufferCaptureDescriptorDataInfoEXTcorebuffer must have been created with VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkBufferCreateInfo::flags
VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-parameterYNoneimplicitVkBufferCaptureDescriptorDataInfoEXTcorebuffer must be a valid VkBuffer handle
VUID-VkBufferCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkBufferCaptureDescriptorDataInfoEXTcorepNext must be NULL
VUID-VkBufferCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkBufferCaptureDescriptorDataInfoEXTcoresType must be VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-collection-parameterYNoneimplicitVkBufferCollectionBufferCreateInfoFUCHSIAcorecollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-index-06388NNoneexplicitVkBufferCollectionBufferCreateInfoFUCHSIAcoreindex must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionBufferCreateInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferCollectionConstraintsInfoFUCHSIAcorepNext must be NULL
VUID-VkBufferCollectionConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionConstraintsInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
VUID-VkBufferCollectionCreateInfoFUCHSIA-collectionToken-06393NNoneexplicitVkBufferCollectionCreateInfoFUCHSIAcorecollectionToken must be a valid zx_handle_t to a Zircon channel allocated from Sysmem (fuchsia.sysmem.Allocator/AllocateSharedCollection) with ZX_DEFAULT_CHANNEL_RIGHTS rights
VUID-VkBufferCollectionCreateInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferCollectionCreateInfoFUCHSIAcorepNext must be NULL
VUID-VkBufferCollectionCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionCreateInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-collection-parameterYNoneimplicitVkBufferCollectionImageCreateInfoFUCHSIAcorecollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-index-06391NNoneexplicitVkBufferCollectionImageCreateInfoFUCHSIAcoreindex must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionImageCreateInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoreformatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-requiredbitmaskNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoreformatFeatures must not be 0
VUID-VkBufferCollectionPropertiesFUCHSIA-pNext-pNextNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcorepNext must be NULL
VUID-VkBufferCollectionPropertiesFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoresType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
VUID-VkBufferCollectionPropertiesFUCHSIA-samplerYcbcrConversionComponents-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoresamplerYcbcrConversionComponents must be a valid VkComponentMapping structure
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedXChromaOffset-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoresuggestedXChromaOffset must be a valid VkChromaLocation value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYChromaOffset-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoresuggestedYChromaOffset must be a valid VkChromaLocation value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrModel-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoresuggestedYcbcrModel must be a valid VkSamplerYcbcrModelConversion value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrRange-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoresuggestedYcbcrRange must be a valid VkSamplerYcbcrRange value
VUID-VkBufferCollectionPropertiesFUCHSIA-sysmemColorSpaceIndex-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIAcoresysmemColorSpaceIndex must be a valid VkSysmemColorSpaceFUCHSIA structure
VUID-VkBufferConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameterNNoneimplicitVkBufferConstraintsInfoFUCHSIAcorebufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure
VUID-VkBufferConstraintsInfoFUCHSIA-createInfo-parameterNNoneimplicitVkBufferConstraintsInfoFUCHSIAcorecreateInfo must be a valid VkBufferCreateInfo structure
VUID-VkBufferConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferConstraintsInfoFUCHSIAcorepNext must be NULL
VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-06404NNoneexplicitVkBufferConstraintsInfoFUCHSIAcoreThe requiredFormatFeatures bitmask of VkFormatFeatureFlagBits must be chosen from among the buffer compatible format features listed in buffer compatible format features
VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-parameterYNoneimplicitVkBufferConstraintsInfoFUCHSIAcorerequiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkBufferConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferConstraintsInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
VUID-VkBufferCopy-size-01988YNegativeBuffer.ExtentsexplicitVkBufferCopycoreThe size must be greater than 0
VUID-VkBufferCopy2-pNext-pNextYNoneimplicitVkBufferCopy2corepNext must be NULL
VUID-VkBufferCopy2-sType-sTypeYNoneimplicitVkBufferCopy2coresType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2
VUID-VkBufferCopy2-size-01988YNoneexplicitVkBufferCopy2coreThe size must be greater than 0
VUID-VkBufferCreateInfo-None-01888YNegativeProtectedMemory.MemoryexplicitVkBufferCreateInfocoreIf any of the bits VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT are set, VK_BUFFER_CREATE_PROTECTED_BIT must not also be set
VUID-VkBufferCreateInfo-None-09499YNegativeBuffer.BufferUsageFlagsUsageexplicitVkBufferCreateInfocoreIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage: must be a valid combination of VkBufferUsageFlagBits values
VUID-VkBufferCreateInfo-None-09500YNegativeBuffer.BufferUsageFlagsUsageexplicitVkBufferCreateInfocoreIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage: must not be 0
VUID-VkBufferCreateInfo-deviceAddress-02604YNegativeMemory.BufferDeviceAddressEXTexplicitVkBufferCreateInfocoreIf VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkBufferCreateInfo-flags-00915YNegativeSparseBuffer.BufferFlagsFeatureexplicitVkBufferCreateInfocoreIf the sparseBinding feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT
VUID-VkBufferCreateInfo-flags-00916YNegativeSparseBuffer.BufferFlagsFeatureexplicitVkBufferCreateInfocoreIf the sparseResidencyBuffer feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkBufferCreateInfo-flags-00917YNegativeSparseBuffer.BufferFlagsFeatureexplicitVkBufferCreateInfocoreIf the sparseResidencyAliased feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
VUID-VkBufferCreateInfo-flags-00918YNegativeSparseBuffer.BufferFlagsFeature, NegativeSparseImage.BindingImageBufferCreateexplicitVkBufferCreateInfocoreIf flags contains VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT
VUID-VkBufferCreateInfo-flags-01887YNegativeProtectedMemory.SubmitexplicitVkBufferCreateInfocoreIf the protectedMemory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT
VUID-VkBufferCreateInfo-flags-03338YNegativeMemory.BufferDeviceAddressEXT, NegativeMemory.BufferDeviceAddressKHRexplicitVkBufferCreateInfocoreIf flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled
VUID-VkBufferCreateInfo-flags-08099YNegativeDescriptorBuffer.NotEnabledexplicitVkBufferCreateInfocoreIf flags includes VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkBufferCreateInfo-flags-08325YNegativeVideo.CreateBufferProfileIndependentNotSupportedexplicitVkBufferCreateInfocoreIf flags includes VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then videoMaintenance1 must be enabled
VUID-VkBufferCreateInfo-flags-parameterYNoneimplicitVkBufferCreateInfocoreflags must be a valid combination of VkBufferCreateFlagBits values
VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337YNegativeMemory.BufferDeviceAddressKHRexplicitVkBufferCreateInfocoreIf VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkBufferCreateInfo-pNext-00920YNegativeExternalMemorySync.CreateBufferIncompatibleHandleTypes, NegativeExternalMemorySync.ImportMemoryWin32BufferSupportexplicitVkBufferCreateInfocoreIf the pNext chain includes a VkExternalMemoryBufferCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalBufferProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalBufferProperties with pExternalBufferInfo->handleType equal to any one of the handle types specified in VkExternalMemoryBufferCreateInfo::handleTypes
VUID-VkBufferCreateInfo-pNext-01571YNegativeBuffer.DedicatedAllocationBufferFlagsexplicitVkBufferCreateInfocoreIf the pNext chain includes a VkDedicatedAllocationBufferCreateInfoNV structure, and the dedicatedAllocation member of the chained structure is VK_TRUE, then flags must not include VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
VUID-VkBufferCreateInfo-pNext-08100YNegativeDescriptorBuffer.NotEnabledexplicitVkBufferCreateInfocoreIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkBufferCreateInfo-pNext-pNextYNoneimplicitVkBufferCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferCollectionBufferCreateInfoFUCHSIA, VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkBufferUsageFlags2CreateInfoKHR, VkDedicatedAllocationBufferCreateInfoNV, VkExternalMemoryBufferCreateInfo, VkOpaqueCaptureDescriptorDataCreateInfoEXT, or VkVideoProfileListInfoKHR
VUID-VkBufferCreateInfo-sType-sTypeYNoneimplicitVkBufferCreateInfocoresType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
VUID-VkBufferCreateInfo-sType-uniqueYNoneimplicitVkBufferCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBufferCreateInfo-sharingMode-00913YNoneexplicitVkBufferCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkBufferCreateInfo-sharingMode-00914YNoneexplicitVkBufferCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkBufferCreateInfo-sharingMode-01419YNegativeDeviceQueue.FamilyIndexUsageexplicitVkBufferCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties2 or vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device
VUID-VkBufferCreateInfo-sharingMode-parameterYNoneimplicitVkBufferCreateInfocoresharingMode must be a valid VkSharingMode value
VUID-VkBufferCreateInfo-size-00912YNegativeBuffer.CreateBufferSizeexplicitVkBufferCreateInfocoresize must be greater than 0
VUID-VkBufferCreateInfo-size-06409YNegativeBuffer.MaxBufferSizeexplicitVkBufferCreateInfocoresize must be less than or equal to VkPhysicalDeviceMaintenance4Properties::maxBufferSize
VUID-VkBufferCreateInfo-usage-04813YNegativeVideo.CreateBufferInvalidProfileListexplicitVkBufferCreateInfocoreIf usage includes VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR or VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR, and flags does not include VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying a decode operation
VUID-VkBufferCreateInfo-usage-04814YNegativeVideo.CreateBufferInvalidProfileListexplicitVkBufferCreateInfocoreIf usage includes VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR or VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR, and flags does not include VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying an encode operation
VUID-VkBufferCreateInfo-usage-08097YNegativeDescriptorBuffer.SetBufferAddressSpaceLimitsexplicitVkBufferCreateInfocoreIf usage includes VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT, creating this VkBuffer must not cause the total required space for all currently valid buffers using this flag on the device to exceed VkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerDescriptorBufferAddressSpaceSize or VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferAddressSpaceSize
VUID-VkBufferCreateInfo-usage-08098YNegativeDescriptorBuffer.SetBufferAddressSpaceLimitsexplicitVkBufferCreateInfocoreIf usage includes VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT, creating this VkBuffer must not cause the total required space for all currently valid buffers using this flag on the device to exceed VkPhysicalDeviceDescriptorBufferPropertiesEXT::resourceDescriptorBufferAddressSpaceSize or VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferAddressSpaceSize
VUID-VkBufferCreateInfo-usage-08101YNegativeDescriptorBuffer.NotEnabledexplicitVkBufferCreateInfocoreIf usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, the descriptorBufferPushDescriptors feature must be enabled
VUID-VkBufferCreateInfo-usage-08102YNegativeDescriptorBuffer.NotEnabledexplicitVkBufferCreateInfocoreIf usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE
VUID-VkBufferCreateInfo-usage-08103YNegativeDescriptorBuffer.BufferUsageexplicitVkBufferCreateInfocoreIf usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, usage must contain at least one of VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT or VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sTypeYNoneimplicitVkBufferDeviceAddressCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
VUID-VkBufferDeviceAddressInfo-buffer-02600YNegativeMemory.BufferDeviceAddressEXT, NegativeMemory.BufferDeviceAddressEXTDisabled, NegativeMemory.BufferDeviceAddressKHR, NegativeMemory.BufferDeviceAddressKHRDisabledexplicitVkBufferDeviceAddressInfocoreIf buffer is non-sparse and was not created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag, then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferDeviceAddressInfo-buffer-02601YNegativeMemory.BufferDeviceAddressEXTDisabled, NegativeMemory.BufferDeviceAddressKHRDisabledexplicitVkBufferDeviceAddressInfocorebuffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
VUID-VkBufferDeviceAddressInfo-buffer-parameterYNoneimplicitVkBufferDeviceAddressInfocorebuffer must be a valid VkBuffer handle
VUID-VkBufferDeviceAddressInfo-pNext-pNextYNoneimplicitVkBufferDeviceAddressInfocorepNext must be NULL
VUID-VkBufferDeviceAddressInfo-sType-sTypeYNoneimplicitVkBufferDeviceAddressInfocoresType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
VUID-VkBufferImageCopy-aspectMask-09103YNegativeCommand.ImageBufferCopyexplicitVkBufferImageCopycoreThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy-bufferImageHeight-09102YNegativeCommand.MiscImageLayerexplicitVkBufferImageCopycorebufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy-bufferRowLength-09101YNegativeCommand.MiscImageLayerexplicitVkBufferImageCopycorebufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy-imageExtent-06659YNegativeCommand.ImageBufferCopyexplicitVkBufferImageCopycoreimageExtent.width must not be 0
VUID-VkBufferImageCopy-imageExtent-06660YNegativeCommand.CopyImageZeroSizeexplicitVkBufferImageCopycoreimageExtent.height must not be 0
VUID-VkBufferImageCopy-imageExtent-06661YNegativeCommand.CopyImageZeroSize, NegativeCommand.MiscImageLayerexplicitVkBufferImageCopycoreimageExtent.depth must not be 0
VUID-VkBufferImageCopy-imageSubresource-parameterNNoneimplicitVkBufferImageCopycoreimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2-aspectMask-09103YNoneexplicitVkBufferImageCopy2coreThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy2-bufferImageHeight-09102YNoneexplicitVkBufferImageCopy2corebufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy2-bufferRowLength-09101YNoneexplicitVkBufferImageCopy2corebufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy2-imageExtent-06659YNoneexplicitVkBufferImageCopy2coreimageExtent.width must not be 0
VUID-VkBufferImageCopy2-imageExtent-06660YNoneexplicitVkBufferImageCopy2coreimageExtent.height must not be 0
VUID-VkBufferImageCopy2-imageExtent-06661YNoneexplicitVkBufferImageCopy2coreimageExtent.depth must not be 0
VUID-VkBufferImageCopy2-imageSubresource-parameterNNoneimplicitVkBufferImageCopy2coreimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2-pNext-pNextYNoneimplicitVkBufferImageCopy2corepNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkBufferImageCopy2-sType-sTypeYNoneimplicitVkBufferImageCopy2coresType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2
VUID-VkBufferImageCopy2-sType-uniqueYNoneimplicitVkBufferImageCopy2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkBufferMemoryBarrier-None-09049YNoneexplicitVkBufferMemoryBarriercoreIf the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED
VUID-VkBufferMemoryBarrier-None-09050YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarriercoreIf the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL
VUID-VkBufferMemoryBarrier-None-09051YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarriercoreIf the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL
VUID-VkBufferMemoryBarrier-None-09097YNoneexplicitVkBufferMemoryBarriercoreIf the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL
VUID-VkBufferMemoryBarrier-None-09098YNoneexplicitVkBufferMemoryBarriercoreIf the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL
VUID-VkBufferMemoryBarrier-buffer-01931YNoneexplicitVkBufferMemoryBarriercoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier-buffer-09095YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarriercoreIf buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family
VUID-VkBufferMemoryBarrier-buffer-09096YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarriercoreIf buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family
VUID-VkBufferMemoryBarrier-buffer-parameterYNoneimplicitVkBufferMemoryBarriercorebuffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100YNoneexplicitVkBufferMemoryBarriercoreIf the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier-offset-01187YNegativeSyncObject.BarriersexplicitVkBufferMemoryBarriercoreoffset must be less than the size of buffer
VUID-VkBufferMemoryBarrier-pNext-pNextYNoneimplicitVkBufferMemoryBarriercorepNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT
VUID-VkBufferMemoryBarrier-sType-sTypeYNoneimplicitVkBufferMemoryBarriercoresType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
VUID-VkBufferMemoryBarrier-sType-uniqueYNoneimplicitVkBufferMemoryBarriercoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBufferMemoryBarrier-size-01188YNegativeSyncObject.BarriersexplicitVkBufferMemoryBarriercoreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier-size-01189YNegativeSyncObject.BarriersexplicitVkBufferMemoryBarriercoreIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset
VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087YNegativeSyncObject.BarrierQueuesexplicitVkBufferMemoryBarriercoreIf srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-09099YNoneexplicitVkBufferMemoryBarriercoreIf the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier2-None-09097YNoneexplicitVkBufferMemoryBarrier2coreIf the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL
VUID-VkBufferMemoryBarrier2-None-09098YNoneexplicitVkBufferMemoryBarrier2coreIf the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL
VUID-VkBufferMemoryBarrier2-buffer-01931YNoneexplicitVkBufferMemoryBarrier2coreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier2-buffer-09095YNegativeSyncObject.Sync2BarrierQueueFamilyexplicitVkBufferMemoryBarrier2coreIf buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family
VUID-VkBufferMemoryBarrier2-buffer-09096YNegativeSyncObject.Sync2BarrierQueueFamilyexplicitVkBufferMemoryBarrier2coreIf buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family
VUID-VkBufferMemoryBarrier2-buffer-parameterYNoneimplicitVkBufferMemoryBarrier2corebuffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier2-dstAccessMask-03900YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03901YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03902YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03903YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03904YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-03905YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-03906YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-03907YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-03909YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-03910YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03911YNegativeSyncObject.Sync2BarriersexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03912YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03913YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03914YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03915YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03916YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03917YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03919YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03920YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03922YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03923YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03924YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03925YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03926YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03927YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-03928YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-04747YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-04858YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-dstAccessMask-06256YNegativeRayTracing.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkBufferMemoryBarrier2coreIf the rayQuery feature is not enabled and dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-07272YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-07454YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-07455NNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-dstAccessMask-07456NNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-dstAccessMask-07457NNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstAccessMask-07458NNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-08118YNoneexplicitVkBufferMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-parameterYNoneimplicitVkBufferMemoryBarrier2coredstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkBufferMemoryBarrier2-dstQueueFamilyIndex-09100YNoneexplicitVkBufferMemoryBarrier2coreIf the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03929YNoneexplicitVkBufferMemoryBarrier2coreIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkBufferMemoryBarrier2-dstStageMask-03930YNoneexplicitVkBufferMemoryBarrier2coreIf the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkBufferMemoryBarrier2-dstStageMask-03931YNoneexplicitVkBufferMemoryBarrier2coreIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03932YNoneexplicitVkBufferMemoryBarrier2coreIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03933YNoneexplicitVkBufferMemoryBarrier2coreIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03934YNoneexplicitVkBufferMemoryBarrier2coreIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03935YNoneexplicitVkBufferMemoryBarrier2coreIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-04957NNoneexplicitVkBufferMemoryBarrier2coreIf the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-dstStageMask-04995NNoneexplicitVkBufferMemoryBarrier2coreIf the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-dstStageMask-07316YNoneexplicitVkBufferMemoryBarrier2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstStageMask-07946YNoneexplicitVkBufferMemoryBarrier2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstStageMask-parameterYNoneimplicitVkBufferMemoryBarrier2coredstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkBufferMemoryBarrier2-offset-01187YNegativeSyncObject.Sync2BarriersexplicitVkBufferMemoryBarrier2coreoffset must be less than the size of buffer
VUID-VkBufferMemoryBarrier2-pNext-pNextYNoneimplicitVkBufferMemoryBarrier2corepNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT
VUID-VkBufferMemoryBarrier2-sType-sTypeYNoneimplicitVkBufferMemoryBarrier2coresType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2
VUID-VkBufferMemoryBarrier2-sType-uniqueYNoneimplicitVkBufferMemoryBarrier2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkBufferMemoryBarrier2-size-01188YNegativeSyncObject.Sync2BarriersexplicitVkBufferMemoryBarrier2coreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier2-size-01189YNegativeSyncObject.Sync2BarriersexplicitVkBufferMemoryBarrier2coreIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset
VUID-VkBufferMemoryBarrier2-srcAccessMask-03900YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03901YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03902YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03903YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03904YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-03905YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-03906YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-03907YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-03909YNegativeSyncObject.Sync2BarriersexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-03910YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03911YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03912YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03913YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03914YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03915YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03916YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03917YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03919YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03920YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03922YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03923YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03924YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03925YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03926YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03927YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-03928YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-04747YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-04858YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04859YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04860YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04861YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-srcAccessMask-06256YNegativeRayTracing.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkBufferMemoryBarrier2coreIf the rayQuery feature is not enabled and srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-07272YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-07454YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-07455NNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-srcAccessMask-07456NNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-srcAccessMask-07457NNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcAccessMask-07458NNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-08118YNoneexplicitVkBufferMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-parameterYNoneimplicitVkBufferMemoryBarrier2coresrcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087YNoneexplicitVkBufferMemoryBarrier2coreIf srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-09099YNoneexplicitVkBufferMemoryBarrier2coreIf the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03851YNegativeSyncObject.BufferBarrierWithHostStageexplicitVkBufferMemoryBarrier2coreIf either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-VkBufferMemoryBarrier2-srcStageMask-03929YNoneexplicitVkBufferMemoryBarrier2coreIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkBufferMemoryBarrier2-srcStageMask-03930YNoneexplicitVkBufferMemoryBarrier2coreIf the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkBufferMemoryBarrier2-srcStageMask-03931YNoneexplicitVkBufferMemoryBarrier2coreIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03932YNoneexplicitVkBufferMemoryBarrier2coreIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03933YNoneexplicitVkBufferMemoryBarrier2coreIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03934YNoneexplicitVkBufferMemoryBarrier2coreIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03935YNoneexplicitVkBufferMemoryBarrier2coreIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-04957NNoneexplicitVkBufferMemoryBarrier2coreIf the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-srcStageMask-04995NNoneexplicitVkBufferMemoryBarrier2coreIf the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-srcStageMask-07316YNoneexplicitVkBufferMemoryBarrier2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcStageMask-07946YNoneexplicitVkBufferMemoryBarrier2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcStageMask-parameterYNoneimplicitVkBufferMemoryBarrier2coresrcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkBufferMemoryRequirementsInfo2-buffer-parameterYNoneimplicitVkBufferMemoryRequirementsInfo2corebuffer must be a valid VkBuffer handle
VUID-VkBufferMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkBufferMemoryRequirementsInfo2corepNext must be NULL
VUID-VkBufferMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkBufferMemoryRequirementsInfo2coresType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sTypeYNoneimplicitVkBufferOpaqueCaptureAddressCreateInfocoresType must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
VUID-VkBufferUsageFlags2CreateInfoKHR-sType-sTypeYNoneimplicitVkBufferUsageFlags2CreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR
VUID-VkBufferUsageFlags2CreateInfoKHR-usage-parameterYNoneimplicitVkBufferUsageFlags2CreateInfoKHRcoreusage must be a valid combination of VkBufferUsageFlagBits2KHR values
VUID-VkBufferUsageFlags2CreateInfoKHR-usage-requiredbitmaskYNoneimplicitVkBufferUsageFlags2CreateInfoKHRcoreusage must not be 0
VUID-VkBufferViewCreateInfo-buffer-00932YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocorebuffer must have been created with a usage value containing at least one of VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
VUID-VkBufferViewCreateInfo-buffer-00935YNoneexplicitVkBufferViewCreateInfocoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferViewCreateInfo-buffer-02750YNegativeBuffer.TexelBufferAlignmentexplicitVkBufferViewCreateInfocoreIf the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::storageTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::storageTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead
VUID-VkBufferViewCreateInfo-buffer-02751YNegativeBuffer.TexelBufferAlignmentexplicitVkBufferViewCreateInfocoreIf the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead
VUID-VkBufferViewCreateInfo-buffer-parameterYNoneimplicitVkBufferViewCreateInfocorebuffer must be a valid VkBuffer handle
VUID-VkBufferViewCreateInfo-flags-zerobitmaskYNoneimplicitVkBufferViewCreateInfocoreflags must be 0
VUID-VkBufferViewCreateInfo-format-08778YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf the buffer view usage contains VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, then format features of format must contain VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VUID-VkBufferViewCreateInfo-format-08779YNegativeAtomic.InvalidStorageOperation, NegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf the buffer view usage contains VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, then format features of format must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
VUID-VkBufferViewCreateInfo-format-parameterYNoneimplicitVkBufferViewCreateInfocoreformat must be a valid VkFormat value
VUID-VkBufferViewCreateInfo-offset-00925YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreoffset must be less than the size of buffer
VUID-VkBufferViewCreateInfo-offset-00931YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is not equal to VK_WHOLE_SIZE, the sum of offset and range must be less than or equal to the size of buffer
VUID-VkBufferViewCreateInfo-offset-02749YNegativeBuffer.BufferViewCreateInfoEntries, NegativeBuffer.TexelBufferAlignmentIn12explicitVkBufferViewCreateInfocoreIf the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment
VUID-VkBufferViewCreateInfo-pNext-06782YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkBufferViewCreateInfocoreIf the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT
VUID-VkBufferViewCreateInfo-pNext-08780YNegativeBuffer.BufferUsageFlags2explicitVkBufferViewCreateInfocoreIf the pNext chain includes a VkBufferUsageFlags2CreateInfoKHR, its usage must not contain any other bit than VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR or VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR
VUID-VkBufferViewCreateInfo-pNext-08781YNegativeBuffer.BufferUsageFlags2SubsetexplicitVkBufferViewCreateInfocoreIf the pNext chain includes a VkBufferUsageFlags2CreateInfoKHR, its usage must be a subset of the VkBufferCreateInfo::usage specified or VkBufferUsageFlags2CreateInfoKHR::usage from VkBufferCreateInfo::pNext when creating buffer
VUID-VkBufferViewCreateInfo-pNext-pNextYNoneimplicitVkBufferViewCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferUsageFlags2CreateInfoKHR or VkExportMetalObjectCreateInfoEXT
VUID-VkBufferViewCreateInfo-range-00928YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be greater than 0
VUID-VkBufferViewCreateInfo-range-00929YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be an integer multiple of the texel block size of format
VUID-VkBufferViewCreateInfo-range-00930YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is not equal to VK_WHOLE_SIZE, the number of texel buffer elements given by (⌊range / (texel block size)⌋ × (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements
VUID-VkBufferViewCreateInfo-range-04059YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is equal to VK_WHOLE_SIZE, the number of texel buffer elements given by (⌊(size - offset) / (texel block size)⌋ × (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements
VUID-VkBufferViewCreateInfo-sType-sTypeYNoneimplicitVkBufferViewCreateInfocoresType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
VUID-VkBufferViewCreateInfo-sType-uniqueYNoneimplicitVkBufferViewCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354YVkLayerTest.GetCalibratedTimestampsQueryexplicitVkCalibratedTimestampInfoKHRcoretimeDomain must be one of the VkTimeDomainKHR values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsKHR
VUID-VkCalibratedTimestampInfoKHR-pNext-pNextYNoneimplicitVkCalibratedTimestampInfoKHRcorepNext must be NULL
VUID-VkCalibratedTimestampInfoKHR-sType-sTypeYNoneimplicitVkCalibratedTimestampInfoKHRcoresType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
VUID-VkCalibratedTimestampInfoKHR-timeDomain-parameterYNoneimplicitVkCalibratedTimestampInfoKHRcoretimeDomain must be a valid VkTimeDomainKHR value
VUID-VkCheckpointData2NV-pNext-pNextYNoneimplicitVkCheckpointData2NVcorepNext must be NULL
VUID-VkCheckpointData2NV-sType-sTypeYNoneimplicitVkCheckpointData2NVcoresType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
VUID-VkCheckpointDataNV-pNext-pNextYNoneimplicitVkCheckpointDataNVcorepNext must be NULL
VUID-VkCheckpointDataNV-sType-sTypeYNoneimplicitVkCheckpointDataNVcoresType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
VUID-VkClearAttachment-aspectMask-00019YNegativeDynamicRendering.ClearAttachmentsexplicitVkClearAttachmentcoreIf aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, it must not include VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkClearAttachment-aspectMask-00020YNegativeCommand.ClearAttachmentsAspectMasksexplicitVkClearAttachmentcoreaspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkClearAttachment-aspectMask-02246YNegativeCommand.ClearAttachmentsAspectMasksexplicitVkClearAttachmentcoreaspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkClearAttachment-aspectMask-parameterYNegativeCommand.ClearAttachmentsImplicitCheckimplicitVkClearAttachmentcoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkClearAttachment-aspectMask-requiredbitmaskYNegativeCommand.ClearAttachmentsImplicitCheckimplicitVkClearAttachmentcoreaspectMask must not be 0
VUID-VkClearDepthStencilValue-depth-00022YNegativeCommand.ClearDepthRangeUnrestrictedexplicitVkClearDepthStencilValuecoreUnless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive
VUID-VkCoarseSampleLocationNV-pixelX-02078YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleLocationNVcorepixelX must be less than the width (in pixels) of the fragment
VUID-VkCoarseSampleLocationNV-pixelY-02079YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleLocationNVcorepixelY must be less than the height (in pixels) of the fragment
VUID-VkCoarseSampleLocationNV-sample-02080YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleLocationNVcoresample must be less than the number of coverage samples in each pixel belonging to the fragment
VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVcoreThe array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure VkCoarseSampleOrderCustomNV
VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameterYNoneimplicitVkCoarseSampleOrderCustomNVcorepSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures
VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVcoresampleCount must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVcoresampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVcoresampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylengthYNoneimplicitVkCoarseSampleOrderCustomNVcoresampleLocationCount must be greater than 0
VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVcoreshadingRate must be a shading rate that generates fragments with more than one pixel
VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameterYNoneimplicitVkCoarseSampleOrderCustomNVcoreshadingRate must be a valid VkShadingRatePaletteEntryNV value
VUID-VkColorBlendAdvancedEXT-advancedBlendOp-parameterYNoneimplicitVkColorBlendAdvancedEXTcoreadvancedBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendAdvancedEXT-blendOverlap-07507YNegativeDynamicState.DrawNotSetColorBlendAdvancedexplicitVkColorBlendAdvancedEXTcoreIf the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT
VUID-VkColorBlendAdvancedEXT-blendOverlap-parameterYNoneimplicitVkColorBlendAdvancedEXTcoreblendOverlap must be a valid VkBlendOverlapEXT value
VUID-VkColorBlendAdvancedEXT-dstPremultiplied-07506YNegativeDynamicState.DrawNotSetColorBlendAdvancedexplicitVkColorBlendAdvancedEXTcoreIf the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE
VUID-VkColorBlendAdvancedEXT-srcPremultiplied-07505YNegativeDynamicState.DrawNotSetColorBlendAdvancedexplicitVkColorBlendAdvancedEXTcoreIf the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE
VUID-VkColorBlendEquationEXT-alphaBlendOp-parameterYNoneimplicitVkColorBlendEquationEXTcorealphaBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendEquationEXT-colorBlendOp-07361YNegativeDynamicState.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTcorecolorBlendOp and alphaBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_MULTIPLY_EXT, VK_BLEND_OP_SCREEN_EXT, VK_BLEND_OP_OVERLAY_EXT, VK_BLEND_OP_DARKEN_EXT, VK_BLEND_OP_LIGHTEN_EXT, VK_BLEND_OP_COLORDODGE_EXT, VK_BLEND_OP_COLORBURN_EXT, VK_BLEND_OP_HARDLIGHT_EXT, VK_BLEND_OP_SOFTLIGHT_EXT, VK_BLEND_OP_DIFFERENCE_EXT, VK_BLEND_OP_EXCLUSION_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_HSL_HUE_EXT, VK_BLEND_OP_HSL_SATURATION_EXT, VK_BLEND_OP_HSL_COLOR_EXT, VK_BLEND_OP_HSL_LUMINOSITY_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT
VUID-VkColorBlendEquationEXT-colorBlendOp-parameterYNoneimplicitVkColorBlendEquationEXTcorecolorBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07362YVkPortabilitySubsetTest.PortabilitySubsetColorBlendFactorexplicitVkColorBlendEquationEXTcoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, srcColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07363YVkPortabilitySubsetTest.PortabilitySubsetColorBlendFactorexplicitVkColorBlendEquationEXTcoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, dstColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
VUID-VkColorBlendEquationEXT-dstAlphaBlendFactor-parameterYNoneimplicitVkColorBlendEquationEXTcoredstAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameterYNoneimplicitVkColorBlendEquationEXTcoredstColorBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-dualSrcBlend-07357YNegativeDynamicState.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTcoreIf the dualSrcBlend feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkColorBlendEquationEXT-dualSrcBlend-07358YNegativeDynamicState.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTcoreIf the dualSrcBlend feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkColorBlendEquationEXT-dualSrcBlend-07359YNegativeDynamicState.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTcoreIf the dualSrcBlend feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkColorBlendEquationEXT-dualSrcBlend-07360YNegativeDynamicState.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTcoreIf the dualSrcBlend feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkColorBlendEquationEXT-srcAlphaBlendFactor-parameterYNoneimplicitVkColorBlendEquationEXTcoresrcAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameterYNoneimplicitVkColorBlendEquationEXTcoresrcColorBlendFactor must be a valid VkBlendFactor value
VUID-VkCommandBufferAllocateInfo-commandPool-parameterYNoneimplicitVkCommandBufferAllocateInfocorecommandPool must be a valid VkCommandPool handle
VUID-VkCommandBufferAllocateInfo-level-parameterYNoneimplicitVkCommandBufferAllocateInfocorelevel must be a valid VkCommandBufferLevel value
VUID-VkCommandBufferAllocateInfo-pNext-pNextYNoneimplicitVkCommandBufferAllocateInfocorepNext must be NULL
VUID-VkCommandBufferAllocateInfo-sType-sTypeYNoneimplicitVkCommandBufferAllocateInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
VUID-VkCommandBufferBeginInfo-flags-00055YNegativeRenderPass.FramebufferIncompatibleNoHandle, NegativeRenderPass.IncompatibleFramebufferexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the framebuffer member of pInheritanceInfo must be either VK_NULL_HANDLE, or a valid VkFramebuffer that is compatible with the renderPass member of pInheritanceInfo
VUID-VkCommandBufferBeginInfo-flags-06000YNegativeDynamicRendering.SecondaryCommandBufferexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, the renderPass member of pInheritanceInfo must be a valid VkRenderPass
VUID-VkCommandBufferBeginInfo-flags-06001YNegativeDynamicRendering.BufferBeginInfoLegacy, NegativeDynamicRendering.SecondaryCommandBufferexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, the subpass member of pInheritanceInfo must be a valid subpass index within the renderPass member of pInheritanceInfo
VUID-VkCommandBufferBeginInfo-flags-06002YNegativeDynamicRendering.SecondaryCommandBufferexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is VK_NULL_HANDLE, the pNext chain of pInheritanceInfo must include a VkCommandBufferInheritanceRenderingInfo structure
VUID-VkCommandBufferBeginInfo-flags-06003YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo is VK_NULL_HANDLE, and the pNext chain of pInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, the colorAttachmentCount member of that structure must be equal to the value of VkCommandBufferInheritanceRenderingInfo::colorAttachmentCount
VUID-VkCommandBufferBeginInfo-flags-09123YNegativeCommand.RenderPassContinueNotSupportedByCommandPoolexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-VkCommandBufferBeginInfo-flags-09240YNegativeDynamicRendering.BufferBeginInfoLegacyexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the dynamicRendering feature is not enabled, the renderPass member of pInheritanceInfo must not be VK_NULL_HANDLE
VUID-VkCommandBufferBeginInfo-flags-parameterYNoneimplicitVkCommandBufferBeginInfocoreflags must be a valid combination of VkCommandBufferUsageFlagBits values
VUID-VkCommandBufferBeginInfo-pNext-pNextYNoneimplicitVkCommandBufferBeginInfocorepNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo
VUID-VkCommandBufferBeginInfo-sType-sTypeYNoneimplicitVkCommandBufferBeginInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
VUID-VkCommandBufferBeginInfo-sType-uniqueYNoneimplicitVkCommandBufferBeginInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977YNoneexplicitVkCommandBufferInheritanceConditionalRenderingInfoEXTcoreIf the inheritedConditionalRendering feature is not enabled, conditionalRenderingEnable must be VK_FALSE
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sTypeYNoneimplicitVkCommandBufferInheritanceConditionalRenderingInfoEXTcoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
VUID-VkCommandBufferInheritanceInfo-commonparentYNoneimplicitVkCommandBufferInheritanceInfocoreBoth of framebuffer, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056YNoneexplicitVkCommandBufferInheritanceInfocoreIf the inheritedQueries feature is not enabled, occlusionQueryEnable must be VK_FALSE
VUID-VkCommandBufferInheritanceInfo-pNext-pNextYNoneimplicitVkCommandBufferInheritanceInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAttachmentSampleCountInfoAMD, VkCommandBufferInheritanceConditionalRenderingInfoEXT, VkCommandBufferInheritanceRenderPassTransformInfoQCOM, VkCommandBufferInheritanceRenderingInfo, VkCommandBufferInheritanceViewportScissorInfoNV, VkExternalFormatANDROID, or VkMultiviewPerViewAttributesInfoNVX
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058YNoneexplicitVkCommandBufferInheritanceInfocoreIf the pipelineStatisticsQuery feature is not enabled, pipelineStatistics must be 0
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789YNoneexplicitVkCommandBufferInheritanceInfocoreIf the pipelineStatisticsQuery feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values
VUID-VkCommandBufferInheritanceInfo-queryFlags-00057YNoneexplicitVkCommandBufferInheritanceInfocoreIf the inheritedQueries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values
VUID-VkCommandBufferInheritanceInfo-queryFlags-02788YNoneexplicitVkCommandBufferInheritanceInfocoreIf the inheritedQueries feature is not enabled, queryFlags must be 0
VUID-VkCommandBufferInheritanceInfo-sType-sTypeYNoneimplicitVkCommandBufferInheritanceInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
VUID-VkCommandBufferInheritanceInfo-sType-uniqueYNoneimplicitVkCommandBufferInheritanceInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sTypeYNoneimplicitVkCommandBufferInheritanceRenderPassTransformInfoQCOMcoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864NNoneexplicitVkCommandBufferInheritanceRenderPassTransformInfoQCOMcoretransform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
VUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf colorAttachmentCount is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06200YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf depthAttachmentFormat is not VK_FORMAT_UNDEFINED and stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540YNegativeDynamicRendering.CommandBufferInheritanceDepthFormat, NegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth component
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfocoredepthAttachmentFormat must be a valid VkFormat value
VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfocoreflags must be a valid combination of VkRenderingFlagBits values
VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf the multiview feature is not enabled, viewMask must be 0
VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06492YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf any element of pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT , or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV if the linearColorAttachment feature is enabled
VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-parameterNNoneimplicitVkCommandBufferInheritanceRenderingInfocoreIf colorAttachmentCount is not 0, pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values
VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfocoreIf rasterizationSamples is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-sType-sTypeYNoneimplicitVkCommandBufferInheritanceRenderingInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06541YNegativeDynamicRendering.InheritanceRenderingInfoStencilAttachmentFormat, NegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil aspect
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfocorestencilAttachmentFormat must be a valid VkFormat value
VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreIf the variableMultisampleRate feature is not enabled, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009YNegativeRayTracing.UpdatedFirstVertexexplicitVkCommandBufferInheritanceRenderingInfocoreThe index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sTypeYNoneimplicitVkCommandBufferInheritanceViewportScissorInfoNVcoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782YNegativeViewportInheritance.MissingFeatureexplicitVkCommandBufferInheritanceViewportScissorInfoNVcoreIf the inheritedViewportScissor2D feature is not enabled, viewportScissor2D must be VK_FALSE
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783YNegativeViewportInheritance.ScissorMissingFeatureexplicitVkCommandBufferInheritanceViewportScissorInfoNVcoreIf the multiViewport feature is not enabled and viewportScissor2D is VK_TRUE, then viewportDepthCount must be 1
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784YNegativeViewportInheritance.BasicUsageexplicitVkCommandBufferInheritanceViewportScissorInfoNVcoreIf viewportScissor2D is VK_TRUE, then viewportDepthCount must be greater than 0
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785NNoneexplicitVkCommandBufferInheritanceViewportScissorInfoNVcoreIf viewportScissor2D is VK_TRUE, then pViewportDepths must be a valid pointer to an array of viewportDepthCount valid VkViewport structures, except any requirements on x, y, width, and height do not apply
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04786YNegativeViewportInheritance.BasicUsageexplicitVkCommandBufferInheritanceViewportScissorInfoNVcoreIf viewportScissor2D is VK_TRUE, then the command buffer must be recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
VUID-VkCommandBufferSubmitInfo-commandBuffer-03890YNegativeCommand.Sync2SecondaryCommandbufferAsPrimaryexplicitVkCommandBufferSubmitInfocorecommandBuffer must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-VkCommandBufferSubmitInfo-commandBuffer-09445NNoneexplicitVkCommandBufferSubmitInfocoreIf any render pass instance in commandBuffer was recorded with a VkRenderPassStripeBeginInfoARM structure in its pNext chain, a VkRenderPassStripeSubmitInfoARM must be included in the pNext chain
VUID-VkCommandBufferSubmitInfo-commandBuffer-parameterYNoneimplicitVkCommandBufferSubmitInfocorecommandBuffer must be a valid VkCommandBuffer handle
VUID-VkCommandBufferSubmitInfo-deviceMask-03891YNoneexplicitVkCommandBufferSubmitInfocoreIf deviceMask is not 0, it must be a valid device mask
VUID-VkCommandBufferSubmitInfo-pNext-09446NNoneexplicitVkCommandBufferSubmitInfocoreIf a VkRenderPassStripeSubmitInfoARM is included in the pNext chain, the value of VkRenderPassStripeSubmitInfoARM::stripeSemaphoreInfoCount must be equal to the sum of the VkRenderPassStripeBeginInfoARM::stripeInfoCount parameters provided to render pass instances recorded in commandBuffer
VUID-VkCommandBufferSubmitInfo-pNext-pNextYNoneimplicitVkCommandBufferSubmitInfocorepNext must be NULL or a pointer to a valid instance of VkRenderPassStripeSubmitInfoARM
VUID-VkCommandBufferSubmitInfo-sType-sTypeYNoneimplicitVkCommandBufferSubmitInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO
VUID-VkCommandBufferSubmitInfo-sType-uniqueYNoneimplicitVkCommandBufferSubmitInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandPoolCreateInfo-flags-02860YNegativeProtectedMemory.SubmitexplicitVkCommandPoolCreateInfocoreIf the protectedMemory feature is not enabled, the VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of flags must not be set
VUID-VkCommandPoolCreateInfo-flags-parameterYNoneimplicitVkCommandPoolCreateInfocoreflags must be a valid combination of VkCommandPoolCreateFlagBits values
VUID-VkCommandPoolCreateInfo-pNext-pNextYVkLayerTest.InvalidStructPNextimplicitVkCommandPoolCreateInfocorepNext must be NULL
VUID-VkCommandPoolCreateInfo-sType-sTypeYNoneimplicitVkCommandPoolCreateInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
VUID-VkComponentMapping-a-parameterYNoneimplicitVkComponentMappingcorea must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-b-parameterYNoneimplicitVkComponentMappingcoreb must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-g-parameterYNoneimplicitVkComponentMappingcoreg must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-r-parameterYNoneimplicitVkComponentMappingcorer must be a valid VkComponentSwizzle value
VUID-VkComputePipelineCreateInfo-None-09497YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkComputePipelineCreateInfo-commonparentYNoneimplicitVkComputePipelineCreateInfocoreBoth of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkComputePipelineCreateInfo-flags-03365YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03366YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03367YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03368YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03369YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03370YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03576YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-04945YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-07367YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkComputePipelineCreateInfo-flags-07984YNoneexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid compute VkPipeline handle
VUID-VkComputePipelineCreateInfo-flags-07985YNegativePipeline.CreateComputesPipelineWithBadBasePointerexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter
VUID-VkComputePipelineCreateInfo-flags-07986YNegativePipeline.CreateComputesPipelineWithBadBasePointerexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkComputePipelineCreateInfo-flags-07996YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-09007YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreIf the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines is not enabled, flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-09008NNoneexplicitVkComputePipelineCreateInfocoreIf flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the pNext chain must include a pointer to a valid instance of VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline's metadata will be saved
VUID-VkComputePipelineCreateInfo-flags-09178NNoneexplicitVkComputePipelineCreateInfocoreIf flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the shader specified by stage must not declare the ShaderEnqueueAMDX capability
VUID-VkComputePipelineCreateInfo-layout-01687YNegativePipeline.MaxPerStageResourcesexplicitVkComputePipelineCreateInfocoreThe number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources
VUID-VkComputePipelineCreateInfo-layout-07987YNoneexplicitVkComputePipelineCreateInfocoreIf a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range
VUID-VkComputePipelineCreateInfo-layout-07988YNegativePipelineLayout.MissingDescriptorexplicitVkComputePipelineCreateInfocoreIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkComputePipelineCreateInfo-layout-07990YNegativePipelineLayout.DescriptorTypeMismatchComputeexplicitVkComputePipelineCreateInfocoreIf a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type
VUID-VkComputePipelineCreateInfo-layout-07991YNoneexplicitVkComputePipelineCreateInfocoreIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkComputePipelineCreateInfo-layout-parameterYNoneimplicitVkComputePipelineCreateInfocorelayout must be a valid VkPipelineLayout handle
VUID-VkComputePipelineCreateInfo-pNext-pNextYNoneimplicitVkComputePipelineCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineRobustnessCreateInfoEXT, or VkSubpassShadingPipelineCreateInfoHUAWEI
VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875YNegativePipeline.PipelineCreationCacheControl, NegativePipeline.PipelineCreationFlags2CacheControlexplicitVkComputePipelineCreateInfocoreIf the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566YNegativePipeline.CreationFeedbackCountComputeexplicitVkComputePipelineCreateInfocoreIf VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be 1
VUID-VkComputePipelineCreateInfo-sType-sTypeYNoneimplicitVkComputePipelineCreateInfocoresType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
VUID-VkComputePipelineCreateInfo-sType-uniqueYNoneimplicitVkComputePipelineCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfocoreIf shaderEnqueue is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkComputePipelineCreateInfo-stage-00701YNegativePipeline.ShaderStageBitexplicitVkComputePipelineCreateInfocoreThe stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkComputePipelineCreateInfo-stage-00702NNoneexplicitVkComputePipelineCreateInfocoreThe shader code for the entry point identified by stage and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkComputePipelineCreateInfo-stage-parameterNNoneimplicitVkComputePipelineCreateInfocorestage must be a valid VkPipelineShaderStageCreateInfo structure
VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09011NNoneexplicitVkComputePipelineIndirectBufferInfoNVcoredeviceAddress must be aligned to the VkMemoryRequirements2::alignment, as returned by vkGetPipelineIndirectMemoryRequirementsNV
VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09012NNoneexplicitVkComputePipelineIndirectBufferInfoNVcoredeviceAddress must have been allocated from a buffer that was created with usage VK_BUFFER_USAGE_TRANSFER_DST_BIT and VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
VUID-VkComputePipelineIndirectBufferInfoNV-deviceGeneratedComputePipelines-09009NNoneexplicitVkComputePipelineIndirectBufferInfoNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-VkComputePipelineIndirectBufferInfoNV-flags-09010NNoneexplicitVkComputePipelineIndirectBufferInfoNVcoreThe pipeline creation flags in VkComputePipelineCreateInfo::flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkComputePipelineIndirectBufferInfoNV-pNext-pNextNNoneimplicitVkComputePipelineIndirectBufferInfoNVcorepNext must be NULL
VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09014NNoneexplicitVkComputePipelineIndirectBufferInfoNVcoreIf pipelineDeviceAddressCaptureReplay is non-zero then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputeCaptureReplay feature must be enabled
VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09015NNoneexplicitVkComputePipelineIndirectBufferInfoNVcoreIf pipelineDeviceAddressCaptureReplay is non-zero then that address must have been allocated with flag VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT set
VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09016NNoneexplicitVkComputePipelineIndirectBufferInfoNVcoreIf pipelineDeviceAddressCaptureReplay is non-zero, the pipeline must have been recreated for replay
VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09017NNoneexplicitVkComputePipelineIndirectBufferInfoNVcorepipelineDeviceAddressCaptureReplay must satisfy the alignment and size requirements similar to deviceAddress
VUID-VkComputePipelineIndirectBufferInfoNV-sType-sTypeNNoneimplicitVkComputePipelineIndirectBufferInfoNVcoresType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV
VUID-VkComputePipelineIndirectBufferInfoNV-size-09013NNoneexplicitVkComputePipelineIndirectBufferInfoNVcoresize must be greater than or equal to the VkMemoryRequirements2::size, as returned by vkGetPipelineIndirectMemoryRequirementsNV
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981YNoneexplicitVkConditionalRenderingBeginInfoEXTcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982YNegativeBuffer.ConditionalRenderingBufferUsageexplicitVkConditionalRenderingBeginInfoEXTcorebuffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set
VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameterYNoneimplicitVkConditionalRenderingBeginInfoEXTcorebuffer must be a valid VkBuffer handle
VUID-VkConditionalRenderingBeginInfoEXT-flags-parameterYNoneimplicitVkConditionalRenderingBeginInfoEXTcoreflags must be a valid combination of VkConditionalRenderingFlagBitsEXT values
VUID-VkConditionalRenderingBeginInfoEXT-offset-01983YNegativeBuffer.ConditionalRenderingOffsetexplicitVkConditionalRenderingBeginInfoEXTcoreoffset must be less than the size of buffer by at least 32 bits
VUID-VkConditionalRenderingBeginInfoEXT-offset-01984YNegativeBuffer.ConditionalRenderingOffsetexplicitVkConditionalRenderingBeginInfoEXTcoreoffset must be a multiple of 4
VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNextYNoneimplicitVkConditionalRenderingBeginInfoEXTcorepNext must be NULL
VUID-VkConditionalRenderingBeginInfoEXT-sType-sTypeYNoneimplicitVkConditionalRenderingBeginInfoEXTcoresType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
VUID-VkCooperativeMatrixPropertiesKHR-AType-parameterNNoneimplicitVkCooperativeMatrixPropertiesKHRcoreAType must be a valid VkComponentTypeKHR value
VUID-VkCooperativeMatrixPropertiesKHR-BType-parameterNNoneimplicitVkCooperativeMatrixPropertiesKHRcoreBType must be a valid VkComponentTypeKHR value
VUID-VkCooperativeMatrixPropertiesKHR-CType-parameterNNoneimplicitVkCooperativeMatrixPropertiesKHRcoreCType must be a valid VkComponentTypeKHR value
VUID-VkCooperativeMatrixPropertiesKHR-ResultType-parameterNNoneimplicitVkCooperativeMatrixPropertiesKHRcoreResultType must be a valid VkComponentTypeKHR value
VUID-VkCooperativeMatrixPropertiesKHR-pNext-pNextNNoneimplicitVkCooperativeMatrixPropertiesKHRcorepNext must be NULL
VUID-VkCooperativeMatrixPropertiesKHR-sType-sTypeYNoneimplicitVkCooperativeMatrixPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR
VUID-VkCooperativeMatrixPropertiesKHR-scope-parameterNNoneimplicitVkCooperativeMatrixPropertiesKHRcorescope must be a valid VkScopeKHR value
VUID-VkCooperativeMatrixPropertiesNV-AType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNVcoreAType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-BType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNVcoreBType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-CType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNVcoreCType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-DType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNVcoreDType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-pNext-pNextNNoneimplicitVkCooperativeMatrixPropertiesNVcorepNext must be NULL
VUID-VkCooperativeMatrixPropertiesNV-sType-sTypeYNoneimplicitVkCooperativeMatrixPropertiesNVcoresType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
VUID-VkCooperativeMatrixPropertiesNV-scope-parameterNNoneimplicitVkCooperativeMatrixPropertiesNVcorescope must be a valid VkScopeNV value
VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHRcoreThe buffer used to create src must be bound to device memory
VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHRcoreThe buffer used to create dst must be bound to device memory
VUID-VkCopyAccelerationStructureInfoKHR-commonparentYNoneimplicitVkCopyAccelerationStructureInfoKHRcoreBoth of dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyAccelerationStructureInfoKHR-dst-07791NNoneexplicitVkCopyAccelerationStructureInfoKHRcoreThe range of memory backing dst that is accessed by this command must not overlap the memory backing src that is accessed by this command
VUID-VkCopyAccelerationStructureInfoKHR-dst-07792NNoneexplicitVkCopyAccelerationStructureInfoKHRcoredst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-VkCopyAccelerationStructureInfoKHR-dst-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHRcoredst must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyAccelerationStructureInfoKHR-mode-03410YNoneexplicitVkCopyAccelerationStructureInfoKHRcoremode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
VUID-VkCopyAccelerationStructureInfoKHR-mode-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHRcoremode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNextYNoneimplicitVkCopyAccelerationStructureInfoKHRcorepNext must be NULL
VUID-VkCopyAccelerationStructureInfoKHR-sType-sTypeYNoneimplicitVkCopyAccelerationStructureInfoKHRcoresType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
VUID-VkCopyAccelerationStructureInfoKHR-src-03411YNoneexplicitVkCopyAccelerationStructureInfoKHRcoreIf mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build
VUID-VkCopyAccelerationStructureInfoKHR-src-04963NNoneexplicitVkCopyAccelerationStructureInfoKHRcoreThe source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyAccelerationStructureInfoKHR-src-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHRcoresrc must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561NNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHRcoreThe memory pointed to by dst must be at least as large as the serialization size of src, as reported by vkWriteAccelerationStructuresPropertiesKHR or vkCmdWriteAccelerationStructuresPropertiesKHR with a query type of VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-03412YNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHRcoremode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHRcoremode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNextYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHRcorepNext must be NULL
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sTypeYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHRcoresType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959NNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHRcoreThe source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHRcoresrc must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyBufferInfo2-commonparentYNoneimplicitVkCopyBufferInfo2coreBoth of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferInfo2-dstBuffer-00120YNoneexplicitVkCopyBufferInfo2coredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferInfo2-dstBuffer-00121YNoneexplicitVkCopyBufferInfo2coreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2-dstBuffer-parameterYNoneimplicitVkCopyBufferInfo2coredstBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2-dstOffset-00114YNegativeBuffer.ExtentsexplicitVkCopyBufferInfo2coreThe dstOffset member of each element of pRegions must be less than the size of dstBuffer
VUID-VkCopyBufferInfo2-pNext-pNextYNoneimplicitVkCopyBufferInfo2corepNext must be NULL
VUID-VkCopyBufferInfo2-pRegions-00117YNoneexplicitVkCopyBufferInfo2coreThe union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyBufferInfo2-pRegions-parameterYNoneimplicitVkCopyBufferInfo2corepRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2 structures
VUID-VkCopyBufferInfo2-regionCount-arraylengthYNoneimplicitVkCopyBufferInfo2coreregionCount must be greater than 0
VUID-VkCopyBufferInfo2-sType-sTypeYNoneimplicitVkCopyBufferInfo2coresType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2
VUID-VkCopyBufferInfo2-size-00115YNegativeBuffer.ExtentsexplicitVkCopyBufferInfo2coreThe size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset
VUID-VkCopyBufferInfo2-size-00116YNegativeBuffer.ExtentsexplicitVkCopyBufferInfo2coreThe size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset
VUID-VkCopyBufferInfo2-srcBuffer-00118YNegativeCommand.CopyCommands2V13explicitVkCopyBufferInfo2coresrcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferInfo2-srcBuffer-00119YNoneexplicitVkCopyBufferInfo2coreIf srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2-srcBuffer-parameterYNoneimplicitVkCopyBufferInfo2coresrcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2-srcOffset-00113YNegativeBuffer.ExtentsexplicitVkCopyBufferInfo2coreThe srcOffset member of each element of pRegions must be less than the size of srcBuffer
VUID-VkCopyBufferToImageInfo2-bufferImageHeight-09107YNoneexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-bufferRowLength-09106YNoneexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-bufferRowLength-09108YNoneexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of dstImage must be less than or equal to 231-1
VUID-VkCopyBufferToImageInfo2-commonparentYNoneimplicitVkCopyBufferToImageInfo2coreBoth of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferToImageInfo2-dstImage-00177YNegativeCommand.CopyCommands2V13, NegativeImage.UsageBitsexplicitVkCopyBufferToImageInfo2coredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferToImageInfo2-dstImage-00207YNoneexplicitVkCopyBufferToImageInfo2coreFor 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 texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-00208YNoneexplicitVkCopyBufferToImageInfo2coreFor 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 texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-00209YNoneexplicitVkCopyBufferToImageInfo2coreFor 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 texel block extent depth of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-01997YNoneexplicitVkCopyBufferToImageInfo2coreThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkCopyBufferToImageInfo2-dstImage-07274YNegativeCommand.CompressedImageMipCopyexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-07275YNegativeCommand.CompressedImageMipCopyexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-07276YNoneexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-07966YNoneexplicitVkCopyBufferToImageInfo2coreIf dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2-dstImage-07969YNoneexplicitVkCopyBufferToImageInfo2coredstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyBufferToImageInfo2-dstImage-07973YNoneexplicitVkCopyBufferToImageInfo2coredstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyBufferToImageInfo2-dstImage-07975YNoneexplicitVkCopyBufferToImageInfo2coreIf dstImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size
VUID-VkCopyBufferToImageInfo2-dstImage-07976YNoneexplicitVkCopyBufferToImageInfo2coreIf dstImage has a 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 Compatible Formats of Planes of Multi-Planar Formats
VUID-VkCopyBufferToImageInfo2-dstImage-07978YNoneexplicitVkCopyBufferToImageInfo2coreIf dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyBufferToImageInfo2-dstImage-07979YNoneexplicitVkCopyBufferToImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
VUID-VkCopyBufferToImageInfo2-dstImage-07980YNoneexplicitVkCopyBufferToImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
VUID-VkCopyBufferToImageInfo2-dstImage-07981YNoneexplicitVkCopyBufferToImageInfo2coreIf dstImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-VkCopyBufferToImageInfo2-dstImage-07983YNoneexplicitVkCopyBufferToImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1
VUID-VkCopyBufferToImageInfo2-dstImage-parameterYNoneimplicitVkCopyBufferToImageInfo2coredstImage must be a valid VkImage handle
VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180YNoneexplicitVkCopyBufferToImageInfo2coredstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396YNoneexplicitVkCopyBufferToImageInfo2coredstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameterYNoneimplicitVkCopyBufferToImageInfo2coredstImageLayout must be a valid VkImageLayout value
VUID-VkCopyBufferToImageInfo2-imageOffset-09104YNoneexplicitVkCopyBufferToImageInfo2coreFor 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-VkCopyBufferToImageInfo2-imageSubresource-07967YNoneexplicitVkCopyBufferToImageInfo2coreThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyBufferToImageInfo2-imageSubresource-07968YNoneexplicitVkCopyBufferToImageInfo2coreIf imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyBufferToImageInfo2-imageSubresource-09105YNoneexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyBufferToImageInfo2-pNext-pNextYNoneimplicitVkCopyBufferToImageInfo2corepNext must be NULL
VUID-VkCopyBufferToImageInfo2-pRegions-00171YNoneexplicitVkCopyBufferToImageInfo2coresrcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
VUID-VkCopyBufferToImageInfo2-pRegions-00173YNoneexplicitVkCopyBufferToImageInfo2coreThe union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyBufferToImageInfo2-pRegions-04565YNoneexplicitVkCopyBufferToImageInfo2coreThe image region specified by each element of pRegions that does not contain VkCopyCommandTransformInfoQCOM in its pNext chain must be contained within the specified imageSubresource of dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-06223YNoneexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, 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-VkCopyBufferToImageInfo2-pRegions-06224YNoneexplicitVkCopyBufferToImageInfo2coreFor each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, 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-VkCopyBufferToImageInfo2-pRegions-07931NNoneexplicitVkCopyBufferToImageInfo2coreIf 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-VkCopyBufferToImageInfo2-pRegions-parameterYNoneimplicitVkCopyBufferToImageInfo2corepRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures
VUID-VkCopyBufferToImageInfo2-regionCount-arraylengthYNoneimplicitVkCopyBufferToImageInfo2coreregionCount must be greater than 0
VUID-VkCopyBufferToImageInfo2-sType-sTypeYNoneimplicitVkCopyBufferToImageInfo2coresType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2
VUID-VkCopyBufferToImageInfo2-srcBuffer-00174YNegativeImage.UsageBitsexplicitVkCopyBufferToImageInfo2coresrcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferToImageInfo2-srcBuffer-00176YNoneexplicitVkCopyBufferToImageInfo2coreIf srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2-srcBuffer-parameterYNoneimplicitVkCopyBufferToImageInfo2coresrcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554NNoneexplicitVkCopyBufferToImageInfo2coreIf the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated destination region as described in [copies-buffers-images-rotation-addressing] must be contained within dstImage
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555NNoneexplicitVkCopyBufferToImageInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must have a 1x1x1 texel block extent
VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203NNoneexplicitVkCopyBufferToImageInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must be of type VK_IMAGE_TYPE_2D
VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204NNoneexplicitVkCopyBufferToImageInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must not have a multi-planar format
VUID-VkCopyCommandTransformInfoQCOM-sType-sTypeYNoneimplicitVkCopyCommandTransformInfoQCOMcoresType must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
VUID-VkCopyCommandTransformInfoQCOM-transform-04560NNoneexplicitVkCopyCommandTransformInfoQCOMcoretransform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
VUID-VkCopyDescriptorSet-commonparentYNoneimplicitVkCopyDescriptorSetcoreBoth of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyDescriptorSet-dstArrayElement-00348YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetcoreThe sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates
VUID-VkCopyDescriptorSet-dstBinding-00347YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetcoredstBinding must be a valid binding within dstSet
VUID-VkCopyDescriptorSet-dstBinding-02224YNegativeDescriptors.InlineUniformBlockEXTexplicitVkCopyDescriptorSetcoreIf the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkCopyDescriptorSet-dstBinding-02632YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetcoreThe type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet
VUID-VkCopyDescriptorSet-dstBinding-02753YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetcoreIf the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding
VUID-VkCopyDescriptorSet-dstSet-04612YNegativeDescriptors.CopyMutableDescriptorsexplicitVkCopyDescriptorSetcoreIf VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the new active descriptor type must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding if the new active descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkCopyDescriptorSet-dstSet-04614YNegativeDescriptors.CopyMutableDescriptorsexplicitVkCopyDescriptorSetcoreIf VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, and the new active descriptor type is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the pMutableDescriptorTypeLists for srcBinding and dstBinding must match exactly
VUID-VkCopyDescriptorSet-dstSet-parameterYNegativeDescriptors.UpdateDestroyDescriptorSetLayoutimplicitVkCopyDescriptorSetcoredstSet must be a valid VkDescriptorSet handle
VUID-VkCopyDescriptorSet-pNext-pNextYNoneimplicitVkCopyDescriptorSetcorepNext must be NULL
VUID-VkCopyDescriptorSet-sType-sTypeYNoneimplicitVkCopyDescriptorSetcoresType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
VUID-VkCopyDescriptorSet-srcArrayElement-00346YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetcoreThe sum of srcArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by srcBinding, and all applicable consecutive bindings, as described by consecutive binding updates
VUID-VkCopyDescriptorSet-srcBinding-00345YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetcoresrcBinding must be a valid binding within srcSet
VUID-VkCopyDescriptorSet-srcBinding-02223YNegativeDescriptors.InlineUniformBlockEXTexplicitVkCopyDescriptorSetcoreIf the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, srcArrayElement must be an integer multiple of 4
VUID-VkCopyDescriptorSet-srcBinding-02225YNegativeDescriptors.InlineUniformBlockEXTexplicitVkCopyDescriptorSetcoreIf the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkCopyDescriptorSet-srcSet-00349YNoneexplicitVkCopyDescriptorSetcoreIf srcSet is equal to dstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates
VUID-VkCopyDescriptorSet-srcSet-01918YNegativeDescriptors.CopyDescriptorSetMissingSrcFlagexplicitVkCopyDescriptorSetcoreIf srcSet's layout was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet's layout must also have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set
VUID-VkCopyDescriptorSet-srcSet-01920YNegativeDescriptors.CopyDescriptorSetMissingSrcFlagexplicitVkCopyDescriptorSetcoreIf the descriptor pool from which srcSet was allocated was created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must also have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set
VUID-VkCopyDescriptorSet-srcSet-04613YNegativeDescriptors.CopyMutableDescriptorsexplicitVkCopyDescriptorSetcoreIf VkDescriptorSetLayoutBinding for srcSet at srcBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT and the VkDescriptorSetLayoutBinding for dstSet at dstBinding is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the active descriptor type for the source descriptor must match the descriptor type of dstBinding
VUID-VkCopyDescriptorSet-srcSet-04885YNoneexplicitVkCopyDescriptorSetcoreIf srcSet's layout was created without either the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT flag or the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet's layout must have been created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set
VUID-VkCopyDescriptorSet-srcSet-04887YNoneexplicitVkCopyDescriptorSetcoreIf the descriptor pool from which srcSet was allocated was created without either the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag or the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must have been created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set
VUID-VkCopyDescriptorSet-srcSet-parameterYNegativeDescriptors.UpdateDestroyDescriptorSetLayoutimplicitVkCopyDescriptorSetcoresrcSet must be a valid VkDescriptorSet handle
VUID-VkCopyImageInfo2-None-01549YNoneexplicitVkCopyImageInfo2coreIn a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied
VUID-VkCopyImageInfo2-apiVersion-07932YNoneexplicitVkCopyImageInfo2coreIf the VK_KHR_maintenance1 extension is not enabled, or VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_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-VkCopyImageInfo2-apiVersion-07933YNegativeCommand.CopyImageTypeExtentMismatchexplicitVkCopyImageInfo2coreIf the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType
VUID-VkCopyImageInfo2-apiVersion-08969YNoneexplicitVkCopyImageInfo2coreIf the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
VUID-VkCopyImageInfo2-aspect-06662YNoneexplicitVkCopyImageInfo2coreIf the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage
VUID-VkCopyImageInfo2-aspect-06663YNoneexplicitVkCopyImageInfo2coreIf the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage
VUID-VkCopyImageInfo2-aspect-06664YNoneexplicitVkCopyImageInfo2coreIf the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage
VUID-VkCopyImageInfo2-aspect-06665YNoneexplicitVkCopyImageInfo2coreIf the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and dstImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create dstImage
VUID-VkCopyImageInfo2-aspectMask-00142YNoneexplicitVkCopyImageInfo2coreFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageInfo2-aspectMask-00143YNoneexplicitVkCopyImageInfo2coreFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyImageInfo2-commonparentYNoneimplicitVkCopyImageInfo2coreBoth of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageInfo2-dstImage-00152YNegativeCommand.CopyImageTypeExtentMismatchexplicitVkCopyImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1
VUID-VkCopyImageInfo2-dstImage-01557YNoneexplicitVkCopyImageInfo2coreIf dstImage has a 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 VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkCopyImageInfo2-dstImage-01732YNoneexplicitVkCopyImageInfo2coreFor 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 texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageInfo2-dstImage-01733YNoneexplicitVkCopyImageInfo2coreFor 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 texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageInfo2-dstImage-01734YNoneexplicitVkCopyImageInfo2coreFor 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 texel block extent depth of the VkFormat of dstImage
VUID-VkCopyImageInfo2-dstImage-01786YNoneexplicitVkCopyImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1
VUID-VkCopyImageInfo2-dstImage-01788YNoneexplicitVkCopyImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0
VUID-VkCopyImageInfo2-dstImage-01792YNoneexplicitVkCopyImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount
VUID-VkCopyImageInfo2-dstImage-01996YNoneexplicitVkCopyImageInfo2coreThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkCopyImageInfo2-dstImage-04444YNoneexplicitVkCopyImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1
VUID-VkCopyImageInfo2-dstImage-07966YNegativeImage.CopyImageMemoryexplicitVkCopyImageInfo2coreIf dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-dstImage-07969YNoneexplicitVkCopyImageInfo2coredstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageInfo2-dstImage-08714YNoneexplicitVkCopyImageInfo2coreIf dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-VkCopyImageInfo2-dstImage-parameterYNoneimplicitVkCopyImageInfo2coredstImage must be a valid VkImage handle
VUID-VkCopyImageInfo2-dstImageLayout-00133YNegativeImage.ImageLayoutexplicitVkCopyImageInfo2coredstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkCopyImageInfo2-dstImageLayout-01395YNegativeImage.ImageLayoutexplicitVkCopyImageInfo2coredstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2-dstImageLayout-parameterYNoneimplicitVkCopyImageInfo2coredstImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2-dstOffset-00150YNoneexplicitVkCopyImageInfo2coreFor 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-VkCopyImageInfo2-dstOffset-00151YNegativeCommand.CopyImageTypeExtentMismatchexplicitVkCopyImageInfo2coreFor 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-VkCopyImageInfo2-dstOffset-00153YNoneexplicitVkCopyImageInfo2coreIf dstImage is of type VK_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-VkCopyImageInfo2-dstOffset-01784YNoneexplicitVkCopyImageInfo2coreThe 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 VkQueueFamilyProperties
VUID-VkCopyImageInfo2-dstSubresource-07967YNoneexplicitVkCopyImageInfo2coreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyImageInfo2-dstSubresource-07968YNoneexplicitVkCopyImageInfo2coreIf dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyImageInfo2-pNext-pNextYNoneimplicitVkCopyImageInfo2corepNext must be NULL
VUID-VkCopyImageInfo2-pRegions-00124YNoneexplicitVkCopyImageInfo2coreThe union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyImageInfo2-pRegions-07278YNoneexplicitVkCopyImageInfo2coreFor each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07279YNoneexplicitVkCopyImageInfo2coreFor each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07280YNoneexplicitVkCopyImageInfo2coreFor each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07281YNoneexplicitVkCopyImageInfo2coreFor each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-07282YNoneexplicitVkCopyImageInfo2coreFor each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-07283YNoneexplicitVkCopyImageInfo2coreFor each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-parameterYNoneimplicitVkCopyImageInfo2corepRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures
VUID-VkCopyImageInfo2-regionCount-arraylengthYNoneimplicitVkCopyImageInfo2coreregionCount must be greater than 0
VUID-VkCopyImageInfo2-sType-sTypeYNoneimplicitVkCopyImageInfo2coresType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2
VUID-VkCopyImageInfo2-srcImage-00136YNoneexplicitVkCopyImageInfo2coreThe sample count of srcImage and dstImage must match
VUID-VkCopyImageInfo2-srcImage-00146YNegativeCommand.CopyImageTypeExtentMismatchexplicitVkCopyImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
VUID-VkCopyImageInfo2-srcImage-01548YNoneexplicitVkCopyImageInfo2coreIf the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be size-compatible
VUID-VkCopyImageInfo2-srcImage-01551YNoneexplicitVkCopyImageInfo2coreIf neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match
VUID-VkCopyImageInfo2-srcImage-01556YNoneexplicitVkCopyImageInfo2coreIf srcImage has a 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 VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkCopyImageInfo2-srcImage-01728YNoneexplicitVkCopyImageInfo2coreFor 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 texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageInfo2-srcImage-01729YNoneexplicitVkCopyImageInfo2coreFor 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 texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageInfo2-srcImage-01730YNoneexplicitVkCopyImageInfo2coreFor 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 texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageInfo2-srcImage-01785YNoneexplicitVkCopyImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
VUID-VkCopyImageInfo2-srcImage-01787YNoneexplicitVkCopyImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0
VUID-VkCopyImageInfo2-srcImage-01790YNoneexplicitVkCopyImageInfo2coreIf srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
VUID-VkCopyImageInfo2-srcImage-01791YNoneexplicitVkCopyImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount
VUID-VkCopyImageInfo2-srcImage-01995YNoneexplicitVkCopyImageInfo2coreThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkCopyImageInfo2-srcImage-04443YNoneexplicitVkCopyImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1
VUID-VkCopyImageInfo2-srcImage-07743YNoneexplicitVkCopyImageInfo2coreIf srcImage and dstImage have a different VkImageType, and maintenance5 is not enabled, one must be VK_IMAGE_TYPE_3D and the other must be VK_IMAGE_TYPE_2D
VUID-VkCopyImageInfo2-srcImage-07966YNegativeImage.CopyImageMemoryexplicitVkCopyImageInfo2coreIf srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-srcImage-07969YNoneexplicitVkCopyImageInfo2coresrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageInfo2-srcImage-08713YNoneexplicitVkCopyImageInfo2coreIf srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-VkCopyImageInfo2-srcImage-08793YNoneexplicitVkCopyImageInfo2coreIf srcImage and dstImage have the same VkImageType, for each element of pRegions, if neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match
VUID-VkCopyImageInfo2-srcImage-08794YNoneexplicitVkCopyImageInfo2coreIf srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer
VUID-VkCopyImageInfo2-srcImage-09247YNoneexplicitVkCopyImageInfo2coreIf the VkFormat of each of srcImage and dstImage is a compressed image format, the formats must have the same texel block extent
VUID-VkCopyImageInfo2-srcImage-09460YNoneexplicitVkCopyImageInfo2coreIf srcImage and dstImage are the same, and any elements of pRegions contains the srcSubresource and dstSubresource with matching mipLevel and overlapping array layers, then the srcImageLayout and dstImageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyImageInfo2-srcImage-parameterYNoneimplicitVkCopyImageInfo2coresrcImage must be a valid VkImage handle
VUID-VkCopyImageInfo2-srcImageLayout-00128YNegativeImage.ImageLayoutexplicitVkCopyImageInfo2coresrcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkCopyImageInfo2-srcImageLayout-01917YNegativeImage.ImageLayoutexplicitVkCopyImageInfo2coresrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2-srcImageLayout-parameterYNoneimplicitVkCopyImageInfo2coresrcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2-srcOffset-00144YNoneexplicitVkCopyImageInfo2coreFor 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-VkCopyImageInfo2-srcOffset-00145YNegativeCommand.CopyImageTypeExtentMismatchexplicitVkCopyImageInfo2coreFor 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-VkCopyImageInfo2-srcOffset-00147YNoneexplicitVkCopyImageInfo2coreIf srcImage is of type VK_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-VkCopyImageInfo2-srcOffset-01783YNoneexplicitVkCopyImageInfo2coreThe 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 VkQueueFamilyProperties
VUID-VkCopyImageInfo2-srcSubresource-07967YNoneexplicitVkCopyImageInfo2coreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageInfo2-srcSubresource-07968YNoneexplicitVkCopyImageInfo2coreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToBufferInfo2-bufferImageHeight-09107YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-bufferRowLength-09106YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-bufferRowLength-09108YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of srcImage must be less than or equal to 231-1
VUID-VkCopyImageToBufferInfo2-commonparentYNoneimplicitVkCopyImageToBufferInfo2coreBoth of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageToBufferInfo2-dstBuffer-00191YNegativeCommand.CopyCommands2V13explicitVkCopyImageToBufferInfo2coredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyImageToBufferInfo2-dstBuffer-00192YNoneexplicitVkCopyImageToBufferInfo2coreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2-dstBuffer-parameterYNoneimplicitVkCopyImageToBufferInfo2coredstBuffer must be a valid VkBuffer handle
VUID-VkCopyImageToBufferInfo2-imageOffset-00197YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, 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-VkCopyImageToBufferInfo2-imageOffset-00198YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, 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-VkCopyImageToBufferInfo2-imageOffset-09104YNoneexplicitVkCopyImageToBufferInfo2coreFor 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-VkCopyImageToBufferInfo2-imageSubresource-07967YNoneexplicitVkCopyImageToBufferInfo2coreThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToBufferInfo2-imageSubresource-07968YNoneexplicitVkCopyImageToBufferInfo2coreIf imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToBufferInfo2-imageSubresource-09105YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageToBufferInfo2-pNext-pNextYNoneimplicitVkCopyImageToBufferInfo2corepNext must be NULL
VUID-VkCopyImageToBufferInfo2-pRegions-00183YNoneexplicitVkCopyImageToBufferInfo2coredstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
VUID-VkCopyImageToBufferInfo2-pRegions-00184YNoneexplicitVkCopyImageToBufferInfo2coreThe union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyImageToBufferInfo2-pRegions-04566YNoneexplicitVkCopyImageToBufferInfo2coreThe image region specified by each element of pRegions that does not contain VkCopyCommandTransformInfoQCOM in its pNext chain must be contained within the specified imageSubresource of srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-parameterYNoneimplicitVkCopyImageToBufferInfo2corepRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures
VUID-VkCopyImageToBufferInfo2-regionCount-arraylengthYNoneimplicitVkCopyImageToBufferInfo2coreregionCount must be greater than 0
VUID-VkCopyImageToBufferInfo2-sType-sTypeYNoneimplicitVkCopyImageToBufferInfo2coresType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2
VUID-VkCopyImageToBufferInfo2-srcImage-00186YNoneexplicitVkCopyImageToBufferInfo2coresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyImageToBufferInfo2-srcImage-00207YNoneexplicitVkCopyImageToBufferInfo2coreFor 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 texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-00208YNoneexplicitVkCopyImageToBufferInfo2coreFor 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 texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-00209YNoneexplicitVkCopyImageToBufferInfo2coreFor 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 texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-01998YNoneexplicitVkCopyImageToBufferInfo2coreThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkCopyImageToBufferInfo2-srcImage-07274YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-07275YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-07276YNoneexplicitVkCopyImageToBufferInfo2coreFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-07966YNoneexplicitVkCopyImageToBufferInfo2coreIf srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2-srcImage-07969YNoneexplicitVkCopyImageToBufferInfo2coresrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToBufferInfo2-srcImage-07973YNoneexplicitVkCopyImageToBufferInfo2coresrcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyImageToBufferInfo2-srcImage-07975YNoneexplicitVkCopyImageToBufferInfo2coreIf srcImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size
VUID-VkCopyImageToBufferInfo2-srcImage-07976YNoneexplicitVkCopyImageToBufferInfo2coreIf srcImage has a 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 Compatible Formats of Planes of Multi-Planar Formats
VUID-VkCopyImageToBufferInfo2-srcImage-07978YNoneexplicitVkCopyImageToBufferInfo2coreIf srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyImageToBufferInfo2-srcImage-07979YNoneexplicitVkCopyImageToBufferInfo2coreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
VUID-VkCopyImageToBufferInfo2-srcImage-07980YNoneexplicitVkCopyImageToBufferInfo2coreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
VUID-VkCopyImageToBufferInfo2-srcImage-07981YNoneexplicitVkCopyImageToBufferInfo2coreIf srcImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-VkCopyImageToBufferInfo2-srcImage-07983YNoneexplicitVkCopyImageToBufferInfo2coreIf srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1
VUID-VkCopyImageToBufferInfo2-srcImage-parameterYNoneimplicitVkCopyImageToBufferInfo2coresrcImage must be a valid VkImage handle
VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189YNoneexplicitVkCopyImageToBufferInfo2coresrcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397YNoneexplicitVkCopyImageToBufferInfo2coresrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameterYNoneimplicitVkCopyImageToBufferInfo2coresrcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557NNoneexplicitVkCopyImageToBufferInfo2coreIf the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated source region as described in [copies-buffers-images-rotation-addressing] must be contained within srcImage
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558NNoneexplicitVkCopyImageToBufferInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must have a 1x1x1 texel block extent
VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205NNoneexplicitVkCopyImageToBufferInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206NNoneexplicitVkCopyImageToBufferInfo2coreIf any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format
VUID-VkCopyImageToImageInfoEXT-commonparentYNoneimplicitVkCopyImageToImageInfoEXTcoreBoth of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageToImageInfoEXT-dstImage-00207YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, if the sum of dstOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-00208YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, if the sum of dstOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-00209YNoneexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-07274YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-07275YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-07276YNoneexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-07966YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToImageInfoEXT-dstImage-07969YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoredstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToImageInfoEXT-dstImage-07979YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1
VUID-VkCopyImageToImageInfoEXT-dstImage-07980YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1
VUID-VkCopyImageToImageInfoEXT-dstImage-07981YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-VkCopyImageToImageInfoEXT-dstImage-07983YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1
VUID-VkCopyImageToImageInfoEXT-dstImage-09109YNegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToImageInfoEXTcoreIf dstImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory
VUID-VkCopyImageToImageInfoEXT-dstImage-09111YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf the stencil aspect of dstImage is accessed, and dstImage was not created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage
VUID-VkCopyImageToImageInfoEXT-dstImage-09112YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf the stencil aspect of dstImage is accessed, and dstImage was created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage
VUID-VkCopyImageToImageInfoEXT-dstImage-09113YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf non-stencil aspects of dstImage are accessed, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage
VUID-VkCopyImageToImageInfoEXT-dstImage-09115YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the extent member of each element of pRegions must equal the extents of dstImage identified by dstSubresource
VUID-VkCopyImageToImageInfoEXT-dstImage-parameterYNoneimplicitVkCopyImageToImageInfoEXTcoredstImage must be a valid VkImage handle
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071YNegativeHostImageCopy.HostCopyImageToImage, NegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToImageInfoEXTcoredstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegions
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09073YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoredstImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-parameterYNoneimplicitVkCopyImageToImageInfoEXTcoredstImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageToImageInfoEXT-dstOffset-09104YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage
VUID-VkCopyImageToImageInfoEXT-dstOffset-09114YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the dstOffset member of each element of pRegions must be 0
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07967YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07970YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreThe image region specified by each element of pRegions must be contained within the specified dstSubresource of dstImage
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07971YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07972YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
VUID-VkCopyImageToImageInfoEXT-dstSubresource-09105YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyImageToImageInfoEXT-flags-parameterYNoneimplicitVkCopyImageToImageInfoEXTcoreflags must be a valid combination of VkHostImageCopyFlagBitsEXT values
VUID-VkCopyImageToImageInfoEXT-pNext-pNextYNoneimplicitVkCopyImageToImageInfoEXTcorepNext must be NULL
VUID-VkCopyImageToImageInfoEXT-pRegions-parameterYNoneimplicitVkCopyImageToImageInfoEXTcorepRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures
VUID-VkCopyImageToImageInfoEXT-regionCount-arraylengthYNoneimplicitVkCopyImageToImageInfoEXTcoreregionCount must be greater than 0
VUID-VkCopyImageToImageInfoEXT-sType-sTypeYNoneimplicitVkCopyImageToImageInfoEXTcoresType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT
VUID-VkCopyImageToImageInfoEXT-srcImage-00207YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor 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 texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-00208YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor 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 texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-00209YNoneexplicitVkCopyImageToImageInfoEXTcoreFor 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 texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-07274YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-07275YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-07276YNoneexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-07966YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToImageInfoEXT-srcImage-07969YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoresrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToImageInfoEXT-srcImage-07979YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
VUID-VkCopyImageToImageInfoEXT-srcImage-07980YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
VUID-VkCopyImageToImageInfoEXT-srcImage-07981YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-VkCopyImageToImageInfoEXT-srcImage-07983YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1
VUID-VkCopyImageToImageInfoEXT-srcImage-09069YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoresrcImage and dstImage must have been created with identical image creation parameters
VUID-VkCopyImageToImageInfoEXT-srcImage-09109YNegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToImageInfoEXTcoreIf srcImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory
VUID-VkCopyImageToImageInfoEXT-srcImage-09111YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf the stencil aspect of srcImage is accessed, and srcImage was not created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage
VUID-VkCopyImageToImageInfoEXT-srcImage-09112YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf the stencil aspect of srcImage is accessed, and srcImage was created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage
VUID-VkCopyImageToImageInfoEXT-srcImage-09113YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf non-stencil aspects of srcImage are accessed, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage
VUID-VkCopyImageToImageInfoEXT-srcImage-09115YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the extent member of each element of pRegions must equal the extents of srcImage identified by srcSubresource
VUID-VkCopyImageToImageInfoEXT-srcImage-parameterYNoneimplicitVkCopyImageToImageInfoEXTcoresrcImage must be a valid VkImage handle
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoresrcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegions
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09072YNegativeHostImageCopy.HostCopyImageToImage, NegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToImageInfoEXTcoresrcImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-parameterYNoneimplicitVkCopyImageToImageInfoEXTcoresrcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageToImageInfoEXT-srcOffset-09104YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage
VUID-VkCopyImageToImageInfoEXT-srcOffset-09114YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the srcOffset member of each element of pRegions must be 0
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07967YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07970YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreThe image region specified by each element of pRegions must be contained within the specified srcSubresource of srcImage
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07972YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
VUID-VkCopyImageToImageInfoEXT-srcSubresource-09105YNegativeHostImageCopy.HostCopyImageToImageexplicitVkCopyImageToImageInfoEXTcoreFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageToMemoryInfoEXT-flags-09394YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf flags includes VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0
VUID-VkCopyImageToMemoryInfoEXT-flags-parameterYNoneimplicitVkCopyImageToMemoryInfoEXTcoreflags must be a valid combination of VkHostImageCopyFlagBitsEXT values
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09104YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09114YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the imageOffset member of each element of pRegions must be 0
VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07967YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07968YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07970YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreThe image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07971YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07972YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-09105YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageToMemoryInfoEXT-memoryImageHeight-09107YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, memoryImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09106YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, memoryRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09108YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, memoryRowLength divided by the texel block extent width and then multiplied by the texel block size of srcImage must be less than or equal to 231-1
VUID-VkCopyImageToMemoryInfoEXT-pNext-pNextYNoneimplicitVkCopyImageToMemoryInfoEXTcorepNext must be NULL
VUID-VkCopyImageToMemoryInfoEXT-pRegions-parameterYNoneimplicitVkCopyImageToMemoryInfoEXTcorepRegions must be a valid pointer to an array of regionCount valid VkImageToMemoryCopyEXT structures
VUID-VkCopyImageToMemoryInfoEXT-regionCount-arraylengthYNoneimplicitVkCopyImageToMemoryInfoEXTcoreregionCount must be greater than 0
VUID-VkCopyImageToMemoryInfoEXT-sType-sTypeYNoneimplicitVkCopyImageToMemoryInfoEXTcoresType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT
VUID-VkCopyImageToMemoryInfoEXT-srcImage-00207YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor 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 texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-00208YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor 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 texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-00209YNoneexplicitVkCopyImageToMemoryInfoEXTcoreFor 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 texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07274YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07275YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07276YNoneexplicitVkCopyImageToMemoryInfoEXTcoreFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07966YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07969YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoresrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07973YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoresrcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07979YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07980YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07981YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf srcImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07983YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1
VUID-VkCopyImageToMemoryInfoEXT-srcImage-09109YNegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToMemoryInfoEXTcoreIf srcImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory
VUID-VkCopyImageToMemoryInfoEXT-srcImage-09111YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf the stencil aspect of srcImage is accessed, and srcImage was not created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-09112YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf the stencil aspect of srcImage is accessed, and srcImage was created with separate stencil usage, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-09113YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf non-stencil aspects of srcImage are accessed, srcImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-09115YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoreIf flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the imageExtent member of each element of pRegions must equal the extents of srcImage identified by imageSubresource
VUID-VkCopyImageToMemoryInfoEXT-srcImage-parameterYNoneimplicitVkCopyImageToMemoryInfoEXTcoresrcImage must be a valid VkImage handle
VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09064YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyImageToMemoryInfoEXTcoresrcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegions
VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09065YNegativeHostImageCopy.HostCopyImageToFromMemory, NegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToMemoryInfoEXTcoresrcImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts
VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-parameterYNoneimplicitVkCopyImageToMemoryInfoEXTcoresrcImageLayout must be a valid VkImageLayout value
VUID-VkCopyMemoryIndirectCommandNV-dstAddress-07658NNoneexplicitVkCopyMemoryIndirectCommandNVcoreThe dstAddress must be 4 byte aligned
VUID-VkCopyMemoryIndirectCommandNV-size-07659NNoneexplicitVkCopyMemoryIndirectCommandNVcoreThe size must be 4 byte aligned
VUID-VkCopyMemoryIndirectCommandNV-srcAddress-07657NNoneexplicitVkCopyMemoryIndirectCommandNVcoreThe srcAddress must be 4 byte aligned
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHRcoredst must have been created with a size greater than or equal to that used to serialize the data in src
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameterYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHRcoredst must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413YNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHRcoremode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameterYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHRcoremode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHRcoreThe data in src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNextYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHRcorepNext must be NULL
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sTypeYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHRcoresType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHRcoreThe source memory pointed to by src must contain data previously serialized using vkCmdCopyAccelerationStructureToMemoryKHR, potentially modified to relocate acceleration structure references as described in that command
VUID-VkCopyMemoryToImageIndirectCommandNV-bufferImageHeight-07680NNoneexplicitVkCopyMemoryToImageIndirectCommandNVcorebufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkCopyMemoryToImageIndirectCommandNV-bufferRowLength-07679NNoneexplicitVkCopyMemoryToImageIndirectCommandNVcorebufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkCopyMemoryToImageIndirectCommandNV-imageExtent-07682NNoneexplicitVkCopyMemoryToImageIndirectCommandNVcoreimageExtent must specify a valid region in the destination image and can be 0
VUID-VkCopyMemoryToImageIndirectCommandNV-imageOffset-07681NNoneexplicitVkCopyMemoryToImageIndirectCommandNVcoreimageOffset must specify a valid offset in the destination image
VUID-VkCopyMemoryToImageIndirectCommandNV-imageSubresource-parameterNNoneimplicitVkCopyMemoryToImageIndirectCommandNVcoreimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkCopyMemoryToImageIndirectCommandNV-srcAddress-07678NNoneexplicitVkCopyMemoryToImageIndirectCommandNVcoreThe srcAddress must be 4 byte aligned
VUID-VkCopyMemoryToImageInfoEXT-dstImage-00207YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor 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 texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-00208YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor 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 texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-00209YNoneexplicitVkCopyMemoryToImageInfoEXTcoreFor 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 texel block extent depth of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07274YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07275YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07276YNoneexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07966YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07969YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoredstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07973YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoredstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07979YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07980YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07981YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf dstImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07983YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1
VUID-VkCopyMemoryToImageInfoEXT-dstImage-09109YNegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyMemoryToImageInfoEXTcoreIf dstImage is sparse then all memory ranges accessed by the copy command must be bound as described in Binding Resource Memory
VUID-VkCopyMemoryToImageInfoEXT-dstImage-09111YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf the stencil aspect of dstImage is accessed, and dstImage was not created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-09112YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf the stencil aspect of dstImage is accessed, and dstImage was created with separate stencil usage, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageStencilUsageCreateInfo::stencilUsage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-09113YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf non-stencil aspects of dstImage are accessed, dstImage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in VkImageCreateInfo::usage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-09115YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the imageExtent member of each element of pRegions must equal the extents of dstImage identified by imageSubresource
VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameterYNoneimplicitVkCopyMemoryToImageInfoEXTcoredstImage must be a valid VkImage handle
VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09059YNegativeHostImageCopy.HostCopyImageToFromMemory, NegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyMemoryToImageInfoEXTcoredstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegions
VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoredstImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts
VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameterYNoneimplicitVkCopyMemoryToImageInfoEXTcoredstImageLayout must be a valid VkImageLayout value
VUID-VkCopyMemoryToImageInfoEXT-flags-09393YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf flags includes VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0
VUID-VkCopyMemoryToImageInfoEXT-flags-parameterYNoneimplicitVkCopyMemoryToImageInfoEXTcoreflags must be a valid combination of VkHostImageCopyFlagBitsEXT values
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09104YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09114YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf flags contains VK_HOST_IMAGE_COPY_MEMCPY_EXT, the x, y, and z members of the imageOffset member of each element of pRegions must be 0
VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07967YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07968YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreIf imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07970YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreThe image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07971YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07972YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-09105YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyMemoryToImageInfoEXT-memoryImageHeight-09107YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, memoryImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09106YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, memoryRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09108YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkCopyMemoryToImageInfoEXTcoreFor each element of pRegions, memoryRowLength divided by the texel block extent width and then multiplied by the texel block size of dstImage must be less than or equal to 231-1
VUID-VkCopyMemoryToImageInfoEXT-pNext-pNextYNoneimplicitVkCopyMemoryToImageInfoEXTcorepNext must be NULL
VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameterYNoneimplicitVkCopyMemoryToImageInfoEXTcorepRegions must be a valid pointer to an array of regionCount valid VkMemoryToImageCopyEXT structures
VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylengthYNoneimplicitVkCopyMemoryToImageInfoEXTcoreregionCount must be greater than 0
VUID-VkCopyMemoryToImageInfoEXT-sType-sTypeYNoneimplicitVkCopyMemoryToImageInfoEXTcoresType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT
VUID-VkCopyMemoryToMicromapInfoEXT-dst-07550NNoneexplicitVkCopyMemoryToMicromapInfoEXTcoredst must have been created with a size greater than or equal to that used to serialize the data in src
VUID-VkCopyMemoryToMicromapInfoEXT-dst-parameterYNoneimplicitVkCopyMemoryToMicromapInfoEXTcoredst must be a valid VkMicromapEXT handle
VUID-VkCopyMemoryToMicromapInfoEXT-mode-07548NNoneexplicitVkCopyMemoryToMicromapInfoEXTcoremode must be VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT
VUID-VkCopyMemoryToMicromapInfoEXT-mode-parameterYNoneimplicitVkCopyMemoryToMicromapInfoEXTcoremode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMemoryToMicromapInfoEXT-pNext-pNextYNoneimplicitVkCopyMemoryToMicromapInfoEXTcorepNext must be NULL
VUID-VkCopyMemoryToMicromapInfoEXT-sType-sTypeYNoneimplicitVkCopyMemoryToMicromapInfoEXTcoresType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
VUID-VkCopyMemoryToMicromapInfoEXT-src-07547NNoneexplicitVkCopyMemoryToMicromapInfoEXTcoreThe source memory pointed to by src must contain data previously serialized using vkCmdCopyMicromapToMemoryEXT
VUID-VkCopyMemoryToMicromapInfoEXT-src-07549NNoneexplicitVkCopyMemoryToMicromapInfoEXTcoreThe data in src must have a format compatible with the destination physical device as returned by vkGetDeviceMicromapCompatibilityEXT
VUID-VkCopyMicromapInfoEXT-buffer-07534NNoneexplicitVkCopyMicromapInfoEXTcoreThe buffer used to create src must be bound to device memory
VUID-VkCopyMicromapInfoEXT-buffer-07535NNoneexplicitVkCopyMicromapInfoEXTcoreThe buffer used to create dst must be bound to device memory
VUID-VkCopyMicromapInfoEXT-commonparentYNoneimplicitVkCopyMicromapInfoEXTcoreBoth of dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyMicromapInfoEXT-dst-parameterYNoneimplicitVkCopyMicromapInfoEXTcoredst must be a valid VkMicromapEXT handle
VUID-VkCopyMicromapInfoEXT-mode-07531NNoneexplicitVkCopyMicromapInfoEXTcoremode must be VK_COPY_MICROMAP_MODE_COMPACT_EXT or VK_COPY_MICROMAP_MODE_CLONE_EXT
VUID-VkCopyMicromapInfoEXT-mode-07533NNoneexplicitVkCopyMicromapInfoEXTcoreIf mode is VK_COPY_MICROMAP_MODE_COMPACT_EXT, src must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT in the build
VUID-VkCopyMicromapInfoEXT-mode-parameterYNoneimplicitVkCopyMicromapInfoEXTcoremode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMicromapInfoEXT-pNext-pNextYNoneimplicitVkCopyMicromapInfoEXTcorepNext must be NULL
VUID-VkCopyMicromapInfoEXT-sType-sTypeYNoneimplicitVkCopyMicromapInfoEXTcoresType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
VUID-VkCopyMicromapInfoEXT-src-07532NNoneexplicitVkCopyMicromapInfoEXTcoreThe source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyMicromapInfoEXT-src-parameterYNoneimplicitVkCopyMicromapInfoEXTcoresrc must be a valid VkMicromapEXT handle
VUID-VkCopyMicromapToMemoryInfoEXT-dst-07541NNoneexplicitVkCopyMicromapToMemoryInfoEXTcoreThe memory pointed to by dst must be at least as large as the serialization size of src, as reported by vkWriteMicromapsPropertiesEXT or vkCmdWriteMicromapsPropertiesEXT with a query type of VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT
VUID-VkCopyMicromapToMemoryInfoEXT-mode-07542NNoneexplicitVkCopyMicromapToMemoryInfoEXTcoremode must be VK_COPY_MICROMAP_MODE_SERIALIZE_EXT
VUID-VkCopyMicromapToMemoryInfoEXT-mode-parameterYNoneimplicitVkCopyMicromapToMemoryInfoEXTcoremode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMicromapToMemoryInfoEXT-pNext-pNextYNoneimplicitVkCopyMicromapToMemoryInfoEXTcorepNext must be NULL
VUID-VkCopyMicromapToMemoryInfoEXT-sType-sTypeYNoneimplicitVkCopyMicromapToMemoryInfoEXTcoresType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
VUID-VkCopyMicromapToMemoryInfoEXT-src-07540NNoneexplicitVkCopyMicromapToMemoryInfoEXTcoreThe source micromap src must have been constructed prior to the execution of this command
VUID-VkCopyMicromapToMemoryInfoEXT-src-parameterYNoneimplicitVkCopyMicromapToMemoryInfoEXTcoresrc must be a valid VkMicromapEXT handle
VUID-VkCuFunctionCreateInfoNVX-module-parameterYNoneimplicitVkCuFunctionCreateInfoNVXcoremodule must be a valid VkCuModuleNVX handle
VUID-VkCuFunctionCreateInfoNVX-pName-parameterYNoneimplicitVkCuFunctionCreateInfoNVXcorepName must be a null-terminated UTF-8 string
VUID-VkCuFunctionCreateInfoNVX-pNext-pNextYNoneimplicitVkCuFunctionCreateInfoNVXcorepNext must be NULL
VUID-VkCuFunctionCreateInfoNVX-sType-sTypeYNoneimplicitVkCuFunctionCreateInfoNVXcoresType must be VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
VUID-VkCuLaunchInfoNVX-function-parameterYNoneimplicitVkCuLaunchInfoNVXcorefunction must be a valid VkCuFunctionNVX handle
VUID-VkCuLaunchInfoNVX-pExtras-parameterYNoneimplicitVkCuLaunchInfoNVXcoreIf extraCount is not 0, pExtras must be a valid pointer to an array of extraCount bytes
VUID-VkCuLaunchInfoNVX-pNext-pNextYNoneimplicitVkCuLaunchInfoNVXcorepNext must be NULL
VUID-VkCuLaunchInfoNVX-pParams-parameterYNoneimplicitVkCuLaunchInfoNVXcoreIf paramCount is not 0, pParams must be a valid pointer to an array of paramCount bytes
VUID-VkCuLaunchInfoNVX-sType-sTypeYNoneimplicitVkCuLaunchInfoNVXcoresType must be VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
VUID-VkCuModuleCreateInfoNVX-pData-parameterYNoneimplicitVkCuModuleCreateInfoNVXcoreIf dataSize is not 0, pData must be a valid pointer to an array of dataSize bytes
VUID-VkCuModuleCreateInfoNVX-pNext-pNextYNoneimplicitVkCuModuleCreateInfoNVXcorepNext must be NULL
VUID-VkCuModuleCreateInfoNVX-sType-sTypeYNoneimplicitVkCuModuleCreateInfoNVXcoresType must be VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
VUID-VkCudaFunctionCreateInfoNV-module-parameterYNoneimplicitVkCudaFunctionCreateInfoNVcoremodule must be a valid VkCudaModuleNV handle
VUID-VkCudaFunctionCreateInfoNV-pName-parameterYNoneimplicitVkCudaFunctionCreateInfoNVcorepName must be a null-terminated UTF-8 string
VUID-VkCudaFunctionCreateInfoNV-pNext-pNextYNoneimplicitVkCudaFunctionCreateInfoNVcorepNext must be NULL
VUID-VkCudaFunctionCreateInfoNV-sType-sTypeYNoneimplicitVkCudaFunctionCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV
VUID-VkCudaLaunchInfoNV-extraCount-09411NNoneexplicitVkCudaLaunchInfoNVcoreextraCount must be 0
VUID-VkCudaLaunchInfoNV-function-parameterYNoneimplicitVkCudaLaunchInfoNVcorefunction must be a valid VkCudaFunctionNV handle
VUID-VkCudaLaunchInfoNV-gridDimX-09406NNoneexplicitVkCudaLaunchInfoNVcoregridDimX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-VkCudaLaunchInfoNV-gridDimY-09407NNoneexplicitVkCudaLaunchInfoNVcoregridDimY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-VkCudaLaunchInfoNV-gridDimZ-09408NNoneexplicitVkCudaLaunchInfoNVcoregridDimZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-VkCudaLaunchInfoNV-pExtras-09412NNoneexplicitVkCudaLaunchInfoNVcorepExtras must be NULL
VUID-VkCudaLaunchInfoNV-pNext-pNextYNoneimplicitVkCudaLaunchInfoNVcorepNext must be NULL
VUID-VkCudaLaunchInfoNV-pParams-09410NNoneexplicitVkCudaLaunchInfoNVcorepParams must be a pointer to a table of paramCount parameters, corresponding to the arguments of function.
VUID-VkCudaLaunchInfoNV-paramCount-09409NNoneexplicitVkCudaLaunchInfoNVcoreparamCount must be the total amount of parameters listed in the pParams table.
VUID-VkCudaLaunchInfoNV-sType-sTypeYNoneimplicitVkCudaLaunchInfoNVcoresType must be VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
VUID-VkCudaModuleCreateInfoNV-dataSize-09413NNoneexplicitVkCudaModuleCreateInfoNVcoredataSize must be the total size in bytes of the PTX files or binary cache passed to pData.
VUID-VkCudaModuleCreateInfoNV-dataSize-arraylengthYNoneimplicitVkCudaModuleCreateInfoNVcoredataSize must be greater than 0
VUID-VkCudaModuleCreateInfoNV-pData-parameterYNoneimplicitVkCudaModuleCreateInfoNVcorepData must be a valid pointer to an array of dataSize bytes
VUID-VkCudaModuleCreateInfoNV-pNext-pNextYNoneimplicitVkCudaModuleCreateInfoNVcorepNext must be NULL
VUID-VkCudaModuleCreateInfoNV-sType-sTypeYNoneimplicitVkCudaModuleCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV
VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameterNNoneimplicitVkD3D12FenceSubmitInfoKHRcoreIf signalSemaphoreValuesCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValuesCount uint64_t values
VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameterNNoneimplicitVkD3D12FenceSubmitInfoKHRcoreIf waitSemaphoreValuesCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValuesCount uint64_t values
VUID-VkD3D12FenceSubmitInfoKHR-sType-sTypeYNoneimplicitVkD3D12FenceSubmitInfoKHRcoresType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080YNegativeExternalMemorySync.D3D12FenceSubmitInfoexplicitVkD3D12FenceSubmitInfoKHRcoresignalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where this structure is in the pNext chain of a VkSubmitInfo structure
VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079YNegativeExternalMemorySync.D3D12FenceSubmitInfoexplicitVkD3D12FenceSubmitInfoKHRcorewaitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where this structure is in the pNext chain of a VkSubmitInfo structure
VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameterYNoneimplicitVkDebugMarkerMarkerInfoEXTcorepMarkerName must be a null-terminated UTF-8 string
VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerMarkerInfoEXTcorepNext must be NULL
VUID-VkDebugMarkerMarkerInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerMarkerInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
VUID-VkDebugMarkerObjectNameInfoEXT-object-01491NNoneexplicitVkDebugMarkerObjectNameInfoEXTcoreobject must not be VK_NULL_HANDLE
VUID-VkDebugMarkerObjectNameInfoEXT-object-01492NNoneexplicitVkDebugMarkerObjectNameInfoEXTcoreobject must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490NNoneexplicitVkDebugMarkerObjectNameInfoEXTcoreobjectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameterYNoneimplicitVkDebugMarkerObjectNameInfoEXTcoreobjectType must be a valid VkDebugReportObjectTypeEXT value
VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerObjectNameInfoEXTcorepNext must be NULL
VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameterYNoneimplicitVkDebugMarkerObjectNameInfoEXTcorepObjectName must be a null-terminated UTF-8 string
VUID-VkDebugMarkerObjectNameInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerObjectNameInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-object-01494NNoneexplicitVkDebugMarkerObjectTagInfoEXTcoreobject must not be VK_NULL_HANDLE
VUID-VkDebugMarkerObjectTagInfoEXT-object-01495NNoneexplicitVkDebugMarkerObjectTagInfoEXTcoreobject must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493NNoneexplicitVkDebugMarkerObjectTagInfoEXTcoreobjectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameterYNoneimplicitVkDebugMarkerObjectTagInfoEXTcoreobjectType must be a valid VkDebugReportObjectTypeEXT value
VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerObjectTagInfoEXTcorepNext must be NULL
VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameterYNoneimplicitVkDebugMarkerObjectTagInfoEXTcorepTag must be a valid pointer to an array of tagSize bytes
VUID-VkDebugMarkerObjectTagInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerObjectTagInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylengthYNoneimplicitVkDebugMarkerObjectTagInfoEXTcoretagSize must be greater than 0
VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameterYNoneimplicitVkDebugReportCallbackCreateInfoEXTcoreflags must be a valid combination of VkDebugReportFlagBitsEXT values
VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameterYNoneimplicitVkDebugReportCallbackCreateInfoEXTcorepfnCallback must be a valid PFN_vkDebugReportCallbackEXT value
VUID-VkDebugReportCallbackCreateInfoEXT-sType-sTypeYNoneimplicitVkDebugReportCallbackCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
VUID-VkDebugUtilsLabelEXT-pLabelName-parameterYNoneimplicitVkDebugUtilsLabelEXTcorepLabelName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsLabelEXT-pNext-pNextYNoneimplicitVkDebugUtilsLabelEXTcorepNext must be NULL
VUID-VkDebugUtilsLabelEXT-sType-sTypeYNoneimplicitVkDebugUtilsLabelEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmaskYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcoreflags must be 0
VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcoreIf cmdBufLabelCount is not 0, pCmdBufLabels must be a valid pointer to an array of cmdBufLabelCount valid VkDebugUtilsLabelEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessage-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcorepMessage must be a null-terminated UTF-8 string
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameterNNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcoreIf pMessageIdName is not NULL, pMessageIdName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNextYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcorepNext must be NULL or a pointer to a valid instance of VkDeviceAddressBindingCallbackDataEXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcoreIf objectCount is not 0, pObjects must be a valid pointer to an array of objectCount valid VkDebugUtilsObjectNameInfoEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcoreIf queueLabelCount is not 0, pQueueLabels must be a valid pointer to an array of queueLabelCount valid VkDebugUtilsLabelEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sTypeYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-uniqueYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTcoreflags must be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTcoremessageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmaskYNegativeDebugExtensions.DebugUtilsParameterFlagsimplicitVkDebugUtilsMessengerCreateInfoEXTcoremessageSeverity must not be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTcoremessageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmaskYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTcoremessageType must not be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914NNoneexplicitVkDebugUtilsMessengerCreateInfoEXTcorepfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT
VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTcorepfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value
VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589YNoneexplicitVkDebugUtilsObjectNameInfoEXTcoreIf objectType is VK_OBJECT_TYPE_UNKNOWN, objectHandle must not be VK_NULL_HANDLE
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590YNegativeDebugExtensions.DebugUtilsName, NegativeDebugExtensions.SetDebugUtilsObjectDestroyedHandleexplicitVkDebugUtilsObjectNameInfoEXTcoreIf objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-parameterYNoneimplicitVkDebugUtilsObjectNameInfoEXTcoreobjectType must be a valid VkObjectType value
VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameterNNoneimplicitVkDebugUtilsObjectNameInfoEXTcoreIf pObjectName is not NULL, pObjectName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsObjectNameInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsObjectNameInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910YNoneexplicitVkDebugUtilsObjectTagInfoEXTcoreobjectHandle must be a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table
VUID-VkDebugUtilsObjectTagInfoEXT-objectType-01908YNoneexplicitVkDebugUtilsObjectTagInfoEXTcoreobjectType must not be VK_OBJECT_TYPE_UNKNOWN
VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameterYNoneimplicitVkDebugUtilsObjectTagInfoEXTcoreobjectType must be a valid VkObjectType value
VUID-VkDebugUtilsObjectTagInfoEXT-pNext-pNextYNoneimplicitVkDebugUtilsObjectTagInfoEXTcorepNext must be NULL
VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameterYNoneimplicitVkDebugUtilsObjectTagInfoEXTcorepTag must be a valid pointer to an array of tagSize bytes
VUID-VkDebugUtilsObjectTagInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsObjectTagInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylengthYNoneimplicitVkDebugUtilsObjectTagInfoEXTcoretagSize must be greater than 0
VUID-VkDecompressMemoryRegionNV-decompressedSize-07689NNoneexplicitVkDecompressMemoryRegionNVcoreThe decompressedSize must be large enough to hold the decompressed data based on the decompressionMethod
VUID-VkDecompressMemoryRegionNV-decompressionMethod-07690NNoneexplicitVkDecompressMemoryRegionNVcoreThe decompressionMethod must have a single bit set
VUID-VkDecompressMemoryRegionNV-decompressionMethod-09395NNoneexplicitVkDecompressMemoryRegionNVcoreIf decompressionMethod is VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV, then decompressedSize must be less than or equal to 65536 bytes
VUID-VkDecompressMemoryRegionNV-decompressionMethod-parameterYNoneimplicitVkDecompressMemoryRegionNVcoredecompressionMethod must be a valid combination of VkMemoryDecompressionMethodFlagBitsNV values
VUID-VkDecompressMemoryRegionNV-decompressionMethod-requiredbitmaskYNoneimplicitVkDecompressMemoryRegionNVcoredecompressionMethod must not be 0
VUID-VkDecompressMemoryRegionNV-dstAddress-07687NNoneexplicitVkDecompressMemoryRegionNVcoreThe dstAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionNV-dstAddress-07688NNoneexplicitVkDecompressMemoryRegionNVcoreThe memory in range dstAddress and dstAddress + decompressedSize must be valid and bound to a VkDeviceMemory object
VUID-VkDecompressMemoryRegionNV-srcAddress-07685NNoneexplicitVkDecompressMemoryRegionNVcoreThe srcAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionNV-srcAddress-07686NNoneexplicitVkDecompressMemoryRegionNVcoreThe memory in range srcAddress and srcAddress + compressedSize must be valid and bound to a VkDeviceMemory object
VUID-VkDecompressMemoryRegionNV-srcAddress-07691NNoneexplicitVkDecompressMemoryRegionNVcoreThe srcAddress to srcAddress + compressedSize region must not overlap with the dstAddress and dstAddress + decompressedSize region
VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sTypeYNoneimplicitVkDedicatedAllocationBufferCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994NNoneexplicitVkDedicatedAllocationImageCreateInfoNVcoreIf dedicatedAllocation is VK_TRUE, VkImageCreateInfo::flags must not include VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
VUID-VkDedicatedAllocationImageCreateInfoNV-sType-sTypeYNoneimplicitVkDedicatedAllocationImageCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreIf buffer is not VK_NULL_HANDLE, the buffer must have been created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreIf buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreIf buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameterYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparentYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreBoth of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00649NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreAt least one of image and buffer must be VK_NULL_HANDLE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreIf image is not VK_NULL_HANDLE, the image must have been created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreIf image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreIf image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameterYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNVcoreIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sTypeYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNVcoresType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
VUID-VkDependencyInfo-dependencyFlags-parameterYNoneimplicitVkDependencyInfocoredependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkDependencyInfo-pBufferMemoryBarriers-parameterYNoneimplicitVkDependencyInfocoreIf bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2 structures
VUID-VkDependencyInfo-pImageMemoryBarriers-parameterYNoneimplicitVkDependencyInfocoreIf imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2 structures
VUID-VkDependencyInfo-pMemoryBarriers-parameterYNoneimplicitVkDependencyInfocoreIf memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2 structures
VUID-VkDependencyInfo-pNext-pNextYNoneimplicitVkDependencyInfocorepNext must be NULL
VUID-VkDependencyInfo-sType-sTypeYNoneimplicitVkDependencyInfocoresType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO
VUID-VkDepthBiasInfoEXT-depthBiasClamp-08950YNegativeDynamicState.SetDepthBias2EXTDepthBiasClampDisabledexplicitVkDepthBiasInfoEXTcoreIf the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0
VUID-VkDepthBiasInfoEXT-pNext-pNextYNoneimplicitVkDepthBiasInfoEXTcorepNext must be NULL or a pointer to a valid instance of VkDepthBiasRepresentationInfoEXT
VUID-VkDepthBiasInfoEXT-sType-sTypeYNoneimplicitVkDepthBiasInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT
VUID-VkDepthBiasInfoEXT-sType-uniqueYNoneimplicitVkDepthBiasInfoEXTcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDepthBiasRepresentationInfoEXT-depthBiasExact-08949YNegativeDynamicState.SetDepthBias2EXTDepthBiasControlFeaturesDisabled, NegativePipeline.RasterStateWithDepthBiasRepresentationInfoexplicitVkDepthBiasRepresentationInfoEXTcoreIf the depthBiasExact feature is not enabled, depthBiasExact must be VK_FALSE
VUID-VkDepthBiasRepresentationInfoEXT-depthBiasRepresentation-parameterYNoneimplicitVkDepthBiasRepresentationInfoEXTcoredepthBiasRepresentation must be a valid VkDepthBiasRepresentationEXT value
VUID-VkDepthBiasRepresentationInfoEXT-floatRepresentation-08948YNegativeDynamicState.SetDepthBias2EXTDepthBiasControlFeaturesDisabled, NegativePipeline.RasterStateWithDepthBiasRepresentationInfoexplicitVkDepthBiasRepresentationInfoEXTcoreIf the floatRepresentation feature is not enabled, depthBiasRepresentation must not be VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT
VUID-VkDepthBiasRepresentationInfoEXT-leastRepresentableValueForceUnormRepresentation-08947YNegativeDynamicState.SetDepthBias2EXTDepthBiasControlFeaturesDisabled, NegativePipeline.RasterStateWithDepthBiasRepresentationInfoexplicitVkDepthBiasRepresentationInfoEXTcoreIf the leastRepresentableValueForceUnormRepresentation feature is not enabled, depthBiasRepresentation must not be VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT
VUID-VkDepthBiasRepresentationInfoEXT-sType-sTypeYNoneimplicitVkDepthBiasRepresentationInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT
VUID-VkDescriptorAddressInfoEXT-None-08044YNegativeDescriptorBuffer.VariousexplicitVkDescriptorAddressInfoEXTcoreIf address is not zero, address must be a valid device address at an offset within a VkBuffer
VUID-VkDescriptorAddressInfoEXT-address-08043YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorAddressInfoEXTcoreIf the nullDescriptor feature is not enabled, address must not be zero
VUID-VkDescriptorAddressInfoEXT-format-parameterNNoneimplicitVkDescriptorAddressInfoEXTcoreformat must be a valid VkFormat value
VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938YNoneexplicitVkDescriptorAddressInfoEXTcoreIf address is zero, range must be VK_WHOLE_SIZE
VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorAddressInfoEXTcoreIf address is not zero, range must not be VK_WHOLE_SIZE
VUID-VkDescriptorAddressInfoEXT-pNext-pNextNNoneimplicitVkDescriptorAddressInfoEXTcorepNext must be NULL
VUID-VkDescriptorAddressInfoEXT-range-08045YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorAddressInfoEXTcorerange must be less than or equal to the size of the buffer containing address minus the offset of address from the base address of the buffer
VUID-VkDescriptorAddressInfoEXT-range-08940YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorAddressInfoEXTcorerange must not be zero
VUID-VkDescriptorAddressInfoEXT-sType-sTypeNNoneimplicitVkDescriptorAddressInfoEXTcoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
VUID-VkDescriptorBufferBindingInfoEXT-None-09499NNoneexplicitVkDescriptorBufferBindingInfoEXTcoreIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage: must be a valid combination of VkBufferUsageFlagBits values
VUID-VkDescriptorBufferBindingInfoEXT-None-09500NNoneexplicitVkDescriptorBufferBindingInfoEXTcoreIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage: must not be 0
VUID-VkDescriptorBufferBindingInfoEXT-address-08057YNegativeDescriptorBuffer.BindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXTcoreaddress must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment
VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056YNegativeDescriptorBuffer.BindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXTcoreIf VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors is VK_FALSE, and usage contains VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, then the pNext chain must include a VkDescriptorBufferBindingPushDescriptorBufferHandleEXT structure
VUID-VkDescriptorBufferBindingInfoEXT-pNext-pNextYNoneimplicitVkDescriptorBufferBindingInfoEXTcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferUsageFlags2CreateInfoKHR or VkDescriptorBufferBindingPushDescriptorBufferHandleEXT
VUID-VkDescriptorBufferBindingInfoEXT-sType-sTypeYNoneimplicitVkDescriptorBufferBindingInfoEXTcoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
VUID-VkDescriptorBufferBindingInfoEXT-sType-uniqueYNoneimplicitVkDescriptorBufferBindingInfoEXTcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorBufferBindingInfoEXT-usage-08122YNegativeDescriptorBuffer.BindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXTcoreIf usage includes VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
VUID-VkDescriptorBufferBindingInfoEXT-usage-08123YNegativeDescriptorBuffer.BindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXTcoreIf usage includes VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-VkDescriptorBufferBindingInfoEXT-usage-08124YNegativeDescriptorBuffer.BindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXTcoreIf usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, address must be an address within a valid buffer that was created with VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-buffer-parameterYNoneimplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXTcorebuffer must be a valid VkBuffer handle
VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-bufferlessPushDescriptors-08059YNegativeDescriptorBuffer.BindingAndOffsetsexplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXTcoreVkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE
VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-sType-sTypeYNoneimplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXTcoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
VUID-VkDescriptorBufferInfo-buffer-02998YNegativeDescriptors.DynamicOffsetWithNullBuffer, NegativeDescriptors.NullDescriptorsDisabledexplicitVkDescriptorBufferInfocoreIf the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE
VUID-VkDescriptorBufferInfo-buffer-02999YNegativeDescriptors.NullDescriptorsEnabledexplicitVkDescriptorBufferInfocoreIf buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE
VUID-VkDescriptorBufferInfo-buffer-parameterYNoneimplicitVkDescriptorBufferInfocoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkDescriptorBufferInfo-offset-00340YNegativePushDescriptor.DSBufferInfoexplicitVkDescriptorBufferInfocoreoffset must be less than the size of buffer
VUID-VkDescriptorBufferInfo-range-00341YNegativePushDescriptor.DSBufferInfoexplicitVkDescriptorBufferInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be greater than 0
VUID-VkDescriptorBufferInfo-range-00342YNegativePushDescriptor.DSBufferInfoexplicitVkDescriptorBufferInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset
VUID-VkDescriptorDataEXT-type-08030YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and pUniformBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkDescriptorDataEXT-type-08031YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and pStorageBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkDescriptorDataEXT-type-08032YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and pUniformTexelBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkDescriptorDataEXT-type-08033YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and pStorageTexelBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkDescriptorDataEXT-type-08034YNegativeDescriptorBuffer.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and the nullDescriptor feature is not enabled, pCombinedImageSampler->imageView must not be VK_NULL_HANDLE
VUID-VkDescriptorDataEXT-type-08035YNegativeDescriptorBuffer.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and the nullDescriptor feature is not enabled, pSampledImage must not be NULL and pSampledImage->imageView must not be VK_NULL_HANDLE
VUID-VkDescriptorDataEXT-type-08036YNegativeDescriptorBuffer.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and the nullDescriptor feature is not enabled, pStorageImage must not be NULL and pStorageImage->imageView must not be VK_NULL_HANDLE
VUID-VkDescriptorDataEXT-type-08037YNegativeDescriptorBuffer.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and the nullDescriptor feature is not enabled, pUniformTexelBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08038YNegativeDescriptorBuffer.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and the nullDescriptor feature is not enabled, pStorageTexelBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08039YNegativeDescriptorBuffer.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and the nullDescriptor feature is not enabled, pUniformBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08040YNegativeDescriptorBuffer.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and the nullDescriptor feature is not enabled, pStorageBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08041YNegativeDescriptorBuffer.DescriptorGetInfoASexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0
VUID-VkDescriptorDataEXT-type-08042YNegativeDescriptorBuffer.DescriptorGetInfoRtxNVexplicitVkDescriptorDataEXTcoreIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0
VUID-VkDescriptorGetInfoEXT-pCombinedImageSampler-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler member of data must be a valid pointer to a valid VkDescriptorImageInfo structure
VUID-VkDescriptorGetInfoEXT-pInputAttachmentImage-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the pInputAttachmentImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure
VUID-VkDescriptorGetInfoEXT-pNext-pNextYNoneimplicitVkDescriptorGetInfoEXTcorepNext must be NULL
VUID-VkDescriptorGetInfoEXT-pSampledImage-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and if pSampledImage is not NULL, the pSampledImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure
VUID-VkDescriptorGetInfoEXT-pSampler-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_SAMPLER, the pSampler member of data must be a valid pointer to a valid VkSampler handle
VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and if pStorageBuffer is not NULL, the pStorageBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure
VUID-VkDescriptorGetInfoEXT-pStorageImage-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and if pStorageImage is not NULL, the pStorageImage member of data must be a valid pointer to a valid VkDescriptorImageInfo structure
VUID-VkDescriptorGetInfoEXT-pStorageTexelBuffer-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and if pStorageTexelBuffer is not NULL, the pStorageTexelBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure
VUID-VkDescriptorGetInfoEXT-pUniformBuffer-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and if pUniformBuffer is not NULL, the pUniformBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure
VUID-VkDescriptorGetInfoEXT-pUniformTexelBuffer-parameterNNoneimplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and if pUniformTexelBuffer is not NULL, the pUniformTexelBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure
VUID-VkDescriptorGetInfoEXT-sType-sTypeYNoneimplicitVkDescriptorGetInfoEXTcoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
VUID-VkDescriptorGetInfoEXT-type-08018YNegativeDescriptorBuffer.DescriptorGetInfoBasicexplicitVkDescriptorGetInfoEXTcoretype must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkDescriptorGetInfoEXT-type-08019YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler->sampler member of data must be a VkSampler created on device
VUID-VkDescriptorGetInfoEXT-type-08020YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE
VUID-VkDescriptorGetInfoEXT-type-08021YNegativeDescriptorBuffer.NullHandle, NegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the pInputAttachmentImage->imageView member of data must be a VkImageView created on device
VUID-VkDescriptorGetInfoEXT-type-08022YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and if pSampledImage is not NULL, the pSampledImage->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE
VUID-VkDescriptorGetInfoEXT-type-08023YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and if pStorageImage is not NULL, the pStorageImage->imageView member of data must be a VkImageView created on device, or VK_NULL_HANDLE
VUID-VkDescriptorGetInfoEXT-type-08024YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, pUniformTexelBuffer is not NULL and pUniformTexelBuffer->address is not zero, pUniformTexelBuffer->address must be an address within a VkBuffer created on device
VUID-VkDescriptorGetInfoEXT-type-08025YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, pStorageTexelBuffer is not NULL and pStorageTexelBuffer->address is not zero, pStorageTexelBuffer->address must be an address within a VkBuffer created on device
VUID-VkDescriptorGetInfoEXT-type-08026YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, pUniformBuffer is not NULL and pUniformBuffer->address is not zero, pUniformBuffer->address must be an address within a VkBuffer created on device
VUID-VkDescriptorGetInfoEXT-type-08027YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, pStorageBuffer is not NULL and pStorageBuffer->address is not zero, pStorageBuffer->address must be an address within a VkBuffer created on device
VUID-VkDescriptorGetInfoEXT-type-08028NNoneexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR and accelerationStructure is not 0, accelerationStructure must contain the address of a VkAccelerationStructureKHR created on device
VUID-VkDescriptorGetInfoEXT-type-08029YNegativeDescriptorBuffer.VariousexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV and accelerationStructure is not 0, accelerationStructure must contain the handle of a VkAccelerationStructureNV created on device, returned by vkGetAccelerationStructureHandleNV
VUID-VkDescriptorGetInfoEXT-type-09427NNoneexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, pUniformBuffer is not NULL , the number of texel buffer elements given by (⌊pUniformBuffer->range / (texel block size)⌋ × (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for pUniformBuffer->format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements
VUID-VkDescriptorGetInfoEXT-type-09428NNoneexplicitVkDescriptorGetInfoEXTcoreIf type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, pStorageBuffer is not NULL , the number of texel buffer elements given by (⌊pStorageBuffer->range / (texel block size)⌋ × (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for pStorageBuffer->format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements
VUID-VkDescriptorGetInfoEXT-type-parameterYNoneimplicitVkDescriptorGetInfoEXTcoretype must be a valid VkDescriptorType value
VUID-VkDescriptorImageInfo-commonparentNNoneimplicitVkDescriptorImageInfocoreBoth of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDescriptorImageInfo-descriptorType-06713YNegativeImage.Image2DViewOf3DFeatureexplicitVkDescriptorImageInfocoreIf the image2DViewOf3D feature is not enabled or descriptorType is not VK_DESCRIPTOR_TYPE_STORAGE_IMAGE then imageView must not be a 2D view created from a 3D image
VUID-VkDescriptorImageInfo-descriptorType-06714YNegativeDescriptors.Maint1BindingSliceOf3DImage, NegativeImage.Image2DViewOf3DFeatureexplicitVkDescriptorImageInfocoreIf the sampler2DViewOf3D feature is not enabled or descriptorType is not VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER then imageView must not be a 2D view created from a 3D image
VUID-VkDescriptorImageInfo-imageLayout-00344YNegativeDescriptors.ImageDescriptorLayoutMismatch, NegativePushDescriptor.ImageLayoutexplicitVkDescriptorImageInfocoreimageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed as defined by the image layout matching rules
VUID-VkDescriptorImageInfo-imageLayout-09425YNoneexplicitVkDescriptorImageInfocoreIf imageLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, then the aspectMask used to create imageView must not include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkDescriptorImageInfo-imageLayout-09426YNoneexplicitVkDescriptorImageInfocoreIf imageLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, then the aspectMask used to create imageView must not include VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkDescriptorImageInfo-imageView-01976YNegativeDescriptors.InputAttachmentDepthStencilAspectexplicitVkDescriptorImageInfocoreIf imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both
VUID-VkDescriptorImageInfo-imageView-06712YNegativeImage.Image2DViewOf3DexplicitVkDescriptorImageInfocoreimageView must not be a 2D array image view created from a 3D image
VUID-VkDescriptorImageInfo-imageView-07795YNegativeDescriptors.InvalidImageInfoDescriptorTypeexplicitVkDescriptorImageInfocoreIf imageView is a 2D view created from a 3D image, then descriptorType must be VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VUID-VkDescriptorImageInfo-imageView-07796YNegativeDescriptors.Maint1BindingSliceOf3DImage, NegativeImage.Image2DViewOf3DexplicitVkDescriptorImageInfocoreIf imageView is a 2D view created from a 3D image, then the image must have been created with VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set
VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450YVkPortabilitySubsetTest.UpdateDescriptorSetsexplicitVkDescriptorImageInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::mutableComparisonSamplers is VK_FALSE, then sampler must have been created with VkSamplerCreateInfo::compareEnable set to VK_FALSE
VUID-VkDescriptorImageInfo-sampler-01564YNoneexplicitVkDescriptorImageInfocoreIf sampler is used and the VkFormat of the image is a multi-planar format, the image must have been created with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the aspectMask of the imageView must be a valid multi-planar aspect mask bit
VUID-VkDescriptorPoolCreateInfo-descriptorPoolOverallocation-09227YNegativeDescriptors.CreateDescriptorPoolexplicitVkDescriptorPoolCreateInfocoreIf the descriptorPoolOverallocation feature is not enabled, or flags does not have VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV set, maxSets must be greater than 0
VUID-VkDescriptorPoolCreateInfo-flags-04607YNegativeDescriptors.CreateDescriptorPoolFlagsexplicitVkDescriptorPoolCreateInfocoreIf flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT bit set, then the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT bit must not be set
VUID-VkDescriptorPoolCreateInfo-flags-04609YNegativeDescriptors.MissingMutableDescriptorTypeFeatureexplicitVkDescriptorPoolCreateInfocoreIf flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT bit set, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled
VUID-VkDescriptorPoolCreateInfo-flags-09228NNoneexplicitVkDescriptorPoolCreateInfocoreIf flags has the VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV or VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV bits set, then descriptorPoolOverallocation must be enabled
VUID-VkDescriptorPoolCreateInfo-flags-parameterYNoneimplicitVkDescriptorPoolCreateInfocoreflags must be a valid combination of VkDescriptorPoolCreateFlagBits values
VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608YNegativeDescriptors.MissingMutableDescriptorTypeFeatureexplicitVkDescriptorPoolCreateInfocoreIf VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pPoolSizes must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkDescriptorPoolCreateInfo-pNext-pNextYNoneimplicitVkDescriptorPoolCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDescriptorPoolInlineUniformBlockCreateInfo or VkMutableDescriptorTypeCreateInfoEXT
VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787YNegativeDescriptors.MutableDescriptorPoolsWithPartialOverlapexplicitVkDescriptorPoolCreateInfocoreIf pPoolSizes contains a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, any other VK_DESCRIPTOR_TYPE_MUTABLE_EXT element in pPoolSizes must not have sets of supported descriptor types which partially overlap
VUID-VkDescriptorPoolCreateInfo-pPoolSizes-09424YNegativeDescriptors.MaxInlineUniformBlockBindingsexplicitVkDescriptorPoolCreateInfocoreIf pPoolSizes contains a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, the pNext chain must include a VkDescriptorPoolInlineUniformBlockCreateInfo structure whose maxInlineUniformBlockBindings member is not zero
VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameterYNoneimplicitVkDescriptorPoolCreateInfocoreIf poolSizeCount is not 0, pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures
VUID-VkDescriptorPoolCreateInfo-sType-sTypeYNoneimplicitVkDescriptorPoolCreateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
VUID-VkDescriptorPoolCreateInfo-sType-uniqueYNoneimplicitVkDescriptorPoolCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorPoolInlineUniformBlockCreateInfo-sType-sTypeYNoneimplicitVkDescriptorPoolInlineUniformBlockCreateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO
VUID-VkDescriptorPoolSize-descriptorCount-00302YNegativeDescriptors.CreateDescriptorPoolexplicitVkDescriptorPoolSizecoredescriptorCount must be greater than 0
VUID-VkDescriptorPoolSize-type-02218YNegativeDescriptors.InlineUniformBlockEXTexplicitVkDescriptorPoolSizecoreIf type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4
VUID-VkDescriptorPoolSize-type-parameterYNoneimplicitVkDescriptorPoolSizecoretype must be a valid VkDescriptorType value
VUID-VkDescriptorSetAllocateInfo-apiVersion-07895YNegativeDescriptors.AllocDescriptorFromEmptyPoolexplicitVkDescriptorSetAllocateInfocoreIf the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool
VUID-VkDescriptorSetAllocateInfo-apiVersion-07896YNegativeDescriptors.AllocDescriptorFromEmptyPoolexplicitVkDescriptorSetAllocateInfocoreIf the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts
VUID-VkDescriptorSetAllocateInfo-commonparentYNoneimplicitVkDescriptorSetAllocateInfocoreBoth of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameterYNoneimplicitVkDescriptorSetAllocateInfocoredescriptorPool must be a valid VkDescriptorPool handle
VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylengthNNoneimplicitVkDescriptorSetAllocateInfocoredescriptorSetCount must be greater than 0
VUID-VkDescriptorSetAllocateInfo-pNext-pNextYNoneimplicitVkDescriptorSetAllocateInfocorepNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308YNegativePushDescriptor.AllocateSetexplicitVkDescriptorSetAllocateInfocoreEach element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044YNegativeDescriptorIndexing.SetLayoutexplicitVkDescriptorSetAllocateInfocoreIf any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610YNegativeDescriptors.CreateDescriptorPoolAllocateFlagsexplicitVkDescriptorSetAllocateInfocoreIf any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-08009YNegativeDescriptorBuffer.Binding, NegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetAllocateInfocoreEach element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380NNoneexplicitVkDescriptorSetAllocateInfocoreIf pSetLayouts[i] was created with an element of pBindingFlags that includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, and VkDescriptorSetVariableDescriptorCountAllocateInfo is included in the pNext chain, and VkDescriptorSetVariableDescriptorCountAllocateInfo::descriptorSetCount is not zero, then VkDescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts[i] must be less than or equal to VkDescriptorSetLayoutBinding::descriptorCount for the corresponding binding used to create pSetLayouts[i]
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameterYNoneimplicitVkDescriptorSetAllocateInfocorepSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles
VUID-VkDescriptorSetAllocateInfo-sType-sTypeYNoneimplicitVkDescriptorSetAllocateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
VUID-VkDescriptorSetAllocateInfo-sType-uniqueYNoneimplicitVkDescriptorSetAllocateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetBindingReferenceVALVE-descriptorSetLayout-parameterYNoneimplicitVkDescriptorSetBindingReferenceVALVEcoredescriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-VkDescriptorSetBindingReferenceVALVE-pNext-pNextYNoneimplicitVkDescriptorSetBindingReferenceVALVEcorepNext must be NULL
VUID-VkDescriptorSetBindingReferenceVALVE-sType-sTypeYNoneimplicitVkDescriptorSetBindingReferenceVALVEcoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
VUID-VkDescriptorSetLayoutBinding-descriptorCount-09465YNegativeDescriptors.DescriptorSetLayoutStageFlagsexplicitVkDescriptorSetLayoutBindingcoreIf descriptorCount is not 0, stageFlags must be VK_SHADER_STAGE_ALL or a valid combination of other VkShaderStageFlagBits values
VUID-VkDescriptorSetLayoutBinding-descriptorType-00282YNegativeDescriptors.DescriptorSetLayoutImmutableSamplers, NegativeDescriptors.DescriptorSetLayoutNullImmutableSamplersexplicitVkDescriptorSetLayoutBindingcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must be a valid pointer to an array of descriptorCount valid VkSampler handles
VUID-VkDescriptorSetLayoutBinding-descriptorType-01510YNegativeDescriptors.DescriptorSetLayoutMiscexplicitVkDescriptorSetLayoutBindingcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and descriptorCount is not 0, then stageFlags must be 0 or VK_SHADER_STAGE_FRAGMENT_BIT
VUID-VkDescriptorSetLayoutBinding-descriptorType-02209YNegativeDescriptors.InlineUniformBlockEXTexplicitVkDescriptorSetLayoutBindingcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4
VUID-VkDescriptorSetLayoutBinding-descriptorType-04604YNegativeDescriptors.InlineUniformBlockEXTFeatureexplicitVkDescriptorSetLayoutBindingcoreIf the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkDescriptorSetLayoutBinding-descriptorType-04605YNegativeDescriptors.DescriptorSetLayoutBindingexplicitVkDescriptorSetLayoutBindingcoreIf descriptorType is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL
VUID-VkDescriptorSetLayoutBinding-descriptorType-08004YNegativeDescriptorBuffer.SetLayoutInlineUniformBlockEXT, NegativeDescriptors.InlineUniformBlockEXTexplicitVkDescriptorSetLayoutBindingcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK and VkDescriptorSetLayoutCreateInfo::flags does not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxInlineUniformBlockSize
VUID-VkDescriptorSetLayoutBinding-descriptorType-parameterYNoneimplicitVkDescriptorSetLayoutBindingcoredescriptorType must be a valid VkDescriptorType value
VUID-VkDescriptorSetLayoutBinding-flags-08005YNegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutBindingcoreIf VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLER
VUID-VkDescriptorSetLayoutBinding-flags-08006YNegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutBindingcoreIf VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorCount must less than or equal to 1
VUID-VkDescriptorSetLayoutBinding-flags-08007YNegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutBindingcoreIf VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, and descriptorCount is equal to 1, pImmutableSamplers must not be NULL
VUID-VkDescriptorSetLayoutBinding-flags-09466NNoneexplicitVkDescriptorSetLayoutBindingcoreIf VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV, and descriptorCount is not 0, then stageFlags must be a valid combination of VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, VK_SHADER_STAGE_FRAGMENT_BIT and VK_SHADER_STAGE_COMPUTE_BIT values
VUID-VkDescriptorSetLayoutBinding-pImmutableSamplers-04009YNegativeSampler.CustomBorderColorexplicitVkDescriptorSetLayoutBindingcoreThe sampler objects indicated by pImmutableSamplers must not have a borderColor with one of the values VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-None-03011YNegativeDescriptors.InvalidDescriptorSetLayoutFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreAll bindings with descriptor type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-bindingCount-03002YNegativeDescriptorIndexing.SetLayoutexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570YNegativeRayTracing.DescriptorBindingUpdateAfterBindWithAccelerationStructureexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceAccelerationStructureFeaturesKHR::descriptorBindingAccelerationStructureUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR or VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211YNegativeDescriptors.InvalidDescriptorSetLayoutInlineUniformBlockFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceInlineUniformBlockFeatures::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingPartiallyBound-03013YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingSampledImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageImageUpdateAfterBind-03007YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageTexelBufferUpdateAfterBind-03010YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005YNegativeDescriptorIndexing.SetLayoutexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformTexelBufferUpdateAfterBind-03009YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUpdateUnusedWhilePending-03012YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003YNegativeDescriptors.IncompatibleDescriptorFlagsWithBindingFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf VkDescriptorSetLayoutCreateInfo::flags includes VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, or VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004YNegativeDescriptors.IncompatibleDescriptorFlagsWithBindingFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015YNegativeDescriptors.IncompatibleDescriptorFlagsWithBindingFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, that element's descriptorType must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-09379NNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then it must be the element with the highest binding number
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-parameterYNegativeDescriptorIndexing.SetLayoutimplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoreIf bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sTypeYNoneimplicitVkDescriptorSetLayoutBindingFlagsCreateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
VUID-VkDescriptorSetLayoutCreateInfo-binding-00279YNegativeDescriptors.DuplicateDescriptorBindingexplicitVkDescriptorSetLayoutCreateInfocoreIf the perStageDescriptorSet feature is not enabled, or flags does not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV, then the VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values
VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001YNegativeDescriptorIndexing.SetLayoutBindingsexplicitVkDescriptorSetLayoutCreateInfocoreIf any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, then all bindings must not have descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594YNegativeDescriptors.DescriptorSetLayoutBinding, NegativeDescriptors.MutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfocoreIf a binding has a descriptorType value of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL
VUID-VkDescriptorSetLayoutCreateInfo-flags-00280YNegativePushDescriptor.SetLayoutexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkDescriptorSetLayoutCreateInfo-flags-00281YNegativePushDescriptor.SetLayoutexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then the total number of elements of all bindings must be less than or equal to VkPhysicalDevicePushDescriptorPropertiesKHR::maxPushDescriptors
VUID-VkDescriptorSetLayoutCreateInfo-flags-02208YNoneexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkDescriptorSetLayoutCreateInfo-flags-03000YNegativeDescriptorIndexing.SetLayoutexplicitVkDescriptorSetLayoutCreateInfocoreIf any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, flags must include VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
VUID-VkDescriptorSetLayoutCreateInfo-flags-04590YNegativePushDescriptor.SetLayoutMutableDescriptorexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT
VUID-VkDescriptorSetLayoutCreateInfo-flags-04591YNegativePushDescriptor.SetLayoutMutableDescriptorexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkDescriptorSetLayoutCreateInfo-flags-04592YNegativePushDescriptor.SetLayoutMutableDescriptorexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT
VUID-VkDescriptorSetLayoutCreateInfo-flags-04596YNegativeDescriptors.MutableDescriptorSetLayoutMissingFeatureexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled
VUID-VkDescriptorSetLayoutCreateInfo-flags-08000YNegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkDescriptorSetLayoutCreateInfo-flags-08001YNegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, flags must also contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-VkDescriptorSetLayoutCreateInfo-flags-08002YNegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
VUID-VkDescriptorSetLayoutCreateInfo-flags-08003YNegativeDescriptorBuffer.SetLayoutMutableDescriptorEXTexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, then flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE
VUID-VkDescriptorSetLayoutCreateInfo-flags-09463NNoneexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV, then perStageDescriptorSet must be enabled
VUID-VkDescriptorSetLayoutCreateInfo-flags-09464NNoneexplicitVkDescriptorSetLayoutCreateInfocoreIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV, then there must not be any two elements of the pBindings array with the same VkDescriptorSetLayoutBinding::binding value and their VkDescriptorSetLayoutBinding::stageFlags containing the same bit
VUID-VkDescriptorSetLayoutCreateInfo-flags-parameterYNoneimplicitVkDescriptorSetLayoutCreateInfocoreflags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values
VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595YNegativeDescriptors.MutableDescriptorSetLayoutMissingFeatureexplicitVkDescriptorSetLayoutCreateInfocoreIf VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pBindings must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkDescriptorSetLayoutCreateInfo-pBindings-07303YNegativeDescriptors.MutableDescriptorSetLayout, NegativePushDescriptor.SetLayoutMutableDescriptorexplicitVkDescriptorSetLayoutCreateInfocoreIf any element pBindings[i] has a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then a VkMutableDescriptorTypeCreateInfoEXT must be present in the pNext chain, and mutableDescriptorTypeListCount must be greater than i
VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameterYNoneimplicitVkDescriptorSetLayoutCreateInfocoreIf bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures
VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNextYNegativeDescriptors.MutableDescriptorSetLayoutMissingFeatureimplicitVkDescriptorSetLayoutCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDescriptorSetLayoutBindingFlagsCreateInfo or VkMutableDescriptorTypeCreateInfoEXT
VUID-VkDescriptorSetLayoutCreateInfo-sType-sTypeYNoneimplicitVkDescriptorSetLayoutCreateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
VUID-VkDescriptorSetLayoutCreateInfo-sType-uniqueYNoneimplicitVkDescriptorSetLayoutCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-pNext-pNextNNoneimplicitVkDescriptorSetLayoutHostMappingInfoVALVEcorepNext must be NULL
VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-sType-sTypeYNoneimplicitVkDescriptorSetLayoutHostMappingInfoVALVEcoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
VUID-VkDescriptorSetLayoutSupport-pNext-pNextYNoneimplicitVkDescriptorSetLayoutSupportcorepNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport
VUID-VkDescriptorSetLayoutSupport-sType-sTypeYNoneimplicitVkDescriptorSetLayoutSupportcoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
VUID-VkDescriptorSetLayoutSupport-sType-uniqueYNoneimplicitVkDescriptorSetLayoutSupportcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045YNegativeDescriptors.IncompatibleDescriptorFlagsWithBindingFlagsexplicitVkDescriptorSetVariableDescriptorCountAllocateInfocoreIf descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameterYNoneimplicitVkDescriptorSetVariableDescriptorCountAllocateInfocoreIf descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046YNegativeDescriptorIndexing.SetLayoutexplicitVkDescriptorSetVariableDescriptorCountAllocateInfocoreIf VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable-sized descriptor binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sTypeYNoneimplicitVkDescriptorSetVariableDescriptorCountAllocateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sTypeYNoneimplicitVkDescriptorSetVariableDescriptorCountLayoutSupportcoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
VUID-VkDescriptorUpdateTemplateCreateInfo-commonparentYNoneimplicitVkDescriptorUpdateTemplateCreateInfocoreBoth of descriptorSetLayout, and pipelineLayout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylengthYNoneimplicitVkDescriptorUpdateTemplateCreateInfocoredescriptorUpdateEntryCount must be greater than 0
VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmaskYNoneimplicitVkDescriptorUpdateTemplateCreateInfocoreflags must be 0
VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameterYNoneimplicitVkDescriptorUpdateTemplateCreateInfocorepDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures
VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNextYNoneimplicitVkDescriptorUpdateTemplateCreateInfocorepNext must be NULL
VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sTypeYNoneimplicitVkDescriptorUpdateTemplateCreateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350YNegativePushDescriptor.CreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfocoreIf templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351YNegativePushDescriptor.CreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfocoreIf templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352YNegativePushDescriptor.CreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfocoreIf templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353YNegativePushDescriptor.CreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfocoreIf templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-04615YNegativeDescriptors.DescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfocoreIf templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must not contain a binding with type VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameterYNoneimplicitVkDescriptorUpdateTemplateCreateInfocoretemplateType must be a valid VkDescriptorUpdateTemplateType value
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226YNegativePushDescriptor.DescriptorUpdateTemplateEntryWithInlineUniformBlockexplicitVkDescriptorUpdateTemplateEntrycoreIf descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227YNegativePushDescriptor.DescriptorUpdateTemplateEntryWithInlineUniformBlockexplicitVkDescriptorUpdateTemplateEntrycoreIf descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameterYNoneimplicitVkDescriptorUpdateTemplateEntrycoredescriptorType must be a valid VkDescriptorType value
VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355NNoneexplicitVkDescriptorUpdateTemplateEntrycoredstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates
VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354NNoneexplicitVkDescriptorUpdateTemplateEntrycoredstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors
VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameterYNoneimplicitVkDeviceAddressBindingCallbackDataEXTcorebindingType must be a valid VkDeviceAddressBindingTypeEXT value
VUID-VkDeviceAddressBindingCallbackDataEXT-flags-parameterYNoneimplicitVkDeviceAddressBindingCallbackDataEXTcoreflags must be a valid combination of VkDeviceAddressBindingFlagBitsEXT values
VUID-VkDeviceAddressBindingCallbackDataEXT-sType-sTypeYNoneimplicitVkDeviceAddressBindingCallbackDataEXTcoresType must be VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameterYNoneimplicitVkDeviceBufferMemoryRequirementscorepCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure
VUID-VkDeviceBufferMemoryRequirements-pNext-pNextYNoneimplicitVkDeviceBufferMemoryRequirementscorepNext must be NULL
VUID-VkDeviceBufferMemoryRequirements-sType-sTypeYNoneimplicitVkDeviceBufferMemoryRequirementscoresType must be VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS
VUID-VkDeviceCreateInfo-None-04896YVkLayerTest.InvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfocoreIf sparseImageInt64Atomics is enabled, shaderImageInt64Atomics must be enabled
VUID-VkDeviceCreateInfo-None-04897YVkLayerTest.InvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfocoreIf sparseImageFloat32Atomics is enabled, shaderImageFloat32Atomics must be enabled
VUID-VkDeviceCreateInfo-None-04898YVkLayerTest.InvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfocoreIf sparseImageFloat32AtomicAdd is enabled, shaderImageFloat32AtomicAdd must be enabled
VUID-VkDeviceCreateInfo-None-08095YNegativeDescriptorBuffer.ExtensionCombinationexplicitVkDeviceCreateInfocoreIf descriptorBuffer is enabled, ppEnabledExtensionNames must not contain VK_AMD_shader_fragment_mask
VUID-VkDeviceCreateInfo-flags-zerobitmaskYNoneimplicitVkDeviceCreateInfocoreflags must be 0
VUID-VkDeviceCreateInfo-fragmentDensityMap-04481YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfocoreIf the fragmentDensityMap feature is enabled, the pipelineFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-fragmentDensityMap-04482YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfocoreIf the fragmentDensityMap feature is enabled, the primitiveFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-fragmentDensityMap-04483YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfocoreIf the fragmentDensityMap feature is enabled, the attachmentFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-pEnabledFeatures-parameterNNoneimplicitVkDeviceCreateInfocoreIf pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure
VUID-VkDeviceCreateInfo-pNext-00373YNoneexplicitVkDeviceCreateInfocoreIf the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL
VUID-VkDeviceCreateInfo-pNext-02829YVkLayerTest.Features12Features13AndpNextexplicitVkDeviceCreateInfocoreIf the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then it must not include a VkPhysicalDevice16BitStorageFeatures, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceShaderDrawParametersFeatures structure
VUID-VkDeviceCreateInfo-pNext-02830YVkLayerTest.Features12Features13AndpNextexplicitVkDeviceCreateInfocoreIf the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then it must not include a VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceBufferDeviceAddressFeatures, or VkPhysicalDeviceVulkanMemoryModelFeatures structure
VUID-VkDeviceCreateInfo-pNext-04748YVkLayerTest.Features12AndppEnabledExtensionNamesexplicitVkDeviceCreateInfocoreIf the pNext chain includes a VkPhysicalDeviceVulkan12Features structure and VkPhysicalDeviceVulkan12Features::bufferDeviceAddress is VK_TRUE, ppEnabledExtensionNames must not contain VK_EXT_buffer_device_address
VUID-VkDeviceCreateInfo-pNext-06532YVkLayerTest.Features12Features13AndpNextexplicitVkDeviceCreateInfocoreIf the pNext chain includes a VkPhysicalDeviceVulkan13Features structure, then it must not include a VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceMaintenance4Features, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure
VUID-VkDeviceCreateInfo-pNext-09396NNoneexplicitVkDeviceCreateInfocoreIf the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure, then it must not be included in the pNext chain of any of the VkDeviceQueueCreateInfo structures in pQueueCreateInfos.
VUID-VkDeviceCreateInfo-pNext-09397NNoneexplicitVkDeviceCreateInfocoreIf the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure then VkPhysicalDeviceSchedulingControlsPropertiesARM::schedulingControlsFlags must contain VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM.
VUID-VkDeviceCreateInfo-pNext-pNextYVkLayerTest.DeviceFeature2AndVertexAttributeDivisorExtensionUnenabled, VkLayerTest.RequiredPromotedFeaturesExtensionsimplicitVkDeviceCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkDeviceQueueShaderCoreControlCreateInfoARM, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCudaKernelLaunchFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostImageCopyFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5FeaturesKHR, VkPhysicalDeviceMaintenance6FeaturesKHR, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerStageDescriptorSetFeaturesNV, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, VkPhysicalDeviceRenderPassStripedFeaturesARM, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSchedulingControlsFeaturesARM, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVideoMaintenance1FeaturesKHR, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
VUID-VkDeviceCreateInfo-pProperties-04451YNegativePortabilitySubset.DeviceexplicitVkDeviceCreateInfocoreIf the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include "VK_KHR_portability_subset"
VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654YNegativeDeviceQueue.MismatchedGlobalPriorityexplicitVkDeviceCreateInfocoreIf multiple elements of pQueueCreateInfos share the same queueFamilyIndex, then all of such elements must have the same global priority level, which can be specified explicitly by the including a VkDeviceQueueGlobalPriorityCreateInfoKHR structure in the pNext chain, or by the implicit default value
VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755YNegativeDeviceQueue.QueuesSameQueueFamilyexplicitVkDeviceCreateInfocoreIf multiple elements of pQueueCreateInfos share the same queueFamilyIndex, the sum of their queueCount members must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]
VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameterYNoneimplicitVkDeviceCreateInfocorepQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374YVkLayerTest.Maintenance1AndNegativeViewportexplicitVkDeviceCreateInfocoreppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840YVkLayerTest.ApiVersion1_1AndNegativeViewportexplicitVkDeviceCreateInfocoreIf VkPhysicalDeviceProperties::apiVersion advertises Vulkan 1.1 or later, ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831YVkLayerTest.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfocoreIf ppEnabledExtensionNames contains "VK_KHR_draw_indirect_count" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::drawIndirectCount must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02832YVkLayerTest.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfocoreIf ppEnabledExtensionNames contains "VK_KHR_sampler_mirror_clamp_to_edge" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02833YVkLayerTest.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfocoreIf ppEnabledExtensionNames contains "VK_EXT_descriptor_indexing" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02834YVkLayerTest.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfocoreIf ppEnabledExtensionNames contains "VK_EXT_sampler_filter_minmax" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerFilterMinmax must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02835YVkLayerTest.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfocoreIf ppEnabledExtensionNames contains "VK_EXT_shader_viewport_index_layer" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndex and VkPhysicalDeviceVulkan12Features::shaderOutputLayer must both be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-03328YNoneexplicitVkDeviceCreateInfocoreppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476YVkLayerTest.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfocoreIf ppEnabledExtensionNames contains "VK_KHR_shader_draw_parameters" and the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then VkPhysicalDeviceVulkan11Features::shaderDrawParameters must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameterYNoneimplicitVkDeviceCreateInfocoreIf enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameterYNoneimplicitVkDeviceCreateInfocoreIf enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylengthYNoneimplicitVkDeviceCreateInfocorequeueCreateInfoCount must be greater than 0
VUID-VkDeviceCreateInfo-queueFamilyIndex-02802YNegativeDeviceQueue.FamilyIndexUnique, NegativeDeviceQueue.MismatchedGlobalPriority, NegativeProtectedMemory.UniqueQueueDeviceCreationBothProtectedexplicitVkDeviceCreateInfocoreThe queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos , except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable
VUID-VkDeviceCreateInfo-sType-sTypeYNoneimplicitVkDeviceCreateInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
VUID-VkDeviceCreateInfo-sType-uniqueYNoneimplicitVkDeviceCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDeviceDeviceMemoryReportCreateInfoEXT or VkDevicePrivateDataCreateInfo
VUID-VkDeviceCreateInfo-shadingRateImage-04478YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfocoreIf the shadingRateImage feature is enabled, the pipelineFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-shadingRateImage-04479YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfocoreIf the shadingRateImage feature is enabled, the primitiveFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-shadingRateImage-04480YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfocoreIf the shadingRateImage feature is enabled, the attachmentFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975YVkLayerTest.InvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfocoreIf sparseImageFloat32AtomicMinMax is enabled, shaderImageFloat32AtomicMinMax must be enabled
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXTcoreflags must be 0
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameterYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXTcorepUserData must be a pointer value
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameterYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXTcorepfnUserCallback must be a valid PFN_vkDeviceMemoryReportCallbackEXT value
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-sType-sTypeYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameterYNoneimplicitVkDeviceDiagnosticsConfigCreateInfoNVcoreflags must be a valid combination of VkDeviceDiagnosticsConfigFlagBitsNV values
VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sTypeYNoneimplicitVkDeviceDiagnosticsConfigCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
VUID-VkDeviceEventInfoEXT-deviceEvent-parameterYNoneimplicitVkDeviceEventInfoEXTcoredeviceEvent must be a valid VkDeviceEventTypeEXT value
VUID-VkDeviceEventInfoEXT-pNext-pNextYNoneimplicitVkDeviceEventInfoEXTcorepNext must be NULL
VUID-VkDeviceEventInfoEXT-sType-sTypeYNoneimplicitVkDeviceEventInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
VUID-VkDeviceFaultAddressInfoEXT-addressType-parameterNNoneimplicitVkDeviceFaultAddressInfoEXTcoreaddressType must be a valid VkDeviceFaultAddressTypeEXT value
VUID-VkDeviceFaultCountsEXT-pNext-pNextNNoneimplicitVkDeviceFaultCountsEXTcorepNext must be NULL
VUID-VkDeviceFaultCountsEXT-sType-sTypeYNoneimplicitVkDeviceFaultCountsEXTcoresType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
VUID-VkDeviceFaultInfoEXT-pAddressInfos-parameterNNoneimplicitVkDeviceFaultInfoEXTcoreIf pAddressInfos is not NULL, pAddressInfos must be a valid pointer to a VkDeviceFaultAddressInfoEXT structure
VUID-VkDeviceFaultInfoEXT-pNext-pNextNNoneimplicitVkDeviceFaultInfoEXTcorepNext must be NULL
VUID-VkDeviceFaultInfoEXT-pVendorInfos-parameterNNoneimplicitVkDeviceFaultInfoEXTcoreIf pVendorInfos is not NULL, pVendorInfos must be a valid pointer to a VkDeviceFaultVendorInfoEXT structure
VUID-VkDeviceFaultInfoEXT-sType-sTypeYNoneimplicitVkDeviceFaultInfoEXTcoresType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerSize-07340NNoneexplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXTcoreheaderSize must be 56
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-07341NNoneexplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXTcoreheaderVersion must be VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-parameterNNoneimplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXTcoreheaderVersion must be a valid VkDeviceFaultVendorBinaryHeaderVersionEXT value
VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119NNoneexplicitVkDeviceGroupBindSparseInfocoreEach memory allocation bound in this batch must have allocated an instance for memoryDeviceIndex
VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118NNoneexplicitVkDeviceGroupBindSparseInfocoreresourceDeviceIndex and memoryDeviceIndex must both be valid device indices
VUID-VkDeviceGroupBindSparseInfo-sType-sTypeYNoneimplicitVkDeviceGroupBindSparseInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00106YNegativeWsi.DeviceMaskexplicitVkDeviceGroupCommandBufferBeginInfocoredeviceMask must be a valid device mask value
VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00107YNegativeWsi.DeviceMaskexplicitVkDeviceGroupCommandBufferBeginInfocoredeviceMask must not be zero
VUID-VkDeviceGroupCommandBufferBeginInfo-sType-sTypeYNoneimplicitVkDeviceGroupCommandBufferBeginInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375YVkLayerTest.DuplicatePhysicalDevicesexplicitVkDeviceGroupDeviceCreateInfocoreEach element of pPhysicalDevices must be unique
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376NNoneexplicitVkDeviceGroupDeviceCreateInfocoreAll elements of pPhysicalDevices must be in the same device group as enumerated by vkEnumeratePhysicalDeviceGroups
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameterYNoneimplicitVkDeviceGroupDeviceCreateInfocoreIf physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles
VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377NNoneexplicitVkDeviceGroupDeviceCreateInfocoreIf physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices
VUID-VkDeviceGroupDeviceCreateInfo-sType-sTypeYNoneimplicitVkDeviceGroupDeviceCreateInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNextYNoneimplicitVkDeviceGroupPresentCapabilitiesKHRcorepNext must be NULL
VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sTypeYNoneimplicitVkDeviceGroupPresentCapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
VUID-VkDeviceGroupPresentInfoKHR-mode-01298NNoneexplicitVkDeviceGroupPresentInfoKHRcoreIf mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero
VUID-VkDeviceGroupPresentInfoKHR-mode-01299NNoneexplicitVkDeviceGroupPresentInfoKHRcoreIf mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHR::presentMask
VUID-VkDeviceGroupPresentInfoKHR-mode-01300NNoneexplicitVkDeviceGroupPresentInfoKHRcoreIf mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then each element of pDeviceMasks must have a value for which all set bits are set in one of the elements of VkDeviceGroupPresentCapabilitiesKHR::presentMask
VUID-VkDeviceGroupPresentInfoKHR-mode-01301NNoneexplicitVkDeviceGroupPresentInfoKHRcoreIf mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then for each bit set in each element of pDeviceMasks, the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero
VUID-VkDeviceGroupPresentInfoKHR-mode-01303NNoneexplicitVkDeviceGroupPresentInfoKHRcoremode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes
VUID-VkDeviceGroupPresentInfoKHR-mode-parameterYNoneimplicitVkDeviceGroupPresentInfoKHRcoremode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302NNoneexplicitVkDeviceGroupPresentInfoKHRcoreThe value of each element of pDeviceMasks must be equal to the device mask passed in VkAcquireNextImageInfoKHR::deviceMask when the image index was last acquired
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameterYNoneimplicitVkDeviceGroupPresentInfoKHRcoreIf swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values
VUID-VkDeviceGroupPresentInfoKHR-sType-sTypeYNoneimplicitVkDeviceGroupPresentInfoKHRcoresType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297NNoneexplicitVkDeviceGroupPresentInfoKHRcoreswapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905YNegativeWsi.DeviceMaskexplicitVkDeviceGroupRenderPassBeginInfocoredeviceMask must be a valid device mask value
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906YNegativeWsi.DeviceMaskexplicitVkDeviceGroupRenderPassBeginInfocoredeviceMask must not be zero
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907YNegativeWsi.DeviceMaskexplicitVkDeviceGroupRenderPassBeginInfocoredeviceMask must be a subset of the command buffer's initial device mask
VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908YNegativeWsi.DeviceMaskexplicitVkDeviceGroupRenderPassBeginInfocoredeviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkDeviceGroupRenderPassBeginInfo-extent-08998YNegativeDynamicRendering.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfocoreThe extent.width member of any element of pDeviceRenderAreas must be greater than 0
VUID-VkDeviceGroupRenderPassBeginInfo-extent-08999YNegativeDynamicRendering.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfocoreThe extent.height member of any element of pDeviceRenderAreas must be greater than 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166YNegativeDynamicRendering.DeviceGroupRenderArea, NegativeRenderPass.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfocoreThe offset.x member of any element of pDeviceRenderAreas must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167YNegativeDynamicRendering.DeviceGroupRenderArea, NegativeRenderPass.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfocoreThe offset.y member of any element of pDeviceRenderAreas must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168YNegativeDynamicRendering.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfocoreThe sum of the offset.x and extent.width members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferWidth
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06169YNegativeDynamicRendering.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfocoreThe sum of the offset.y and extent.height members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferHeight
VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameterYNoneimplicitVkDeviceGroupRenderPassBeginInfocoreIf deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures
VUID-VkDeviceGroupRenderPassBeginInfo-sType-sTypeYNoneimplicitVkDeviceGroupRenderPassBeginInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083YNegativeWsi.DeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfocorecommandBufferCount must equal VkSubmitInfo::commandBufferCount
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-00086YNegativeWsi.DeviceMaskexplicitVkDeviceGroupSubmitInfocoreAll elements of pCommandBufferDeviceMasks must be valid device masks
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameterYNoneimplicitVkDeviceGroupSubmitInfocoreIf commandBufferCount is not 0, pCommandBufferDeviceMasks must be a valid pointer to an array of commandBufferCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-pSignalSemaphoreDeviceIndices-parameterYNoneimplicitVkDeviceGroupSubmitInfocoreIf signalSemaphoreCount is not 0, pSignalSemaphoreDeviceIndices must be a valid pointer to an array of signalSemaphoreCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085NNoneexplicitVkDeviceGroupSubmitInfocoreAll elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameterYNoneimplicitVkDeviceGroupSubmitInfocoreIf waitSemaphoreCount is not 0, pWaitSemaphoreDeviceIndices must be a valid pointer to an array of waitSemaphoreCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-sType-sTypeYNoneimplicitVkDeviceGroupSubmitInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084YNegativeWsi.DeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfocoresignalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount
VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082YNegativeWsi.DeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfocorewaitSemaphoreCount must equal VkSubmitInfo::waitSemaphoreCount
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameterYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHRcoremodes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmaskYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHRcoremodes must not be 0
VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06416YNegativeMemory.DeviceImageMemoryRequirementsSwapchainexplicitVkDeviceImageMemoryRequirementscoreThe pCreateInfo->pNext chain must not contain a VkImageSwapchainCreateInfoKHR structure
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06417YNegativeMemory.DeviceImageMemoryRequirementsDisjointexplicitVkDeviceImageMemoryRequirementscoreIf pCreateInfo->format specifies a multi-planar format and pCreateInfo->flags has VK_IMAGE_CREATE_DISJOINT_BIT set then planeAspect must not be VK_IMAGE_ASPECT_NONE_KHR
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06419YNegativeMemory.DeviceImageMemoryRequirementsDisjointexplicitVkDeviceImageMemoryRequirementscoreIf pCreateInfo->flags has VK_IMAGE_CREATE_DISJOINT_BIT set and if the pCreateInfo->tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask bit
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06420NNoneexplicitVkDeviceImageMemoryRequirementscoreIf pCreateInfo->tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776YNegativeImageDrm.DeviceImageMemoryRequirementsexplicitVkDeviceImageMemoryRequirementscoreThe pCreateInfo->pNext chain must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameterYNoneimplicitVkDeviceImageMemoryRequirementscorepCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-VkDeviceImageMemoryRequirements-pNext-06996YNegativeAndroidHardwareBuffer.DeviceImageMemoryReqexplicitVkDeviceImageMemoryRequirementscoreApplications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatANDROID structure with non-zero externalFormat
VUID-VkDeviceImageMemoryRequirements-pNext-08962NNoneexplicitVkDeviceImageMemoryRequirementscoreApplications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatQNX structure with non-zero externalFormat
VUID-VkDeviceImageMemoryRequirements-pNext-pNextYNoneimplicitVkDeviceImageMemoryRequirementscorepNext must be NULL
VUID-VkDeviceImageMemoryRequirements-planeAspect-parameterYNoneimplicitVkDeviceImageMemoryRequirementscoreIf planeAspect is not 0, planeAspect must be a valid VkImageAspectFlagBits value
VUID-VkDeviceImageMemoryRequirements-sType-sTypeYNoneimplicitVkDeviceImageMemoryRequirementscoresType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS
VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717YNegativeImage.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRcoreThe arrayLayer member of pSubresource must be less than the arrayLayers specified in pCreateInfo
VUID-VkDeviceImageSubresourceInfoKHR-aspectMask-00997YNegativeImage.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRcoreThe aspectMask member of pSubresource must only have a single bit set
VUID-VkDeviceImageSubresourceInfoKHR-format-04462YNoneexplicitVkDeviceImageSubresourceInfoKHRcoreIf format of the pCreateInfo has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT
VUID-VkDeviceImageSubresourceInfoKHR-format-04463YNoneexplicitVkDeviceImageSubresourceInfoKHRcoreIf format of the pCreateInfo has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkDeviceImageSubresourceInfoKHR-format-04464YNegativeImage.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRcoreIf format of the pCreateInfo does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkDeviceImageSubresourceInfoKHR-format-08886YNegativeImage.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRcoreIf format of the image is a color format that is not a multi-planar image format, and tiling of the pCreateInfo is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716YNegativeImage.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRcoreThe mipLevel member of pSubresource must be less than the mipLevels specified in pCreateInfo
VUID-VkDeviceImageSubresourceInfoKHR-pCreateInfo-parameterYNoneimplicitVkDeviceImageSubresourceInfoKHRcorepCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-VkDeviceImageSubresourceInfoKHR-pNext-pNextYNoneimplicitVkDeviceImageSubresourceInfoKHRcorepNext must be NULL
VUID-VkDeviceImageSubresourceInfoKHR-pSubresource-parameterYNoneimplicitVkDeviceImageSubresourceInfoKHRcorepSubresource must be a valid pointer to a valid VkImageSubresource2KHR structure
VUID-VkDeviceImageSubresourceInfoKHR-sType-sTypeYNoneimplicitVkDeviceImageSubresourceInfoKHRcoresType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717YNoneexplicitVkDeviceImageSubresourceInfoKHRcoreIf the tiling of the pCreateInfo is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask bit
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336YNegativeMemory.BufferDeviceAddressKHR, NegativeMemory.BufferDeviceAddressKHRDisabledexplicitVkDeviceMemoryOpaqueCaptureAddressInfocorememory must have been allocated with VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameterYNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfocorememory must be a valid VkDeviceMemory handle
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNextYNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfocorepNext must be NULL
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sTypeYNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameterYNoneimplicitVkDeviceMemoryOverallocationCreateInfoAMDcoreoverallocationBehavior must be a valid VkMemoryOverallocationBehaviorAMD value
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sTypeYNoneimplicitVkDeviceMemoryOverallocationCreateInfoAMDcoresType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNextNNoneimplicitVkDeviceMemoryReportCallbackDataEXTcorepNext must be NULL
VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sTypeNNoneimplicitVkDeviceMemoryReportCallbackDataEXTcoresType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
VUID-VkDevicePrivateDataCreateInfo-sType-sTypeYNoneimplicitVkDevicePrivateDataCreateInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-flags-02861YNegativeProtectedMemory.GetDeviceQueueexplicitVkDeviceQueueCreateInfocoreIf the protectedMemory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set
VUID-VkDeviceQueueCreateInfo-flags-06449YNegativeProtectedMemory.GetDeviceQueue, NegativeProtectedMemory.QueueexplicitVkDeviceQueueCreateInfocoreIf flags includes VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, queueFamilyIndex must be the index of a queue family that includes the VK_QUEUE_PROTECTED_BIT capability
VUID-VkDeviceQueueCreateInfo-flags-parameterYNoneimplicitVkDeviceQueueCreateInfocoreflags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueCreateInfo-pNext-09398NNoneexplicitVkDeviceQueueCreateInfocoreIf the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure then VkPhysicalDeviceSchedulingControlsPropertiesARM::schedulingControlsFlags must contain VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM.
VUID-VkDeviceQueueCreateInfo-pNext-pNextYNoneimplicitVkDeviceQueueCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoKHR or VkDeviceQueueShaderCoreControlCreateInfoARM
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383YNegativeDeviceQueue.QueuePrioritiesexplicitVkDeviceQueueCreateInfocoreEach element of pQueuePriorities must be between 0.0 and 1.0 inclusive
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameterYNoneimplicitVkDeviceQueueCreateInfocorepQueuePriorities must be a valid pointer to an array of queueCount float values
VUID-VkDeviceQueueCreateInfo-queueCount-00382YNegativeDeviceQueue.QueueCountexplicitVkDeviceQueueCreateInfocorequeueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]
VUID-VkDeviceQueueCreateInfo-queueCount-arraylengthYNoneimplicitVkDeviceQueueCreateInfocorequeueCount must be greater than 0
VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381YNegativeDeviceQueue.FamilyIndexexplicitVkDeviceQueueCreateInfocorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties
VUID-VkDeviceQueueCreateInfo-sType-sTypeYNoneimplicitVkDeviceQueueCreateInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-sType-uniqueYNoneimplicitVkDeviceQueueCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameterYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoKHRcoreglobalPriority must be a valid VkQueueGlobalPriorityKHR value
VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-sType-sTypeYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
VUID-VkDeviceQueueInfo2-flags-06225YNegativeProtectedMemory.GetDeviceQueueexplicitVkDeviceQueueInfo2coreflags must be equal to VkDeviceQueueCreateInfo::flags for a VkDeviceQueueCreateInfo structure for the queue family indicated by queueFamilyIndex when device was created
VUID-VkDeviceQueueInfo2-flags-parameterYNoneimplicitVkDeviceQueueInfo2coreflags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueInfo2-pNext-pNextYNoneimplicitVkDeviceQueueInfo2corepNext must be NULL
VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842YNegativeProtectedMemory.GetDeviceQueueexplicitVkDeviceQueueInfo2corequeueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure
VUID-VkDeviceQueueInfo2-queueIndex-01843YNegativeProtectedMemory.GetDeviceQueueexplicitVkDeviceQueueInfo2corequeueIndex must be less than VkDeviceQueueCreateInfo::queueCount for the corresponding queue family and flags indicated by queueFamilyIndex and flags when device was created
VUID-VkDeviceQueueInfo2-sType-sTypeYNoneimplicitVkDeviceQueueInfo2coresType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
VUID-VkDeviceQueueShaderCoreControlCreateInfoARM-sType-sTypeYNoneimplicitVkDeviceQueueShaderCoreControlCreateInfoARMcoresType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM
VUID-VkDeviceQueueShaderCoreControlCreateInfoARM-shaderCoreCount-09399NNoneexplicitVkDeviceQueueShaderCoreControlCreateInfoARMcoreshaderCoreCount must be greater than 0 and less than or equal to the total number of shader cores as reported via VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM::shaderCoreCount.
VUID-VkDirectDriverLoadingInfoLUNARG-flags-zerobitmaskYNoneimplicitVkDirectDriverLoadingInfoLUNARGcoreflags must be 0
VUID-VkDirectDriverLoadingInfoLUNARG-sType-sTypeYNoneimplicitVkDirectDriverLoadingInfoLUNARGcoresType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
VUID-VkDirectDriverLoadingListLUNARG-driverCount-arraylengthYNoneimplicitVkDirectDriverLoadingListLUNARGcoredriverCount must be greater than 0
VUID-VkDirectDriverLoadingListLUNARG-mode-parameterYNoneimplicitVkDirectDriverLoadingListLUNARGcoremode must be a valid VkDirectDriverLoadingModeLUNARG value
VUID-VkDirectDriverLoadingListLUNARG-pDrivers-parameterYNoneimplicitVkDirectDriverLoadingListLUNARGcorepDrivers must be a valid pointer to an array of driverCount valid VkDirectDriverLoadingInfoLUNARG structures
VUID-VkDirectDriverLoadingListLUNARG-sType-sTypeYNoneimplicitVkDirectDriverLoadingListLUNARGcoresType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117NNoneexplicitVkDirectFBSurfaceCreateInfoEXTcoredfb must point to a valid DirectFB IDirectFB
VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDirectFBSurfaceCreateInfoEXTcoreflags must be 0
VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkDirectFBSurfaceCreateInfoEXTcorepNext must be NULL
VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkDirectFBSurfaceCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118NNoneexplicitVkDirectFBSurfaceCreateInfoEXTcoresurface must point to a valid DirectFB IDirectFBSurface
VUID-VkDispatchGraphInfoAMDX-payloadCount-09171NNoneexplicitVkDispatchGraphInfoAMDXcorepayloadCount must be no greater than maxExecutionGraphShaderPayloadCount
VUID-VkDispatchIndirectCommand-x-00417YNegativeGpuAVIndirectBuffer.DispatchWorkgroupSize, NegativeGpuAVIndirectBuffer.DispatchWorkgroupSizeShaderObjectsexplicitVkDispatchIndirectCommandcorex must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-VkDispatchIndirectCommand-y-00418YNegativeGpuAVIndirectBuffer.DispatchWorkgroupSize, NegativeGpuAVIndirectBuffer.DispatchWorkgroupSizeShaderObjectsexplicitVkDispatchIndirectCommandcorey must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-VkDispatchIndirectCommand-z-00419YNegativeGpuAVIndirectBuffer.DispatchWorkgroupSize, NegativeGpuAVIndirectBuffer.DispatchWorkgroupSizeShaderObjectsexplicitVkDispatchIndirectCommandcorez must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-VkDisplayEventInfoEXT-displayEvent-parameterYNoneimplicitVkDisplayEventInfoEXTcoredisplayEvent must be a valid VkDisplayEventTypeEXT value
VUID-VkDisplayEventInfoEXT-pNext-pNextYNoneimplicitVkDisplayEventInfoEXTcorepNext must be NULL
VUID-VkDisplayEventInfoEXT-sType-sTypeYNoneimplicitVkDisplayEventInfoEXTcoresType must be VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkDisplayModeCreateInfoKHRcoreflags must be 0
VUID-VkDisplayModeCreateInfoKHR-pNext-pNextYNoneimplicitVkDisplayModeCreateInfoKHRcorepNext must be NULL
VUID-VkDisplayModeCreateInfoKHR-parameters-parameterNNoneimplicitVkDisplayModeCreateInfoKHRcoreparameters must be a valid VkDisplayModeParametersKHR structure
VUID-VkDisplayModeCreateInfoKHR-sType-sTypeYNoneimplicitVkDisplayModeCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
VUID-VkDisplayModeParametersKHR-height-01991YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplayModeParametersKHRcoreThe height member of visibleRegion must be greater than 0
VUID-VkDisplayModeParametersKHR-refreshRate-01992YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplayModeParametersKHRcorerefreshRate must be greater than 0
VUID-VkDisplayModeParametersKHR-width-01990YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplayModeParametersKHRcoreThe width member of visibleRegion must be greater than 0
VUID-VkDisplayModeProperties2KHR-pNext-pNextYNoneimplicitVkDisplayModeProperties2KHRcorepNext must be NULL
VUID-VkDisplayModeProperties2KHR-sType-sTypeYNoneimplicitVkDisplayModeProperties2KHRcoresType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
VUID-VkDisplayNativeHdrSurfaceCapabilitiesAMD-sType-sTypeYNoneimplicitVkDisplayNativeHdrSurfaceCapabilitiesAMDcoresType must be VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneCapabilities2KHRcorepNext must be NULL
VUID-VkDisplayPlaneCapabilities2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneCapabilities2KHRcoresType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
VUID-VkDisplayPlaneInfo2KHR-mode-parameterYNoneimplicitVkDisplayPlaneInfo2KHRcoremode must be a valid VkDisplayModeKHR handle
VUID-VkDisplayPlaneInfo2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneInfo2KHRcorepNext must be NULL
VUID-VkDisplayPlaneInfo2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneInfo2KHRcoresType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
VUID-VkDisplayPlaneProperties2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneProperties2KHRcorepNext must be NULL
VUID-VkDisplayPlaneProperties2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneProperties2KHRcoresType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
VUID-VkDisplayPowerInfoEXT-pNext-pNextYNoneimplicitVkDisplayPowerInfoEXTcorepNext must be NULL
VUID-VkDisplayPowerInfoEXT-powerState-parameterYNoneimplicitVkDisplayPowerInfoEXTcorepowerState must be a valid VkDisplayPowerStateEXT value
VUID-VkDisplayPowerInfoEXT-sType-sTypeYNoneimplicitVkDisplayPowerInfoEXTcoresType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
VUID-VkDisplayPresentInfoKHR-dstRect-01258NNoneexplicitVkDisplayPresentInfoKHRcoredstRect must specify a rectangular region that is a subset of the visibleRegion parameter of the display mode the swapchain being presented uses
VUID-VkDisplayPresentInfoKHR-persistentContent-01259NNoneexplicitVkDisplayPresentInfoKHRcoreIf the persistentContent member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display the present operation targets is VK_FALSE, then persistent must be VK_FALSE
VUID-VkDisplayPresentInfoKHR-sType-sTypeYNoneimplicitVkDisplayPresentInfoKHRcoresType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
VUID-VkDisplayPresentInfoKHR-srcRect-01257YNegativeWsi.DisplayPresentInfoSrcRectexplicitVkDisplayPresentInfoKHRcoresrcRect must specify a rectangular region that is a subset of the image being presented
VUID-VkDisplayProperties2KHR-pNext-pNextYNoneimplicitVkDisplayProperties2KHRcorepNext must be NULL
VUID-VkDisplayProperties2KHR-sType-sTypeYNoneimplicitVkDisplayProperties2KHRcoresType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHRcoreIf alphaMode is VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR then globalAlpha must be between 0 and 1, inclusive
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHRcorealphaMode must be one of the bits present in the supportedAlpha member of VkDisplayPlaneCapabilitiesKHR for the display plane corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHRcorealphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value
VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHRcoredisplayMode must be a valid VkDisplayModeKHR handle
VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkDisplaySurfaceCreateInfoKHRcoreflags must be 0
VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkDisplaySurfaceCreateInfoKHRcorepNext must be NULL
VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHRcoreplaneIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR
VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253NNoneexplicitVkDisplaySurfaceCreateInfoKHRcoreIf the planeReorderPossible member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display corresponding to displayMode is VK_TRUE then planeStackIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR; otherwise planeStackIndex must equal the currentStackIndex member of VkDisplayPlanePropertiesKHR returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR for the display plane corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkDisplaySurfaceCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
VUID-VkDisplaySurfaceCreateInfoKHR-transform-06740NNoneexplicitVkDisplaySurfaceCreateInfoKHRcoretransform must be one of the bits present in the supportedTransforms member of VkDisplayPropertiesKHR for the display corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHRcoretransform must be a valid VkSurfaceTransformFlagBitsKHR value
VUID-VkDisplaySurfaceCreateInfoKHR-width-01256YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHRcoreThe width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D
VUID-VkDrawIndexedIndirectCommand-None-00552NNoneexplicitVkDrawIndexedIndirectCommandcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-VkDrawIndexedIndirectCommand-None-09462NNoneexplicitVkDrawIndexedIndirectCommandcoreIf shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-VkDrawIndexedIndirectCommand-firstInstance-00554YNegativeGpuAVIndirectBuffer.FirstInstanceexplicitVkDrawIndexedIndirectCommandcoreIf the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0
VUID-VkDrawIndexedIndirectCommand-pNext-09461NNoneexplicitVkDrawIndexedIndirectCommandcoreIf the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798NNoneexplicitVkDrawIndexedIndirectCommandcoreIf 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 vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size
VUID-VkDrawIndirectCommand-None-00500NNoneexplicitVkDrawIndirectCommandcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-VkDrawIndirectCommand-None-09462NNoneexplicitVkDrawIndirectCommandcoreIf shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-VkDrawIndirectCommand-firstInstance-00501YNegativeGpuAVIndirectBuffer.FirstInstanceexplicitVkDrawIndirectCommandcoreIf the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0
VUID-VkDrawIndirectCommand-pNext-09461NNoneexplicitVkDrawIndirectCommandcoreIf the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07323YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07324YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07325YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07326YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07327YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07328YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07329YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount
VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175NNoneexplicitVkDrawMeshTasksIndirectCommandNVcoretaskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount
VUID-VkDrmFormatModifierPropertiesList2EXT-sType-sTypeYNoneimplicitVkDrmFormatModifierPropertiesList2EXTcoresType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
VUID-VkDrmFormatModifierPropertiesListEXT-sType-sTypeYNoneimplicitVkDrmFormatModifierPropertiesListEXTcoresType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
VUID-VkEventCreateInfo-flags-parameterYNoneimplicitVkEventCreateInfocoreflags must be a valid combination of VkEventCreateFlagBits values
VUID-VkEventCreateInfo-pNext-06790YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkEventCreateInfocoreIf the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT
VUID-VkEventCreateInfo-pNext-pNextYNoneimplicitVkEventCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalObjectCreateInfoEXT or VkImportMetalSharedEventInfoEXT
VUID-VkEventCreateInfo-sType-sTypeYNoneimplicitVkEventCreateInfocoresType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
VUID-VkEventCreateInfo-sType-uniqueYNoneimplicitVkEventCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkExecutionGraphPipelineCreateInfoAMDX-CoalescedInputCountAMDX-09137NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThere must be no two nodes in the pipeline that share the same name where one includes CoalescedInputCountAMDX and the other does not
VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09134NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThere must be no two nodes in the pipeline that share both the same shader name and index, as specified by VkPipelineShaderStageNodeCreateInfoAMDX
VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09135NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThere must be no two nodes in the pipeline that share the same shader name and have input payload declarations with different sizes
VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09136NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThere must be no two nodes in the pipeline that share the same name but have different execution models
VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09497NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkExecutionGraphPipelineCreateInfoAMDX-PayloadNodeNameAMDX-09139NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf an output payload declared in any shader in the pipeline has a PayloadNodeNameAMDX decoration with a Node Name that matches the shader name of any other node in the graph, the size of the output payload must match the size of the input payload in the matching node
VUID-VkExecutionGraphPipelineCreateInfoAMDX-StaticNumWorkgroupsAMDX-09138NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThere must be no two nodes in the pipeline that share the same name where one includes StaticNumWorkgroupsAMDX and the other does not
VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparentYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXcoreBoth of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03365NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03366NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03367NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03368NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03369NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03370NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03576NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-04945NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07984NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid execution graph VkPipeline handle
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07985NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07986NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines is not enabled, flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09008NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the pNext chain must include a pointer to a valid instance of VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline's metadata will be saved
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07987NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07988NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07990NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07991NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09130NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcorelayout must be consistent with the layout of the shaders specified in pStages
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09132NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThe number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-parameterYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXcorelayout must be a valid VkPipelineLayout handle
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09131NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09133NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf pLibraryInfo is not NULL, each element of pLibraryInfo->libraries must be either a compute pipeline or an execution graph pipeline
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-parameterYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pNext-pNextYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCompilerControlCreateInfoAMD or VkPipelineCreationFeedbackCreateInfo
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-09129NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThe shader code for the entry point identified by each element of pStages and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-parameterYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf stageCount is not 0, and pStages is not NULL, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pipelineCreationCacheControl-02875NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreIf the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-sTypeYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXcoresType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX
VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-uniqueYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkExecutionGraphPipelineCreateInfoAMDX-stage-09128NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXcoreThe stage member of any element of pStages must be VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkExecutionGraphPipelineScratchSizeAMDX-sType-sTypeYNoneimplicitVkExecutionGraphPipelineScratchSizeAMDXcoresType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX
VUID-VkExportFenceCreateInfo-handleTypes-01446YNegativeExternalMemorySync.FenceExportWithIncompatibleHandleType, NegativeExternalMemorySync.FenceExportWithUnsupportedHandleTypeexplicitVkExportFenceCreateInfocoreThe bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties
VUID-VkExportFenceCreateInfo-handleTypes-parameterYNoneimplicitVkExportFenceCreateInfocorehandleTypes must be a valid combination of VkExternalFenceHandleTypeFlagBits values
VUID-VkExportFenceCreateInfo-sType-sTypeYNoneimplicitVkExportFenceCreateInfocoresType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447NNoneexplicitVkExportFenceWin32HandleInfoKHRcoreIf VkExportFenceCreateInfo::handleTypes does not include VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, a VkExportFenceWin32HandleInfoKHR structure must not be included in the pNext chain of VkFenceCreateInfo
VUID-VkExportFenceWin32HandleInfoKHR-pAttributes-parameterNNoneimplicitVkExportFenceWin32HandleInfoKHRcoreIf pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportFenceWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportFenceWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
VUID-VkExportMemoryAllocateInfo-handleTypes-00656YNegativeExternalMemorySync.BufferMemoryWithIncompatibleHandleTypes, NegativeExternalMemorySync.BufferMemoryWithUnsupportedHandleType, NegativeExternalMemorySync.ImageMemoryWithIncompatibleHandleTypes, NegativeExternalMemorySync.ImageMemoryWithUnsupportedHandleTypeexplicitVkExportMemoryAllocateInfocoreThe bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkExportMemoryAllocateInfo-handleTypes-parameterYNoneimplicitVkExportMemoryAllocateInfocorehandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExportMemoryAllocateInfo-sType-sTypeYNoneimplicitVkExportMemoryAllocateInfocoresType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameterYNoneimplicitVkExportMemoryAllocateInfoNVcorehandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkExportMemoryAllocateInfoNV-sType-sTypeYNoneimplicitVkExportMemoryAllocateInfoNVcoresType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657NNoneexplicitVkExportMemoryWin32HandleInfoKHRcoreIf VkExportMemoryAllocateInfo::handleTypes does not include VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, a VkExportMemoryWin32HandleInfoKHR structure must not be included in the pNext chain of VkMemoryAllocateInfo
VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameterNNoneimplicitVkExportMemoryWin32HandleInfoKHRcoreIf pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportMemoryWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportMemoryWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameterNNoneimplicitVkExportMemoryWin32HandleInfoNVcoreIf pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportMemoryWin32HandleInfoNV-sType-sTypeYNoneimplicitVkExportMemoryWin32HandleInfoNVcoresType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
VUID-VkExportMetalBufferInfoEXT-memory-parameterYNoneimplicitVkExportMetalBufferInfoEXTcorememory must be a valid VkDeviceMemory handle
VUID-VkExportMetalBufferInfoEXT-sType-sTypeYNoneimplicitVkExportMetalBufferInfoEXTcoresType must be VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
VUID-VkExportMetalCommandQueueInfoEXT-queue-parameterYNoneimplicitVkExportMetalCommandQueueInfoEXTcorequeue must be a valid VkQueue handle
VUID-VkExportMetalCommandQueueInfoEXT-sType-sTypeYNoneimplicitVkExportMetalCommandQueueInfoEXTcoresType must be VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
VUID-VkExportMetalDeviceInfoEXT-sType-sTypeYNoneimplicitVkExportMetalDeviceInfoEXTcoresType must be VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
VUID-VkExportMetalIOSurfaceInfoEXT-image-parameterYNoneimplicitVkExportMetalIOSurfaceInfoEXTcoreimage must be a valid VkImage handle
VUID-VkExportMetalIOSurfaceInfoEXT-sType-sTypeYNoneimplicitVkExportMetalIOSurfaceInfoEXTcoresType must be VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
VUID-VkExportMetalObjectCreateInfoEXT-exportObjectType-parameterYNoneimplicitVkExportMetalObjectCreateInfoEXTcoreIf exportObjectType is not 0, exportObjectType must be a valid VkExportMetalObjectTypeFlagBitsEXT value
VUID-VkExportMetalObjectCreateInfoEXT-sType-sTypeYNoneimplicitVkExportMetalObjectCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
VUID-VkExportMetalObjectsInfoEXT-pNext-06791YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalDeviceInfoEXT structure, the VkInstance must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkInstanceCreateInfo structure in the vkCreateInstance command
VUID-VkExportMetalObjectsInfoEXT-pNext-06792YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalCommandQueueInfoEXT structure, the VkInstance must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkInstanceCreateInfo structure in the vkCreateInstance command
VUID-VkExportMetalObjectsInfoEXT-pNext-06793YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalBufferInfoEXT structure, the VkDeviceMemory in its memory member must have been allocated with VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkMemoryAllocateInfo structure in the vkAllocateMemory command
VUID-VkExportMetalObjectsInfoEXT-pNext-06794YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, exactly one of its image, imageView, or bufferView members must not be VK_NULL_HANDLE
VUID-VkExportMetalObjectsInfoEXT-pNext-06795YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its image member is not VK_NULL_HANDLE, the VkImage in its image member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageCreateInfo structure in the vkCreateImage command
VUID-VkExportMetalObjectsInfoEXT-pNext-06796YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its imageView member is not VK_NULL_HANDLE, the VkImageView in its imageView member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageViewCreateInfo structure in the vkCreateImageView command
VUID-VkExportMetalObjectsInfoEXT-pNext-06797YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, and its bufferView member is not VK_NULL_HANDLE, the VkBufferView in its bufferView member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkBufferViewCreateInfo structure in the vkCreateBufferView command
VUID-VkExportMetalObjectsInfoEXT-pNext-06798YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if either its image or imageView member is not VK_NULL_HANDLE, then plane must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkExportMetalObjectsInfoEXT-pNext-06799YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImage in its image member does not have a multi-planar format, then its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT
VUID-VkExportMetalObjectsInfoEXT-pNext-06800YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImage in its image member has a multi-planar format with only two planes, then its plane member must not be VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkExportMetalObjectsInfoEXT-pNext-06801YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImageView in its imageView member does not have a multi-planar format, then its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT
VUID-VkExportMetalObjectsInfoEXT-pNext-06802YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalTextureInfoEXT structure, and if the VkImageView in its imageView member has a multi-planar format with only two planes, then its plane member must not be VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkExportMetalObjectsInfoEXT-pNext-06803YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalIOSurfaceInfoEXT structure, the VkImage in its image member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkImageCreateInfo structure in the vkCreateImage command
VUID-VkExportMetalObjectsInfoEXT-pNext-06804YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, exactly one of its semaphore or event members must not be VK_NULL_HANDLE
VUID-VkExportMetalObjectsInfoEXT-pNext-06805YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, and its semaphore member is not VK_NULL_HANDLE, the VkSemaphore in its semaphore member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkSemaphoreCreateInfo structure in the vkCreateSemaphore command
VUID-VkExportMetalObjectsInfoEXT-pNext-06806YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTcoreIf the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, and its event member is not VK_NULL_HANDLE, the VkEvent in its event member must have been created with VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT in the exportObjectType member of a VkExportMetalObjectCreateInfoEXT structure in the pNext chain of the VkEventCreateInfo structure in the vkCreateEvent command
VUID-VkExportMetalObjectsInfoEXT-pNext-pNextYNoneimplicitVkExportMetalObjectsInfoEXTcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalBufferInfoEXT, VkExportMetalCommandQueueInfoEXT, VkExportMetalDeviceInfoEXT, VkExportMetalIOSurfaceInfoEXT, VkExportMetalSharedEventInfoEXT, or VkExportMetalTextureInfoEXT
VUID-VkExportMetalObjectsInfoEXT-sType-sTypeYNoneimplicitVkExportMetalObjectsInfoEXTcoresType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
VUID-VkExportMetalObjectsInfoEXT-sType-uniqueYNoneimplicitVkExportMetalObjectsInfoEXTcoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalBufferInfoEXT, VkExportMetalCommandQueueInfoEXT, VkExportMetalIOSurfaceInfoEXT, VkExportMetalSharedEventInfoEXT, or VkExportMetalTextureInfoEXT
VUID-VkExportMetalSharedEventInfoEXT-commonparentYNoneimplicitVkExportMetalSharedEventInfoEXTcoreBoth of event, and semaphore that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkExportMetalSharedEventInfoEXT-event-parameterYNoneimplicitVkExportMetalSharedEventInfoEXTcoreIf event is not VK_NULL_HANDLE, event must be a valid VkEvent handle
VUID-VkExportMetalSharedEventInfoEXT-sType-sTypeYNoneimplicitVkExportMetalSharedEventInfoEXTcoresType must be VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
VUID-VkExportMetalSharedEventInfoEXT-semaphore-parameterYNoneimplicitVkExportMetalSharedEventInfoEXTcoreIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-VkExportMetalTextureInfoEXT-bufferView-parameterYNoneimplicitVkExportMetalTextureInfoEXTcoreIf bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle
VUID-VkExportMetalTextureInfoEXT-commonparentYNoneimplicitVkExportMetalTextureInfoEXTcoreEach of bufferView, image, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkExportMetalTextureInfoEXT-image-parameterYNoneimplicitVkExportMetalTextureInfoEXTcoreIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkExportMetalTextureInfoEXT-imageView-parameterYNoneimplicitVkExportMetalTextureInfoEXTcoreIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkExportMetalTextureInfoEXT-plane-parameterYNoneimplicitVkExportMetalTextureInfoEXTcoreplane must be a valid VkImageAspectFlagBits value
VUID-VkExportMetalTextureInfoEXT-sType-sTypeYNoneimplicitVkExportMetalTextureInfoEXTcoresType must be VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
VUID-VkExportSemaphoreCreateInfo-handleTypes-01124YNegativeExternalMemorySync.SemaphoreExportWithIncompatibleHandleType, NegativeExternalMemorySync.SemaphoreExportWithUnsupportedHandleTypeexplicitVkExportSemaphoreCreateInfocoreThe bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties
VUID-VkExportSemaphoreCreateInfo-handleTypes-parameterYNoneimplicitVkExportSemaphoreCreateInfocorehandleTypes must be a valid combination of VkExternalSemaphoreHandleTypeFlagBits values
VUID-VkExportSemaphoreCreateInfo-sType-sTypeYNoneimplicitVkExportSemaphoreCreateInfocoresType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125NNoneexplicitVkExportSemaphoreWin32HandleInfoKHRcoreIf VkExportSemaphoreCreateInfo::handleTypes does not include VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VkExportSemaphoreWin32HandleInfoKHR must not be included in the pNext chain of VkSemaphoreCreateInfo
VUID-VkExportSemaphoreWin32HandleInfoKHR-pAttributes-parameterNNoneimplicitVkExportSemaphoreWin32HandleInfoKHRcoreIf pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportSemaphoreWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportSemaphoreWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
VUID-VkExternalBufferProperties-pNext-pNextYNoneimplicitVkExternalBufferPropertiescorepNext must be NULL
VUID-VkExternalBufferProperties-sType-sTypeYNoneimplicitVkExternalBufferPropertiescoresType must be VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
VUID-VkExternalFenceProperties-pNext-pNextYNoneimplicitVkExternalFencePropertiescorepNext must be NULL
VUID-VkExternalFenceProperties-sType-sTypeYNoneimplicitVkExternalFencePropertiescoresType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
VUID-VkExternalFormatANDROID-externalFormat-01894YNegativeAndroidExternalResolve.Framebuffer, NegativeAndroidExternalResolve.ImagelessFramebuffer, NegativeAndroidHardwareBuffer.ImageCreateexplicitVkExternalFormatANDROIDcoreexternalFormat must be 0 or a value returned in the externalFormat member of VkAndroidHardwareBufferFormatPropertiesANDROID by an earlier call to vkGetAndroidHardwareBufferPropertiesANDROID
VUID-VkExternalFormatANDROID-sType-sTypeYNoneimplicitVkExternalFormatANDROIDcoresType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
VUID-VkExternalFormatQNX-externalFormat-08956NNoneexplicitVkExternalFormatQNXcoreexternalFormat must be 0 or a value returned in the externalFormat member of VkScreenBufferFormatPropertiesQNX by an earlier call to vkGetScreenBufferPropertiesQNX
VUID-VkExternalFormatQNX-sType-sTypeYNoneimplicitVkExternalFormatQNXcoresType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX
VUID-VkExternalImageFormatProperties-sType-sTypeYNoneimplicitVkExternalImageFormatPropertiescoresType must be VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
VUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922NNoneexplicitVkExternalMemoryAcquireUnmodifiedEXTcoreIf acquireUnmodifiedMemory is VK_TRUE, and the memory barrier's srcQueueFamilyIndex is a special queue family reserved for external memory ownership transfers (as described in Queue Family Ownership Transfer), then each range of VkDeviceMemory bound to the resource must have remained unmodified during all time since the resource's most recent release of ownership to the queue family.
VUID-VkExternalMemoryAcquireUnmodifiedEXT-sType-sTypeYNoneimplicitVkExternalMemoryAcquireUnmodifiedEXTcoresType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT
VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameterYNoneimplicitVkExternalMemoryBufferCreateInfocorehandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExternalMemoryBufferCreateInfo-sType-sTypeYNoneimplicitVkExternalMemoryBufferCreateInfocoresType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameterYNoneimplicitVkExternalMemoryImageCreateInfocorehandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExternalMemoryImageCreateInfo-sType-sTypeYNoneimplicitVkExternalMemoryImageCreateInfocoresType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameterYNoneimplicitVkExternalMemoryImageCreateInfoNVcorehandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkExternalMemoryImageCreateInfoNV-sType-sTypeYNoneimplicitVkExternalMemoryImageCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
VUID-VkExternalSemaphoreProperties-pNext-pNextYNoneimplicitVkExternalSemaphorePropertiescorepNext must be NULL
VUID-VkExternalSemaphoreProperties-sType-sTypeYNoneimplicitVkExternalSemaphorePropertiescoresType must be VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
VUID-VkFenceCreateInfo-flags-parameterYNoneimplicitVkFenceCreateInfocoreflags must be a valid combination of VkFenceCreateFlagBits values
VUID-VkFenceCreateInfo-pNext-pNextYNoneimplicitVkFenceCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportFenceCreateInfo or VkExportFenceWin32HandleInfoKHR
VUID-VkFenceCreateInfo-sType-sTypeYNoneimplicitVkFenceCreateInfocoresType must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
VUID-VkFenceCreateInfo-sType-uniqueYNoneimplicitVkFenceCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkFenceGetFdInfoKHR-fence-01455YNegativeExternalMemorySync.SyncFdExportFromImportedFenceexplicitVkFenceGetFdInfoKHRcorefence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload's handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType
VUID-VkFenceGetFdInfoKHR-fence-parameterYNoneimplicitVkFenceGetFdInfoKHRcorefence must be a valid VkFence handle
VUID-VkFenceGetFdInfoKHR-handleType-01453YNegativeExternalMemorySync.FenceexplicitVkFenceGetFdInfoKHRcorehandleType must have been included in VkExportFenceCreateInfo::handleTypes when fence's current payload was created
VUID-VkFenceGetFdInfoKHR-handleType-01454YNegativeExternalMemorySync.Fence, NegativeExternalMemorySync.SyncFdFenceexplicitVkFenceGetFdInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution
VUID-VkFenceGetFdInfoKHR-handleType-01456YNegativeExternalMemorySync.FenceexplicitVkFenceGetFdInfoKHRcorehandleType must be defined as a POSIX file descriptor handle
VUID-VkFenceGetFdInfoKHR-handleType-parameterYNoneimplicitVkFenceGetFdInfoKHRcorehandleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkFenceGetFdInfoKHR-pNext-pNextYNoneimplicitVkFenceGetFdInfoKHRcorepNext must be NULL
VUID-VkFenceGetFdInfoKHR-sType-sTypeYNoneimplicitVkFenceGetFdInfoKHRcoresType must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
VUID-VkFenceGetWin32HandleInfoKHR-fence-01450YNegativeExternalMemorySync.Win32ExportFromImportedFenceexplicitVkFenceGetWin32HandleInfoKHRcorefence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload's handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType
VUID-VkFenceGetWin32HandleInfoKHR-fence-parameterYNoneimplicitVkFenceGetWin32HandleInfoKHRcorefence must be a valid VkFence handle
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448YNegativeExternalMemorySync.FenceexplicitVkFenceGetWin32HandleInfoKHRcorehandleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence's current payload was created
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449NNoneexplicitVkFenceGetWin32HandleInfoKHRcoreIf handleType is defined as an NT handle, vkGetFenceWin32HandleKHR must be called no more than once for each valid unique combination of fence and handleType
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451NNoneexplicitVkFenceGetWin32HandleInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452YNegativeExternalMemorySync.FenceexplicitVkFenceGetWin32HandleInfoKHRcorehandleType must be defined as an NT handle or a global share handle
VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkFenceGetWin32HandleInfoKHRcorehandleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkFenceGetWin32HandleInfoKHRcorepNext must be NULL
VUID-VkFenceGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkFenceGetWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627NNoneexplicitVkFilterCubicImageViewImageFormatPropertiesEXTcoreIf the pNext chain of the VkImageFormatProperties2 structure includes a VkFilterCubicImageViewImageFormatPropertiesEXT structure, the pNext chain of the VkPhysicalDeviceImageFormatInfo2 structure must include a VkPhysicalDeviceImageViewImageFormatInfoEXT structure with an imageViewType that is compatible with imageType
VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-sType-sTypeYNoneimplicitVkFilterCubicImageViewImageFormatPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
VUID-VkFormatProperties2-pNext-pNextYNoneimplicitVkFormatProperties2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDrmFormatModifierPropertiesList2EXT, VkDrmFormatModifierPropertiesListEXT, VkFormatProperties3, or VkSubpassResolvePerformanceQueryEXT
VUID-VkFormatProperties2-sType-sTypeYNoneimplicitVkFormatProperties2coresType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2
VUID-VkFormatProperties2-sType-uniqueYNoneimplicitVkFormatProperties2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkFormatProperties3-sType-sTypeYNoneimplicitVkFormatProperties3coresType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, its layout member must be equal to VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be a power of two value
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04526YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be a power of two value
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04529YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.width and shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameterYNoneimplicitVkFragmentShadingRateAttachmentInfoKHRcoreIf pFragmentShadingRateAttachment is not NULL, pFragmentShadingRateAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sTypeYNoneimplicitVkFragmentShadingRateAttachmentInfoKHRcoresType must be VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
VUID-VkFrameBoundaryEXT-commonparentYNoneimplicitVkFrameBoundaryEXTcoreBoth of the elements of pBuffers, and the elements of pImages that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkFrameBoundaryEXT-flags-parameterYNoneimplicitVkFrameBoundaryEXTcoreflags must be a valid combination of VkFrameBoundaryFlagBitsEXT values
VUID-VkFrameBoundaryEXT-pBuffers-parameterYNoneimplicitVkFrameBoundaryEXTcoreIf bufferCount is not 0, and pBuffers is not NULL, pBuffers must be a valid pointer to an array of bufferCount valid VkBuffer handles
VUID-VkFrameBoundaryEXT-pImages-parameterYNoneimplicitVkFrameBoundaryEXTcoreIf imageCount is not 0, and pImages is not NULL, pImages must be a valid pointer to an array of imageCount valid VkImage handles
VUID-VkFrameBoundaryEXT-pTag-parameterNNoneimplicitVkFrameBoundaryEXTcoreIf tagSize is not 0, and pTag is not NULL, pTag must be a valid pointer to an array of tagSize bytes
VUID-VkFrameBoundaryEXT-sType-sTypeYNoneimplicitVkFrameBoundaryEXTcoresType must be VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT
VUID-VkFramebufferAttachmentImageInfo-flags-parameterYNoneimplicitVkFramebufferAttachmentImageInfocoreflags must be a valid combination of VkImageCreateFlagBits values
VUID-VkFramebufferAttachmentImageInfo-pNext-pNextYNegativeImagelessFramebuffer.AttachmentImagePNextimplicitVkFramebufferAttachmentImageInfocorepNext must be NULL
VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameterNNoneimplicitVkFramebufferAttachmentImageInfocoreIf viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values
VUID-VkFramebufferAttachmentImageInfo-sType-sTypeYNoneimplicitVkFramebufferAttachmentImageInfocoresType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
VUID-VkFramebufferAttachmentImageInfo-usage-parameterYNoneimplicitVkFramebufferAttachmentImageInfocoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmaskYNoneimplicitVkFramebufferAttachmentImageInfocoreusage must not be 0
VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameterYNoneimplicitVkFramebufferAttachmentsCreateInfocoreIf attachmentImageInfoCount is not 0, pAttachmentImageInfos must be a valid pointer to an array of attachmentImageInfoCount valid VkFramebufferAttachmentImageInfo structures
VUID-VkFramebufferAttachmentsCreateInfo-sType-sTypeYNoneimplicitVkFramebufferAttachmentsCreateInfocoresType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
VUID-VkFramebufferCreateInfo-attachmentCount-00876YNoneexplicitVkFramebufferCreateInfocoreattachmentCount must be equal to the attachment count specified in renderPass
VUID-VkFramebufferCreateInfo-commonparentYNegativeParent.RenderPassFramebufferimplicitVkFramebufferCreateInfocoreBoth of renderPass, and the elements of pAttachments that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkFramebufferCreateInfo-flags-02778YNegativeRenderPass.FramebufferAttachmentPointersexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles
VUID-VkFramebufferCreateInfo-flags-03189YNegativeImagelessFramebuffer.FeatureEnableexplicitVkFramebufferCreateInfocoreIf the imagelessFramebuffer feature is not enabled, flags must not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT
VUID-VkFramebufferCreateInfo-flags-03190YNegativeImagelessFramebuffer.BasicUsageexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include a VkFramebufferAttachmentsCreateInfo structure
VUID-VkFramebufferCreateInfo-flags-03191YNegativeImagelessFramebuffer.BasicUsageexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain must be equal to either zero or attachmentCount
VUID-VkFramebufferCreateInfo-flags-03196NNoneexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to the ceiling of width/maxFragmentDensityTexelSize.width
VUID-VkFramebufferCreateInfo-flags-03197NNoneexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to the ceiling of height/maxFragmentDensityTexelSize.height
VUID-VkFramebufferCreateInfo-flags-03201YNegativeAndroidExternalResolve.ImagelessFramebuffer, NegativeAndroidExternalResolve.ImagelessFramebufferFormat, NegativeImagelessFramebuffer.AttachmentImageUsageMismatch, PositiveAndroidExternalResolve.ImagelessFramebufferexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by renderPass must include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-flags-03202YNegativeImagelessFramebuffer.AttachmentImageUsageMismatchexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-flags-03203YNegativeImagelessFramebuffer.DepthStencilResolveAttachmentexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil resolve attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-flags-03204YNegativeImagelessFramebuffer.AttachmentImageUsageMismatchexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as an input attachment by renderPass must include VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-flags-03205YNegativeImagelessFramebuffer.BasicUsageexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, at least one element of the pViewFormats member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be equal to the corresponding value of VkAttachmentDescription::format used to create renderPass
VUID-VkFramebufferCreateInfo-flags-04113YNegativeImagelessFramebuffer.RenderPassBeginImageView3DexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D
VUID-VkFramebufferCreateInfo-flags-04533YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::extent.width greater than or equal to width
VUID-VkFramebufferCreateInfo-flags-04534YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::extent.height greater than or equal to height
VUID-VkFramebufferCreateInfo-flags-04535YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageViewCreateInfo::subresourceRange.layerCount greater than or equal to layers
VUID-VkFramebufferCreateInfo-flags-04537YNegativeFragmentShadingRate.FramebufferDimensionsMultiviewexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-flags-04538YNegativeFragmentShadingRate.FramebufferDimensionsexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was not specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than layers
VUID-VkFramebufferCreateInfo-flags-04539YNegativeFragmentShadingRate.FramebufferDimensionsexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a width at least as large as ⌈width / texelWidth⌉, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04540YNegativeFragmentShadingRate.FramebufferDimensionsexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a height at least as large as ⌈height / texelHeight⌉, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04541YNegativeImagelessFramebuffer.BasicUsageexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to width
VUID-VkFramebufferCreateInfo-flags-04542YNegativeImagelessFramebuffer.BasicUsageexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to height
VUID-VkFramebufferCreateInfo-flags-04543YNegativeImagelessFramebuffer.FragmentShadingRateDimensionsexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to ⌈width / texelWidth⌉, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04544YNegativeImagelessFramebuffer.FragmentShadingRateDimensionsexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to ⌈height / texelHeight⌉, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04545YNegativeImagelessFramebuffer.FragmentShadingRateDimensionsexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be either 1, or greater than or equal to layers
VUID-VkFramebufferCreateInfo-flags-04548YNegativeFragmentShadingRate.FramebufferUsageexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkFramebufferCreateInfo-flags-04549YNegativeImagelessFramebuffer.FragmentShadingRateUsageexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a fragment shading rate attachment by renderPass must include VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkFramebufferCreateInfo-flags-04587NNoneexplicitVkFramebufferCreateInfocoreIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-flags-parameterYNoneimplicitVkFramebufferCreateInfocoreflags must be a valid combination of VkFramebufferCreateFlagBits values
VUID-VkFramebufferCreateInfo-height-00887YNoneexplicitVkFramebufferCreateInfocoreheight must be greater than 0
VUID-VkFramebufferCreateInfo-height-00888YNoneexplicitVkFramebufferCreateInfocoreheight must be less than or equal to maxFramebufferHeight
VUID-VkFramebufferCreateInfo-layers-00889YNoneexplicitVkFramebufferCreateInfocorelayers must be greater than 0
VUID-VkFramebufferCreateInfo-layers-00890YNoneexplicitVkFramebufferCreateInfocorelayers must be less than or equal to maxFramebufferLayers
VUID-VkFramebufferCreateInfo-nullColorAttachmentWithExternalFormatResolve-09349YNoneexplicitVkFramebufferCreateInfocoreIf the nullColorAttachmentWithExternalFormatResolve is VK_FALSE, and flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the format of the color attachment for each subpass in renderPass that includes an external format image as a resolve attachment must have a format equal to the value of VkAndroidHardwareBufferFormatResolvePropertiesANDROID::colorAttachmentFormat as returned by a call to vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer that was used to create the image view use as its resolve attachment
VUID-VkFramebufferCreateInfo-pAttachments-00877YNegativeRenderPass.InvalidFramebufferAttachmentImageUsageexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a color attachment or resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-pAttachments-00879YNegativeRenderPass.InvalidFramebufferAttachmentImageUsageexplicitVkFramebufferCreateInfocoreIf renderpass is not VK_NULL_HANDLE, flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-pAttachments-00880YNegativeRenderPass.FramebufferDepthStencilResolveAttachmentexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a VkFormat value that matches the VkFormat specified by the corresponding VkAttachmentDescription in renderPass
VUID-VkFramebufferCreateInfo-pAttachments-00881YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a samples value that matches the samples value specified by the corresponding VkAttachmentDescription in renderPass
VUID-VkFramebufferCreateInfo-pAttachments-00883YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip level
VUID-VkFramebufferCreateInfo-pAttachments-00884YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzle
VUID-VkFramebufferCreateInfo-pAttachments-00891YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is a 2D or 2D array image view taken from a 3D image must not be a depth/stencil format
VUID-VkFramebufferCreateInfo-pAttachments-02552NNoneexplicitVkFramebufferCreateInfocoreEach element of pAttachments that is used as a fragment density map attachment by renderPass must not have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkFramebufferCreateInfo-pAttachments-02555YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a width at least as large as the ceiling of width/maxFragmentDensityTexelSize.width
VUID-VkFramebufferCreateInfo-pAttachments-02556YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a height at least as large as the ceiling of height/maxFragmentDensityTexelSize.height
VUID-VkFramebufferCreateInfo-pAttachments-02633YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-pAttachments-02634YNegativeRenderPass.FramebufferDepthStencilResolveAttachmentexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-pAttachments-09350YNegativeAndroidExternalResolve.FramebufferexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, then if an element of pAttachments has a format of VK_FORMAT_UNDEFINED, it must have been created with a VkExternalFormatANDROID::externalFormat value identical to that provided in the VkExternalFormatANDROID::externalFormat specified by the corresponding VkAttachmentDescription2 in renderPass
VUID-VkFramebufferCreateInfo-pNext-pNextYNegativeImagelessFramebuffer.AttachmentImagePNextimplicitVkFramebufferCreateInfocorepNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo
VUID-VkFramebufferCreateInfo-renderPass-02531YNoneexplicitVkFramebufferCreateInfocoreIf renderPass was specified with non-zero view masks, layers must be 1
VUID-VkFramebufferCreateInfo-renderPass-02553NNoneexplicitVkFramebufferCreateInfocoreIf renderPass has a fragment density map attachment and the fragmentDensityMapNonSubsampledImages feature is not enabled, each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT unless that element is the fragment density map attachment
VUID-VkFramebufferCreateInfo-renderPass-02746YNegativeFragmentShadingRate.FragmentDensityMapLayerCount, NegativeFragmentShadingRate.FragmentDensityMapReferenceAttachmentexplicitVkFramebufferCreateInfocoreEach element of pAttachments that is referenced by fragmentDensityMapAttachment 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-renderPass-03198YNegativeImagelessFramebuffer.AttachmentMultiviewImageLayerCountMismatch, NegativeImagelessFramebuffer.DepthStencilResolveAttachmentexplicitVkFramebufferCreateInfocoreIf multiview is enabled for renderPass and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than the maximum bit index set in the view mask in the subpasses in which it is used in renderPass
VUID-VkFramebufferCreateInfo-renderPass-04536YNoneexplicitVkFramebufferCreateInfocoreIf renderPass was specified with non-zero view masks, each element of pAttachments that is used as an input, color, resolve, or depth/stencil 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-04546YNegativeImagelessFramebuffer.BasicUsageexplicitVkFramebufferCreateInfocoreIf multiview is not enabled for renderPass and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than or equal to layers
VUID-VkFramebufferCreateInfo-renderPass-06502YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkFramebufferCreateInfocoreIf renderPass was created with fragment density map offsets other than (0,0), each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
VUID-VkFramebufferCreateInfo-renderPass-08921YNegativeImagelessFramebuffer.FragmentShadingRateDimensionsMultiviewexplicitVkFramebufferCreateInfocoreIf renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-renderPass-parameterYNoneimplicitVkFramebufferCreateInfocorerenderPass must be a valid VkRenderPass handle
VUID-VkFramebufferCreateInfo-sType-sTypeYNoneimplicitVkFramebufferCreateInfocoresType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
VUID-VkFramebufferCreateInfo-sType-uniqueYNoneimplicitVkFramebufferCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkFramebufferCreateInfo-samples-06881YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkFramebufferCreateInfocoreIf multisampled-render-to-single-sampled is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have VkAttachmentDescription::samples or VkAttachmentDescription2::samples equal to VK_SAMPLE_COUNT_1_BIT must have been created with VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT in their VkImageCreateInfo::flags
VUID-VkFramebufferCreateInfo-samples-07009YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkFramebufferCreateInfocoreIf multisampled-render-to-single-sampled is enabled for any subpass, all color, depth/stencil and input attachments used in that subpass which have VkAttachmentDescription::samples or VkAttachmentDescription2::samples equal to VK_SAMPLE_COUNT_1_BIT must have a format that supports the sample count specified in VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-VkFramebufferCreateInfo-width-00885YNoneexplicitVkFramebufferCreateInfocorewidth must be greater than 0
VUID-VkFramebufferCreateInfo-width-00886YNoneexplicitVkFramebufferCreateInfocorewidth must be less than or equal to maxFramebufferWidth
VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNextYNoneimplicitVkFramebufferMixedSamplesCombinationNVcorepNext must be NULL
VUID-VkFramebufferMixedSamplesCombinationNV-sType-sTypeYNoneimplicitVkFramebufferMixedSamplesCombinationNVcoresType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
VUID-VkGeneratedCommandsInfoNV-commonparentYNoneimplicitVkGeneratedCommandsInfoNVcoreEach of indirectCommandsLayout, pipeline, preprocessBuffer, sequencesCountBuffer, and sequencesIndexBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913NNoneexplicitVkGeneratedCommandsInfoNVcoreIf the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with multiple shader groups
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914NNoneexplicitVkGeneratedCommandsInfoNVcoreIf the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set in VkGraphicsPipelineCreateInfo::flags
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915NNoneexplicitVkGeneratedCommandsInfoNVcoreIf the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, then the pipeline`s VkPipelineLayout must match the VkIndirectCommandsLayoutTokenNV::pushconstantPipelineLayout
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07078NNoneexplicitVkGeneratedCommandsInfoNVcoreIf the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, then the pipeline must contain a shader stage using the MeshNV Execution Model
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07079NNoneexplicitVkGeneratedCommandsInfoNVcoreIf the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV, then the pipeline must contain a shader stage using the MeshEXT Execution Model
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameterYNoneimplicitVkGeneratedCommandsInfoNVcoreindirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-VkGeneratedCommandsInfoNV-pNext-pNextYNoneimplicitVkGeneratedCommandsInfoNVcorepNext must be NULL
VUID-VkGeneratedCommandsInfoNV-pStreams-parameterYNoneimplicitVkGeneratedCommandsInfoNVcorepStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures
VUID-VkGeneratedCommandsInfoNV-pipeline-02912NNoneexplicitVkGeneratedCommandsInfoNVcoreThe provided pipeline must match the pipeline bound at execution time
VUID-VkGeneratedCommandsInfoNV-pipeline-parameterYNoneimplicitVkGeneratedCommandsInfoNVcorepipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09084NNoneexplicitVkGeneratedCommandsInfoNVcoreIf pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the pipeline must have been created with the flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09085NNoneexplicitVkGeneratedCommandsInfoNVcoreIf pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the pipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved
VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09086NNoneexplicitVkGeneratedCommandsInfoNVcoreIf pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then vkCmdUpdatePipelineIndirectBufferNV must have been called on that pipeline to save its metadata to a device address
VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09087NNoneexplicitVkGeneratedCommandsInfoNVcoreIf pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and if VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV is used, then pipeline must be VK_NULL_HANDLE
VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameterYNoneimplicitVkGeneratedCommandsInfoNVcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918NNoneexplicitVkGeneratedCommandsInfoNVcorepreprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971NNoneexplicitVkGeneratedCommandsInfoNVcoreIf preprocessBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameterYNoneimplicitVkGeneratedCommandsInfoNVcorepreprocessBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919NNoneexplicitVkGeneratedCommandsInfoNVcorepreprocessOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920NNoneexplicitVkGeneratedCommandsInfoNVcorepreprocessSize must be at least equal to the memory requirement`s size returned by vkGetGeneratedCommandsMemoryRequirementsNV using the matching inputs (indirectCommandsLayout, ...) as within this structure
VUID-VkGeneratedCommandsInfoNV-sType-sTypeYNoneimplicitVkGeneratedCommandsInfoNVcoresType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917NNoneexplicitVkGeneratedCommandsInfoNVcoresequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoNV::maxSequencesCount that was used to determine the preprocessSize
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921NNoneexplicitVkGeneratedCommandsInfoNVcoresequencesCountBuffer can be set if the actual used count of sequences is sourced from the provided buffer. In that case the sequencesCount serves as upper bound
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922NNoneexplicitVkGeneratedCommandsInfoNVcoreIf sequencesCountBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923NNoneexplicitVkGeneratedCommandsInfoNVcoreIf sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesCountBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972NNoneexplicitVkGeneratedCommandsInfoNVcoreIf sequencesCountBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-parameterYNoneimplicitVkGeneratedCommandsInfoNVcoreIf sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924NNoneexplicitVkGeneratedCommandsInfoNVcoreIf indirectCommandsLayout's VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV is set, sequencesIndexBuffer must be set otherwise it must be VK_NULL_HANDLE
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02925NNoneexplicitVkGeneratedCommandsInfoNVcoreIf sequencesIndexBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926NNoneexplicitVkGeneratedCommandsInfoNVcoreIf sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesIndexBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973NNoneexplicitVkGeneratedCommandsInfoNVcoreIf sequencesIndexBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameterYNoneimplicitVkGeneratedCommandsInfoNVcoreIf sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-streamCount-02916NNoneexplicitVkGeneratedCommandsInfoNVcorestreamCount must match the indirectCommandsLayout's streamCount
VUID-VkGeneratedCommandsInfoNV-streamCount-arraylengthYNoneimplicitVkGeneratedCommandsInfoNVcorestreamCount must be greater than 0
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparentYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVcoreBoth of indirectCommandsLayout, and pipeline that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVcoreindirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNVcoremaxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNextYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVcorepNext must be NULL
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVcoreIf pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNVcoreIf pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_GRAPHICS, then pipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNVcoreIf pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and the indirectCommandsLayout was not created with a VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV token, then the pipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09077NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNVcoreIf pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and the indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV token, then the pipeline must be NULL
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sTypeYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVcoresType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
VUID-VkGeometryAABBNV-aabbData-parameterYNoneimplicitVkGeometryAABBNVcoreIf aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle
VUID-VkGeometryAABBNV-offset-02439YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryAABBNVcoreoffset must be less than the size of aabbData
VUID-VkGeometryAABBNV-offset-02440YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryAABBNVcoreoffset must be a multiple of 8
VUID-VkGeometryAABBNV-pNext-pNextYNoneimplicitVkGeometryAABBNVcorepNext must be NULL
VUID-VkGeometryAABBNV-sType-sTypeYNoneimplicitVkGeometryAABBNVcoresType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV
VUID-VkGeometryAABBNV-stride-02441YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryAABBNVcorestride must be a multiple of 8
VUID-VkGeometryDataNV-aabbs-parameterNNoneimplicitVkGeometryDataNVcoreaabbs must be a valid VkGeometryAABBNV structure
VUID-VkGeometryDataNV-triangles-parameterNNoneimplicitVkGeometryDataNVcoretriangles must be a valid VkGeometryTrianglesNV structure
VUID-VkGeometryNV-flags-parameterYNoneimplicitVkGeometryNVcoreflags must be a valid combination of VkGeometryFlagBitsKHR values
VUID-VkGeometryNV-geometry-parameterNNoneimplicitVkGeometryNVcoregeometry must be a valid VkGeometryDataNV structure
VUID-VkGeometryNV-geometryType-03503YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryNVcoregeometryType must be VK_GEOMETRY_TYPE_TRIANGLES_NV or VK_GEOMETRY_TYPE_AABBS_NV
VUID-VkGeometryNV-geometryType-parameterYNegativeRayTracingNV.ValidateGeometryimplicitVkGeometryNVcoregeometryType must be a valid VkGeometryTypeKHR value
VUID-VkGeometryNV-pNext-pNextYNoneimplicitVkGeometryNVcorepNext must be NULL
VUID-VkGeometryNV-sType-sTypeYNoneimplicitVkGeometryNVcoresType must be VK_STRUCTURE_TYPE_GEOMETRY_NV
VUID-VkGeometryTrianglesNV-commonparentYNoneimplicitVkGeometryTrianglesNVcoreEach of indexData, transformData, and vertexData that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGeometryTrianglesNV-indexCount-02436YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcoreindexCount must be 0 if indexType is VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-02434YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcoreindexData must be VK_NULL_HANDLE if indexType is VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-02435NNoneexplicitVkGeometryTrianglesNVcoreindexData must be a valid VkBuffer handle if indexType is not VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-parameterYNoneimplicitVkGeometryTrianglesNVcoreIf indexData is not VK_NULL_HANDLE, indexData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-indexOffset-02431YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcoreindexOffset must be less than the size of indexData
VUID-VkGeometryTrianglesNV-indexOffset-02432YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcoreindexOffset must be a multiple of the element size of indexType
VUID-VkGeometryTrianglesNV-indexType-02433YNoneexplicitVkGeometryTrianglesNVcoreindexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexType-parameterYNoneimplicitVkGeometryTrianglesNVcoreindexType must be a valid VkIndexType value
VUID-VkGeometryTrianglesNV-pNext-pNextYNoneimplicitVkGeometryTrianglesNVcorepNext must be NULL
VUID-VkGeometryTrianglesNV-sType-sTypeYNoneimplicitVkGeometryTrianglesNVcoresType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
VUID-VkGeometryTrianglesNV-transformData-parameterYNoneimplicitVkGeometryTrianglesNVcoreIf transformData is not VK_NULL_HANDLE, transformData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-transformOffset-02437YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcoretransformOffset must be less than the size of transformData
VUID-VkGeometryTrianglesNV-transformOffset-02438YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcoretransformOffset must be a multiple of 16
VUID-VkGeometryTrianglesNV-vertexData-parameterYNegativeRayTracingNV.ValidateGeometryimplicitVkGeometryTrianglesNVcoreIf vertexData is not VK_NULL_HANDLE, vertexData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-vertexFormat-02430YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcorevertexFormat must be one of VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SNORM, or VK_FORMAT_R16G16B16_SNORM
VUID-VkGeometryTrianglesNV-vertexFormat-parameterYNoneimplicitVkGeometryTrianglesNVcorevertexFormat must be a valid VkFormat value
VUID-VkGeometryTrianglesNV-vertexOffset-02428YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcorevertexOffset must be less than the size of vertexData
VUID-VkGeometryTrianglesNV-vertexOffset-02429YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVcorevertexOffset must be a multiple of the component size of vertexFormat
VUID-VkGeometryTrianglesNV-vertexStride-03818NNoneexplicitVkGeometryTrianglesNVcorevertexStride must be less than or equal to 232-1
VUID-VkGetLatencyMarkerInfoNV-pTimings-parameterNNoneimplicitVkGetLatencyMarkerInfoNVcoreIf timingCount is not 0, and pTimings is not NULL, pTimings must be a valid pointer to an array of timingCount VkLatencyTimingsFrameReportNV structures
VUID-VkGetLatencyMarkerInfoNV-sType-sTypeYNoneimplicitVkGetLatencyMarkerInfoNVcoresType must be VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV
VUID-VkGraphicsPipelineCreateInfo-Geometry-07726YNegativeGeometryTessellation.PointSizeGeomShaderWriteexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a Geometry Execution Model, uses the OutputPoints Execution Mode, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written to
VUID-VkGraphicsPipelineCreateInfo-Input-06632NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state with a fragment shader that either enables sample shading or decorates any variable in the Input storage class with Sample, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states is not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, then pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-Input-07904YNegativeVertexInput.AttributeNotProvidedexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with vertex input state and pVertexInputState is not dynamic, then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription::location
VUID-VkGraphicsPipelineCreateInfo-Input-08733YNegativeVertexInput.AttributeStructTypeBlockLocation, NegativeVertexInput.AttributeStructTypeBlockLocation64bit, NegativeVertexInput.AttributeStructTypeFirstLocation, NegativeVertexInput.AttributeStructTypeSecondLocation, NegativeVertexInput.AttributeTypeMismatchexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires vertex input state and pVertexInputState is not dynamic, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription::format
VUID-VkGraphicsPipelineCreateInfo-None-02322YNegativeMesh.BasicUsageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with a Xfb execution mode
VUID-VkGraphicsPipelineCreateInfo-None-04574NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state, and the supersampleFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV
VUID-VkGraphicsPipelineCreateInfo-None-04575NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state, and the noInvocationFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
VUID-VkGraphicsPipelineCreateInfo-None-04889NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and fragment shader state, the fragment shader and last pre-rasterization shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkGraphicsPipelineCreateInfo-None-06569NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be a valid VkFragmentShadingRateTypeNV value
VUID-VkGraphicsPipelineCreateInfo-None-07826YNegativeGraphicsLibrary.CreateStateGPL, NegativeGraphicsLibrary.ImplicitVUIDsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline includes a complete set of state, and there are no libraries included in VkPipelineLibraryCreateInfoKHR::pLibraries, then VkPipelineLayout must be a valid pipeline layout
VUID-VkGraphicsPipelineCreateInfo-None-09043NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the colorWriteMask member of the corresponding element of pColorBlendState->pAttachments must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-VkGraphicsPipelineCreateInfo-None-09497YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the mesh shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths
VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063NNoneexplicitVkGraphicsPipelineCreateInfocoreThe shader stages for VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT must use either the TaskNV and MeshNV Execution Model or the TaskEXT and MeshEXT Execution Model, but must not use both
VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723YNegativeGeometryTessellation.PipelineTessellationMissingPointSizeexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a TessellationEvaluation Execution Model, no Geometry Execution Model, uses the PointMode Execution Mode, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to if maintenance5 is not enabled
VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724YNegativeGeometryTessellation.PipelineTessellationPointSizeexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a TessellationEvaluation Execution Model, no Geometry Execution Model, uses the PointMode Execution Mode, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written to
VUID-VkGraphicsPipelineCreateInfo-alphaToCoverageEnable-08891YNegativeShaderInterface.AlphaToCoverageArrayIndex, NegativeShaderInterface.AlphaToCoverageArrayVec3, NegativeShaderInterface.AlphaToCoverageOutputLocation0, NegativeShaderInterface.AlphaToCoverageOutputNoAlphaexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment shader state, the VkPipelineMultisampleStateCreateInfo::alphaToCoverageEnable is not ignored and is VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-VkGraphicsPipelineCreateInfo-commonparentYNoneimplicitVkGraphicsPipelineCreateInfocoreEach of basePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760YNegativePipeline.GeometryShaderConservativeRasterizationexplicitVkGraphicsPipelineCreateInfocoreIf conservativePointAndLineRasterization is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a geometry shader with either the OutputPoints or OutputLineStrip execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761YNegativeMesh.MeshShaderConservativeRasterizationexplicitVkGraphicsPipelineCreateInfocoreIf conservativePointAndLineRasterization is not supported, the pipeline requires pre-rasterization shader state, and the pipeline includes a mesh shader with either the OutputPoints or OutputLinesNV execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892YNegativePipeline.VertexPointOutputConservativeRasterizationexplicitVkGraphicsPipelineCreateInfocoreIf conservativePointAndLineRasterization is not supported; the pipeline is being created with vertex input state and pre-rasterization shader state; the pipeline does not include a geometry shader; and the value of VkPipelineInputAssemblyStateCreateInfo::topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, or VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722YNegativePipeline.FramebufferMixedSamplesCoverageReductionexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, the VK_NV_coverage_reduction_mode extension is enabled, and rasterizationSamples is not dynamic, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593YNegativeDynamicRendering.CreateGraphicsPipelineWithAttachmentSampleCountexplicitVkGraphicsPipelineCreateInfocoreIf the fragment output interface state and the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV is not 0, it must be a valid VkSampleCountFlagBits value
VUID-VkGraphicsPipelineCreateInfo-dynamicPrimitiveTopologyUnrestricted-09031YNegativeDynamicState.InputAssemblyStateIgnored, NegativeMesh.BasicUsage, NegativeMesh.BasicUsageNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires vertex input state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or either VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic states are not set, or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576YNegativeDynamicRendering.CreatePipelineWithoutFeature, NegativeGraphicsLibrary.ImplicitVUIDs, NegativePipeline.NullRenderPass, VkBestPracticesLayerTest.CreatePipelineWithoutRenderPassexplicitVkGraphicsPipelineCreateInfocoreIf the dynamicRendering feature is not enabled and the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375YNegativeDynamicState.PipelineFeatureDisabledAlphaToCoverageEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3AlphaToCoverageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376YNegativeDynamicState.PipelineFeatureDisabledAlphaToOneEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3AlphaToOneEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendAdvanced-07386YNegativeDynamicState.PipelineFeatureDisabledColorBlendAdvancedexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ColorBlendAdvanced feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEnable-07378YNegativeDynamicState.PipelineFeatureDisabledColorBlendEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ColorBlendEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEquation-07379YNegativeDynamicState.PipelineFeatureDisabledColorBlendEquationexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ColorBlendEquation feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorWriteMask-07380YNegativeDynamicState.PipelineFeatureDisabledColorWriteMaskexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ColorWriteMask feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ConservativeRasterizationMode-07382YNegativeDynamicState.PipelineFeatureDisabledConservativeRasterizationModeexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ConservativeRasterizationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationMode-07395YNegativeDynamicState.PipelineFeatureDisabledCoverageModulationModeexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3CoverageModulationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTable-07397YNegativeDynamicState.PipelineFeatureDisabledCoverageModulationTableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3CoverageModulationTable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTableEnable-07396YNegativeDynamicState.PipelineFeatureDisabledCoverageModulationTableEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3CoverageModulationTableEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageReductionMode-07398YNegativeDynamicState.PipelineFeatureDisabledCoverageReductionModeexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3CoverageReductionMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorEnable-07393YNegativeDynamicState.PipelineFeatureDisabledCoverageToColorEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3CoverageToColorEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorLocation-07394YNegativeDynamicState.PipelineFeatureDisabledCoverageToColorLocationexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3CoverageToColorLocation feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClampEnable-07371YNegativeDynamicState.PipelineFeatureDisabledDepthClampEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3DepthClampEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384YNegativeDynamicState.PipelineFeatureDisabledDepthClipEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3DepthClipEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipNegativeOneToOne-07390YNegativeDynamicState.PipelineFeatureDisabledDepthClipNegativeOneToOneexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3DepthClipNegativeOneToOne feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ExtraPrimitiveOverestimationSize-07383YNegativeDynamicState.PipelineFeatureDisabledExtraPrimitiveOverestimationSizeexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ExtraPrimitiveOverestimationSize feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineRasterizationMode-07388YNegativeDynamicState.PipelineFeatureDisabledLineRasterizationModeexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3LineRasterizationMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineStippleEnable-07389YNegativeDynamicState.PipelineFeatureDisabledLineStippleEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3LineStippleEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LogicOpEnable-07377YNegativeDynamicState.PipelineFeatureDisabledLogicOpEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3LogicOpEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3PolygonMode-07372YNegativeDynamicState.PipelineFeatureDisabledPolygonModeexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3PolygonMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_POLYGON_MODE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ProvokingVertexMode-07387YNegativeDynamicState.PipelineFeatureDisabledProvokingVertexModeexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ProvokingVertexMode feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationSamples-07373YNegativeDynamicState.PipelineFeatureDisabledRasterizationSamplesexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3RasterizationSamples feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationStream-07381YNegativeDynamicState.PipelineFeatureDisabledRasterizationStreamexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3RasterizationStream feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RepresentativeFragmentTestEnable-07399YNegativeDynamicState.PipelineFeatureDisabledRepresentativeFragmentTestEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3RepresentativeFragmentTestEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleLocationsEnable-07385YNegativeDynamicState.PipelineFeatureDisabledSampleLocationsEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3SampleLocationsEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleMask-07374YNegativeDynamicState.PipelineFeatureDisabledSampleMaskexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3SampleMask feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SAMPLE_MASK_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ShadingRateImageEnable-07400YNegativeDynamicState.PipelineFeatureDisabledShadingRateImageEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ShadingRateImageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3TessellationDomainOrigin-07370YNegativeDynamicState.PipelineFeatureDisabledTessellationDomainOriginexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3TessellationDomainOrigin feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportSwizzle-07392YNegativeDynamicState.PipelineFeatureDisabledViewportSwizzleexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ViewportSwizzle feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportWScalingEnable-07391YNegativeDynamicState.PipelineFeatureDisabledViewportWScalingEnableexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState3ViewportWScalingEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09301YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, VkPipelineRenderingCreateInfo::viewMask must be 0
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09304YNegativeAndroidExternalResolve.PipelineRasterizationSamplesDynamicRenderingexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, VkExternalFormatANDROID::externalFormat is not 0, and rasterizationSamples is not dynamic, VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be 1
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09305YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, and blendEnable is not dynamic, the blendEnable member of each element of pColorBlendState->pAttachments must be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09306YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, and pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, VkPipelineFragmentShadingRateStateCreateInfoKHR::width must be 1
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09307YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, and pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, VkPipelineFragmentShadingRateStateCreateInfoKHR::height must be 1
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09308NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires pre-rasterization shader state and fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, the last pre-rasterization shader stage must not statically use a variable with the PrimitiveShadingRateKHR built-in
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09309YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, VkPipelineRenderingCreateInfo::colorAttachmentCount must be 1
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09310YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment shader state and fragment output interface state, renderPass is VK_NULL_HANDLE, and VkExternalFormatANDROID::externalFormat is not 0, the fragment shader must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09313YNegativeAndroidExternalResolve.PipelineRasterizationSamplesexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, subpass includes an external format resolve attachment, and rasterizationSamples is not dynamic, VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09314YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, subpass includes an external format resolve attachment, and blendEnable is not dynamic, the blendEnable member of each element of pColorBlendState->pAttachments must be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09315YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, subpass includes an external format resolve attachment, and pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, VkPipelineFragmentShadingRateStateCreateInfoKHR::width must be 1
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09316YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, subpass includes an external format resolve attachment, and pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, VkPipelineFragmentShadingRateStateCreateInfoKHR::height must be 1
VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09317NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the externalFormatResolve feature is enabled, the pipeline requires pre-rasterization shader state and fragment output interface state, renderPass is not VK_NULL_HANDLE, and subpass includes an external format resolve attachment, the last pre-rasterization shader stage must not statically use a variable with the PrimitiveShadingRateKHR built-in
VUID-VkGraphicsPipelineCreateInfo-flags-00764YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-VkGraphicsPipelineCreateInfo-flags-02877YNegativePipeline.IndirectBindablePipelineWithoutFeatureexplicitVkGraphicsPipelineCreateInfocoreIf flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the deviceGeneratedCommands feature must be enabled
VUID-VkGraphicsPipelineCreateInfo-flags-02966NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specify Xfb execution mode
VUID-VkGraphicsPipelineCreateInfo-flags-03372YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03373YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03374YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03375YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03376YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03377YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03577YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-04901NNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain
VUID-VkGraphicsPipelineCreateInfo-flags-04902NNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED
VUID-VkGraphicsPipelineCreateInfo-flags-04947YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkGraphicsPipelineCreateInfo-flags-06482YNegativeDynamicRendering.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT, renderpass must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06483YNegativeDynamicRendering.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, renderpass must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06484YNegativePipeline.RasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06485YNegativePipeline.RasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06486YNegativePipeline.RasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06591YNegativePipeline.RasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfocoreIf pStages includes a fragment shader stage, and the fragment shader declares the EarlyFragmentTests execution mode, the flags member of VkPipelineDepthStencilStateCreateInfo must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06596NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both this pipeline and the library must be equal
VUID-VkGraphicsPipelineCreateInfo-flags-06598NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both this pipeline and the library must be equal
VUID-VkGraphicsPipelineCreateInfo-flags-06608YNegativeGraphicsLibrary.CreateStateGPLexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline defines, or includes as libraries, all the state subsets required for a complete graphics pipeline, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-06609YNegativeGraphicsLibrary.LinkOptimizationexplicitVkGraphicsPipelineCreateInfocoreIf flags includes VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06610YNegativeGraphicsLibrary.LinkOptimizationexplicitVkGraphicsPipelineCreateInfocoreIf flags includes VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06612YNegativeGraphicsLibrary.BindingCount, NegativeGraphicsLibrary.DescriptorSetLayoutBinding, NegativeGraphicsLibrary.DescriptorSetLayoutCreateFlags, NegativeGraphicsLibrary.SetLayoutCountexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, and layout was not created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by this pipeline and the library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-flags-06614YNegativeGraphicsLibrary.IndependentSetsLinkCreateexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by the library must also have been created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06616NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which layout was created with that are not VK_NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the library's layout
VUID-VkGraphicsPipelineCreateInfo-flags-06618NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, any descriptor set layout N specified by layout in both this pipeline and the library which include bindings accessed by shader stages in each must be identically defined
VUID-VkGraphicsPipelineCreateInfo-flags-06620YNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined
VUID-VkGraphicsPipelineCreateInfo-flags-06626YNegativeDynamicRendering.LibraryViewMaskexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass is VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::viewMask used by this pipeline and that specified by the library must be identical
VUID-VkGraphicsPipelineCreateInfo-flags-06633NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the library
VUID-VkGraphicsPipelineCreateInfo-flags-06637NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState->sampleShading is VK_TRUE, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create that library must be identically defined pMultisampleState
VUID-VkGraphicsPipelineCreateInfo-flags-06638NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical
VUID-VkGraphicsPipelineCreateInfo-flags-06640YNegativeGraphicsLibrary.NullStagesexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkGraphicsPipelineCreateInfo-flags-06642YNegativeGraphicsLibrary.PreRasterStateNoLayoutexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must be a valid VkPipelineLayout handle
VUID-VkGraphicsPipelineCreateInfo-flags-06643NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle
VUID-VkGraphicsPipelineCreateInfo-flags-06644NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, stageCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-flags-06645YNegativeGraphicsLibrary.PipelineExecutablePropertiesexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, if flags includes VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, any libraries must have also been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-06679YNegativeGraphicsLibrary.NullDSLexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, any element of the pSetLayouts array when layout was created and the corresponding element of the pSetLayouts array used to create the library's layout must not both be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06682NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes both VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must have been created with no elements of the pSetLayouts array set to VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06683NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and pRasterizationState->rasterizerDiscardEnable is VK_TRUE, layout must have been created with no elements of the pSetLayouts array set to VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06684NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass must be equal to that used to create the library
VUID-VkGraphicsPipelineCreateInfo-flags-06729NNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags includes VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion of VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06730NNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags does not include VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the union of the libraries' pipeline layouts
VUID-VkGraphicsPipelineCreateInfo-flags-06756YNegativeGraphicsLibrary.DSLShaderBindingsNullInCreateexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library's layout must not have shader bindings for shaders in the other subset
VUID-VkGraphicsPipelineCreateInfo-flags-06757YNegativeGraphicsLibrary.DSLShaderBindingsNullInLinkexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline's layout must not have shader bindings for shaders in the other subset
VUID-VkGraphicsPipelineCreateInfo-flags-07369YNegativeProtectedMemory.PipelineProtectedAccessexplicitVkGraphicsPipelineCreateInfocoreflags must not include both VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT and VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-07401YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-07984YNegativePipeline.CreateGraphicsPipelineWithBadBasePointerexplicitVkGraphicsPipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid graphics VkPipeline handle
VUID-VkGraphicsPipelineCreateInfo-flags-07985YNegativePipeline.CreateGraphicsPipelineWithBadBasePointer, NegativePipeline.GraphicsPipelineWithBadBasePointerexplicitVkGraphicsPipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter
VUID-VkGraphicsPipelineCreateInfo-flags-07986YNegativePipeline.GraphicsPipelineWithBadBasePointerexplicitVkGraphicsPipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-07997YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfocoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
VUID-VkGraphicsPipelineCreateInfo-flags-08897NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage in pStages, the pipeline must define vertex input state
VUID-VkGraphicsPipelineCreateInfo-flags-08898NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define vertex input state
VUID-VkGraphicsPipelineCreateInfo-flags-08899NNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state includes a vertex shader stage in pStages, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library
VUID-VkGraphicsPipelineCreateInfo-flags-08900NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT the pipeline must define pre-rasterization shader state
VUID-VkGraphicsPipelineCreateInfo-flags-08901NNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library
VUID-VkGraphicsPipelineCreateInfo-flags-08903NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state either includes VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState->rasterizerDiscardEnable set to VK_FALSE, the pipeline must define fragment shader state
VUID-VkGraphicsPipelineCreateInfo-flags-08904NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment shader state
VUID-VkGraphicsPipelineCreateInfo-flags-08906NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and that state either includes VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState->rasterizerDiscardEnable set to VK_FALSE, the pipeline must define fragment output interface state
VUID-VkGraphicsPipelineCreateInfo-flags-08907NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment output interface state
VUID-VkGraphicsPipelineCreateInfo-flags-08909NNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and that state either includes VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState->rasterizerDiscardEnable set to VK_FALSE, the pipeline must define fragment output interface state and fragment shader state or include those states in linked pipeline libraries
VUID-VkGraphicsPipelineCreateInfo-flags-09245YNegativeGraphicsLibrary.LinkOptimizationexplicitVkGraphicsPipelineCreateInfocoreIf flags includes VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, flags must also include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506YNegativeFragmentShadingRate.Ops, NegativeFragmentShadingRate.PipelineCombinerOpsLimitexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state, the fragmentShadingRateNonTrivialCombinerOps limit is not supported, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state, and the fragmentShadingRateNonTrivialCombinerOps limit is not supported and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321YNegativeGeometryTessellation.GeometryStreamsCapabilityexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and the last pre-rasterization shader stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabled
VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606YNegativeGraphicsLibrary.CreateStateGPL, NegativePipeline.CreateFlags, NegativePipeline.PipelineCreateFlags2explicitVkGraphicsPipelineCreateInfocoreIf the graphicsPipelineLibrary feature is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-layout-01688YNegativePipeline.MaxPerStageResourcesexplicitVkGraphicsPipelineCreateInfocoreThe number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources
VUID-VkGraphicsPipelineCreateInfo-layout-06602NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state or pre-rasterization shader state, layout must be a valid VkPipelineLayout handle
VUID-VkGraphicsPipelineCreateInfo-layout-07827YNegativeGraphicsLibrary.IncompatibleLayoutsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created without VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the layouts in those libraries
VUID-VkGraphicsPipelineCreateInfo-layout-07987YNegativeShaderPushConstants.DrawWithoutUpdate, NegativeShaderPushConstants.MultipleEntryPoint, NegativeShaderPushConstants.NotDeclared, NegativeShaderPushConstants.NotInLayoutexplicitVkGraphicsPipelineCreateInfocoreIf a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range
VUID-VkGraphicsPipelineCreateInfo-layout-07988YNegativeGraphicsLibrary.DSLShaderStageMask, NegativePipelineLayout.DescriptorNotAccessible, NegativePipelineLayout.UniformBlockNotProvided, NegativeSubpass.SubpassInputNotBoundDescriptorSetexplicitVkGraphicsPipelineCreateInfocoreIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkGraphicsPipelineCreateInfo-layout-07990YNegativePipelineLayout.DescriptorTypeMismatch, NegativePipelineLayout.DescriptorTypeMismatchNonCombinedImageSamplerexplicitVkGraphicsPipelineCreateInfocoreIf a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type
VUID-VkGraphicsPipelineCreateInfo-layout-07991YNegativeShaderSpirv.DescriptorCountConstantexplicitVkGraphicsPipelineCreateInfocoreIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is not created with a complete set of state, or VkPipelineLibraryCreateInfoKHR::libraryCount is not 0, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount and VkGraphicsPipelineShaderGroupsCreateInfoNV::pipelineCount must be 0
VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is created with a complete set of state, and VkPipelineLibraryCreateInfoKHR::libraryCount is 0, and the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766YNegativePipeline.LineRasterizationexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and pMultisampleState is not NULL, the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775NNoneexplicitVkGraphicsPipelineCreateInfocoreIf maintenance5 is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variable
VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853YNegativeAndroidExternalResolve.PipelineRasterizationSamples, NegativeDynamicState.SampleLocations, NegativePipeline.FramebufferMixedSamples, NegativePipeline.FramebufferMixedSamplesNV, NegativePipeline.NumSamplesMismatchexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must be the same as the sample count for those subpass attachments
VUID-VkGraphicsPipelineCreateInfo-multiview-06577YNegativeDynamicRendering.GraphicsPipelineCreateInfo, NegativeDynamicRendering.PipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfocoreIf the multiview feature is not enabled, the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::viewMask must be 0
VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592YNegativeDynamicRendering.AttachmentSampleCountexplicitVkGraphicsPipelineCreateInfocoreIf the fragment output interface state, elements of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV must be valid VkSampleCountFlagBits values
VUID-VkGraphicsPipelineCreateInfo-pColorBlendState-09038NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pColorBlendState is not NULL it must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09034NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09036NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494YNegativeFragmentShadingRate.PipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be greater than or equal to 1
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495YNegativeFragmentShadingRate.PipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be greater than or equal to 1
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496YNegativeFragmentShadingRate.PipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be a power-of-two value
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497YNegativeFragmentShadingRate.PipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be a power-of-two value
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498YNegativeFragmentShadingRate.PipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be less than or equal to 4
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499YNegativeFragmentShadingRate.PipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be less than or equal to 4
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500YNegativeFragmentShadingRate.PipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width and VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must both be equal to 1
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501YNegativeFragmentShadingRate.PipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502YNegativeFragmentShadingRate.PipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the fragmentShadingRateEnums feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be equal to VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be equal to VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567YNegativeFragmentShadingRate.OpsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568YNegativeFragmentShadingRate.OpsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be a valid VkFragmentShadingRateNV value
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameterYNoneimplicitVkGraphicsPipelineCreateInfocoreIf pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749YNegativeDynamicState.LineWidthexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and the wideLines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754YNegativePipeline.InvalidPipelineDepthBiasexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, the depthBiasClamp feature is not enabled, no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BIAS, and the depthBiasEnable member of pRasterizationState is VK_TRUE, the depthBiasClamp member of pRasterizationState must be 0.0
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715YNegativeCommand.ViewportWScalingNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in the pNext chain of pViewportState, is VK_TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510YNegativeDynamicState.DepthRangeUnrestrictedexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state, the VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CULL_MODE, VK_DYNAMIC_STATE_FRONT_FACE, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, or VK_DYNAMIC_STATE_STENCIL_OP
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379YNegativeDynamicState.ExtendedDynamicStateViewportScissorPipeline, NegativeDynamicState.ViewportCountWithExtendedDynamicStateexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then viewportCount must be zero
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380YNegativeDynamicState.ExtendedDynamicStateViewportScissorPipeline, NegativeDynamicState.ScissorWithCountexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then scissorCount must be zero
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578YNegativeDynamicState.NonGraphicsexplicitVkGraphicsPipelineCreateInfocoreAll elements of the pDynamicStates member of pDynamicState must not be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056YNegativeCommand.ExclusiveScissorNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and if pViewportState->pNext chain includes a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure, and if its exclusiveScissorCount member is not 0, then its pExclusiveScissors member must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and if pViewportState->pNext chain includes a VkPipelineViewportShadingRateImageStateCreateInfoNV structure, then its pShadingRatePalettes member must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and if pNext chain includes a VkPipelineDiscardRectangleStateCreateInfoEXT structure, and if its discardRectangleCount member is not 0, then its pDiscardRectangles member must be a valid pointer to an array of discardRectangleCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130YNegativeDynamicState.MultiViewport, NegativeDynamicState.ViewportexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and pViewportState->pViewports is not dynamic, then pViewportState->pViewports must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131YNegativeDynamicState.MultiViewport, NegativeDynamicState.ViewportexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and pViewportState->pScissors is not dynamic, then pViewportState->pScissors must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132YNegativeDynamicState.ExtendedDynamicStateViewportScissorPipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133YNegativeDynamicState.ExtendedDynamicStateViewportScissorPipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800YNegativeDynamicState.ColorWriteDisabledexplicitVkGraphicsPipelineCreateInfocoreIf the colorWriteEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807YNegativeDynamicState.VertexInputDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and the vertexInputDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VERTEX_INPUT_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868YNegativeDynamicState.ExtendedDynamicState2DisabledexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState2 feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869YNegativeDynamicState.ExtendedDynamicState2LogicOpDisabledexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState2LogicOp feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LOGIC_OP_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870YNegativeDynamicState.ExtendedDynamicState2PatchControlPointsDisabledexplicitVkGraphicsPipelineCreateInfocoreIf the extendedDynamicState2PatchControlPoints feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065YNegativeMesh.BasicUsageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, or VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07066YNegativeMesh.BasicUsageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067YNegativeMesh.BasicUsageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VERTEX_INPUT_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07610YNegativeDynamicState.SampleLocationsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07611YNegativeDynamicState.SampleLocationsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable the included in the pNext chain of pMultisampleState is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07612YNegativeDynamicState.SampleLocationsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state or fragment output interface state, and rasterizationSamples and sampleLocationsInfo are not dynamic, and VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable included in the pNext chain of pMultisampleState is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07730NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element of VkRenderPassMultiviewCreateInfo::pViewMasks must be less than pViewportState->viewportCount
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07731NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element of VkRenderPassMultiviewCreateInfo::pViewMasks must be less than pViewportState->scissorCount
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07854YNoneexplicitVkGraphicsPipelineCreateInfocoreIf VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extension
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07855YNegativeDynamicState.DiscardRectanglesVersionexplicitVkGraphicsPipelineCreateInfocoreIf VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extension
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07856YNoneexplicitVkGraphicsPipelineCreateInfocoreIf VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extension
VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pInputAssemblyState is not NULL it must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both libraries must be equal
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both libraries must be equal
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611NNoneexplicitVkGraphicsPipelineCreateInfocoreAny pipeline libraries included via VkPipelineLibraryCreateInfoKHR::pLibraries must not include any state subset already defined by this structure or defined by any other pipeline library in VkPipelineLibraryCreateInfoKHR::pLibraries
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613YNegativeGraphicsLibrary.SetLayoutCountLinkingexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was not created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by each library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615YNegativeGraphicsLibrary.IndependentSetsLinkOnlyexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by both libraries must have been created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which either layout was created with that are not VK_NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the other library's layout
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, any descriptor set layout N specified by layout in both libraries which include bindings accessed by shader stages in each must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621YNegativeGraphicsLibrary.PushConstantDifferentCount, NegativeGraphicsLibrary.PushConstantMultiple, NegativeGraphicsLibrary.PushConstantSize, NegativeGraphicsLibrary.PushConstantStagesexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass used to create each library must be identical
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627YNegativeDynamicRendering.LibrariesViewMaskexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass was VK_NULL_HANDLE for both libraries, the value of VkPipelineRenderingCreateInfo::viewMask set by each library must be identical
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the renderPass objects used to create each library must be compatible or all equal to VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634NNoneexplicitVkGraphicsPipelineCreateInfocoreIf an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the library
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, the pMultisampleState used to create each library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState->sampleShading equal VK_TRUE, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create each library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639NNoneexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646YNegativeGraphicsLibrary.PipelineExecutablePropertiesexplicitVkGraphicsPipelineCreateInfocoreIf VkPipelineLibraryCreateInfoKHR::pLibraries includes more than one library, and any library was created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, all libraries must have also been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647YNegativeGraphicsLibrary.PipelineExecutablePropertiesexplicitVkGraphicsPipelineCreateInfocoreIf VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one library, VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, and any library was created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, flags must include VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681YNegativeGraphicsLibrary.BindEmptyDS, NegativeGraphicsLibrary.NullDSLLinkingexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library's layout must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758YNegativeGraphicsLibrary.DSLShaderBindingsLinkOnlyexplicitVkGraphicsPipelineCreateInfocoreIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library's layout must not have shader bindings for shaders in the other subset
VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026YNegativeDynamicRendering.MissingMultisampleState, NegativeDynamicRendering.PipelineMissingMultisampleState, NegativeDynamicState.MultisampleStateIgnored, NegativeDynamicState.MultisampleStateIgnoredAlphaToOneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states is not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09027NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pMultisampleState is not NULL it must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pNext-pNextYNoneimplicitVkGraphicsPipelineCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAttachmentSampleCountInfoAMD, VkExternalFormatANDROID, VkGraphicsPipelineLibraryCreateInfoEXT, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, VkPipelineRepresentativeFragmentTestStateCreateInfoNV, or VkPipelineRobustnessCreateInfoEXT
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039NNoneexplicitVkGraphicsPipelineCreateInfocoreIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states are not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, then pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040YNoneexplicitVkGraphicsPipelineCreateInfocoreIf pRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-00729YNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.TessellationexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage
VUID-VkGraphicsPipelineCreateInfo-pStages-00730YNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.TessellationexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage
VUID-VkGraphicsPipelineCreateInfo-pStages-00732YNegativeGeometryTessellation.MismatchedTessellationExecutionModesexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline
VUID-VkGraphicsPipelineCreateInfo-pStages-00733YNegativeGeometryTessellation.MismatchedTessellationExecutionModesexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both stages contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline, they must both specify the same subdivision mode
VUID-VkGraphicsPipelineCreateInfo-pStages-00734YNegativeGeometryTessellation.MismatchedTessellationExecutionModesexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the output patch size in the pipeline
VUID-VkGraphicsPipelineCreateInfo-pStages-00735YNegativeGeometryTessellation.MismatchedTessellationExecutionModesexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both contain an OpExecutionMode instruction specifying the out patch size in the pipeline, they must both specify the same patch size
VUID-VkGraphicsPipelineCreateInfo-pStages-00738YNegativeGeometryTessellation.IncompatiblePrimitiveTopologyexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology specified in pInputAssembly
VUID-VkGraphicsPipelineCreateInfo-pStages-00739YNegativeGeometryTessellation.IncompatibleTessGeomPrimitiveTopologyexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology that is output by the tessellation stages
VUID-VkGraphicsPipelineCreateInfo-pStages-00740NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and fragment shader state, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the geometry shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths
VUID-VkGraphicsPipelineCreateInfo-pStages-00742NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and multiple pre-rasterization shader stages are included in pStages, the shader code for the entry points identified by those pStages and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkGraphicsPipelineCreateInfo-pStages-01565NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and an input attachment was referenced by an aspectMask at renderPass creation time, the fragment shader must only read from the aspects that were specified for that input attachment
VUID-VkGraphicsPipelineCreateInfo-pStages-02095YNegativeMesh.BasicUsage, NegativeMesh.BasicUsageNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state the geometric shader stages provided in pStages must be either from the mesh shading pipeline (stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT) or from the primitive shading pipeline (stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT)
VUID-VkGraphicsPipelineCreateInfo-pStages-02097YNegativeMesh.BasicUsage, NegativeMesh.BasicUsageNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires vertex input state, and pVertexInputState is not dynamic, then pVertexInputState must be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-02317NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, the Xfb execution mode can be specified by no more than one shader stage in pStages
VUID-VkGraphicsPipelineCreateInfo-pStages-02318YNegativeTransformFeedback.XfbExecutionModePipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and any shader stage in pStages specifies Xfb execution mode it must be the last pre-rasterization shader stage
VUID-VkGraphicsPipelineCreateInfo-pStages-06600YNegativeGraphicsLibrary.ImplicitVUIDsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkGraphicsPipelineCreateInfo-pStages-06894YNegativeGraphicsLibrary.PreRasterWithFS, NegativePipeline.RasterizerDiscardWithFragmentShaderexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state but not fragment shader state, elements of pStages must not have stage set to VK_SHADER_STAGE_FRAGMENT_BIT
VUID-VkGraphicsPipelineCreateInfo-pStages-06895YNegativeDynamicRendering.LibraryViewMask, NegativeGraphicsLibrary.FragmentStateWithPreRasterexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state but not pre-rasterization shader state, elements of pStages must not have stage set to a shader stage which participates in pre-rasterization
VUID-VkGraphicsPipelineCreateInfo-pStages-06896YNegativeGraphicsLibrary.MissingShaderStages, NegativeMesh.BasicUsage, NegativeMesh.BasicUsageNV, NegativePipeline.ShaderStageNameexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, all elements of pStages must have a stage set to a shader stage which participates in fragment shader state or pre-rasterization shader state
VUID-VkGraphicsPipelineCreateInfo-pStages-08711YNegativePipeline.ShaderTileImageexplicitVkGraphicsPipelineCreateInfocoreIf pStages includes a fragment shader stage, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable member of VkPipelineDepthStencilStateCreateInfo must be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-pStages-08712YNegativePipeline.ShaderTileImageexplicitVkGraphicsPipelineCreateInfocoreIf pStages includes a fragment shader stage, VK_DYNAMIC_STATE_STENCIL_WRITE_MASK is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the value of VkStencilOpState::writeMask for both front and back in VkPipelineDepthStencilStateCreateInfo must be 0
VUID-VkGraphicsPipelineCreateInfo-pStages-08888YNegativeGeometryTessellation.PatchListTopology, NegativeGraphicsLibrary.TessellationexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and vertex input state and pStages includes tessellation shader stages, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, the topology member of pInputAssembly must be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
VUID-VkGraphicsPipelineCreateInfo-pStages-09022YNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.TessellationexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage, and the VK_EXT_extended_dynamic_state3 extension is not enabled or the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state is not set, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pTessellationState-09023NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pTessellationState is not NULL it must be a pointer to a valid VkPipelineTessellationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08929YNegativeVertexInput.Attribute64bitInputAttributeexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit
VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08930YNegativeVertexInput.Attribute64bitShaderInputexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription::format must have a 64-bit component
VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-09198YNegativeVertexInput.Attribute64bitUnusedComponentexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format
VUID-VkGraphicsPipelineCreateInfo-pViewportState-09025NNoneexplicitVkGraphicsPipelineCreateInfocoreIf pViewportState is not NULL it must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878YNegativePipeline.PipelineCreationCacheControl, NegativePipeline.PipelineCreationFlags2CacheControlexplicitVkGraphicsPipelineCreateInfocoreIf the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368YNegativeProtectedMemory.PipelineProtectedAccessexplicitVkGraphicsPipelineCreateInfocoreIf the pipelineProtectedAccess feature is not enabled, flags must not include VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT or VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594YNegativePipeline.CreationFeedbackCountexplicitVkGraphicsPipelineCreateInfocoreIf VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503YNegativeFragmentShadingRate.PrimitiveWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is not included in pDynamicState->pDynamicStates, and VkPipelineViewportStateCreateInfo::viewportCount is greater than 1, entry points specified in pStages must not write to the PrimitiveShadingRateKHR built-in
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504YNegativeFragmentShadingRate.PrimitiveWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportIndex built-in, they must not also write to the PrimitiveShadingRateKHR built-in
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505YNegativeFragmentShadingRate.PrimitiveWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportMaskNV built-in, they must not also write to the PrimitiveShadingRateKHR built-in
VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899YNegativePipeline.RenderPassShaderResolveQCOMexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, rasterizationSamples is not dynamic, and if subpass has any input attachments, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with identical Stream values that match the rasterizationStream
VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decoration
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-09024YNegativeDynamicState.ViewportStateIgnored, NegativePipeline.MissingPipelineViewportStateexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, and the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state is enabled or the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and either the VK_EXT_extended_dynamic_state3 extension is not enabled, or either the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic states are not set, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06038YNegativeSubpass.InputAttachmentMissing, NegativeSubpass.InputAttachmentMissingArray, NegativeSubpass.InputAttachmentSharingVariable, NegativeSubpass.SubpassInputNotBoundDescriptorSetexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass
VUID-VkGraphicsPipelineCreateInfo-renderPass-06041YNegativePipeline.BlendingOnFormatWithoutBlendingSupportexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, then for each color attachment in the subpass, if the potential format features of the format of the corresponding attachment description do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-renderPass-06046YNegativePipeline.PipelineSubpassOutOfBoundsexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, subpass must be a valid subpass within renderPass
VUID-VkGraphicsPipelineCreateInfo-renderPass-06047YNegativeMultiview.FeaturesDisabledexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders
VUID-VkGraphicsPipelineCreateInfo-renderPass-06048YNegativeMultiview.FeaturesDisabledexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader
VUID-VkGraphicsPipelineCreateInfo-renderPass-06049NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output
VUID-VkGraphicsPipelineCreateInfo-renderPass-06050NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfaces
VUID-VkGraphicsPipelineCreateInfo-renderPass-06055YNegativeDynamicRendering.ColorAttachmentMismatchexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, pColorBlendState is not dynamic, and the pipeline is being created with fragment output interface state, pColorBlendState->attachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-06057YNegativeDynamicRendering.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewTessellationShader feature is not enabled, then pStages must not include tessellation shaders
VUID-VkGraphicsPipelineCreateInfo-renderPass-06058YNegativeDynamicRendering.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewGeometryShader feature is not enabled, then pStages must not include a geometry shader
VUID-VkGraphicsPipelineCreateInfo-renderPass-06059YNegativeDynamicRendering.ShaderLayerBuiltInexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfaces
VUID-VkGraphicsPipelineCreateInfo-renderPass-06061YNegativeDynamicRendering.CreateGraphicsPipeline, NegativeDynamicRendering.CreateGraphicsPipelineNoInfo, NegativeDynamicRendering.InputAttachmentCapabilityexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and renderPass is VK_NULL_HANDLE, fragment shaders in pStages must not include the InputAttachment capability
VUID-VkGraphicsPipelineCreateInfo-renderPass-06062YNegativeDynamicRendering.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state and renderPass is VK_NULL_HANDLE, for each color attachment format defined by the pColorAttachmentFormats member of VkPipelineRenderingCreateInfo, if its potential format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-renderPass-06063YNegativeDynamicRendering.MismatchingMixedAttachmentSamplesColorexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state and renderPass is VK_NULL_HANDLE, if the pNext chain includes VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV, the colorAttachmentCount member of that structure must be equal to the value of VkPipelineRenderingCreateInfo::colorAttachmentCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-06578YNegativeDynamicRendering.PipelineRenderingViewMaskParameterexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, the index of the most significant bit in VkPipelineRenderingCreateInfo::viewMask must be less than maxMultiviewViewCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-06579YNegativeDynamicRendering.PipelineRenderingParameters, NegativeDynamicRendering.RenderingInfoColorAttachmentFormatexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not 0, VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values
VUID-VkGraphicsPipelineCreateInfo-renderPass-06580YNegativeDynamicRendering.RenderingInfoColorAttachmentFormatexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, each element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06582YNegativeDynamicRendering.ColorAttachmentFormat, NegativeDynamicRendering.GraphicsPipelineCreateInfo, NegativeDynamicRendering.PipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and any element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, that format must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkGraphicsPipelineCreateInfo-renderPass-06583YNegativePipeline.PipelineRenderingInfoInvalidFormatsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06584YNegativePipeline.PipelineRenderingInfoInvalidFormatsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::stencilAttachmentFormat must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06585YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkGraphicsPipelineCreateInfo-renderPass-06586YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkGraphicsPipelineCreateInfo-renderPass-06587YNegativeDynamicRendering.PipelineRenderingParameters, NegativePipeline.PipelineRenderingInfoInvalidFormatsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth component
VUID-VkGraphicsPipelineCreateInfo-renderPass-06588YNegativeDynamicRendering.PipelineRenderingParameters, NegativePipeline.PipelineRenderingInfoInvalidFormatWithoutFragmentState, NegativePipeline.PipelineRenderingInfoInvalidFormatsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil component
VUID-VkGraphicsPipelineCreateInfo-renderPass-06589YNegativeDynamicRendering.PipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat
VUID-VkGraphicsPipelineCreateInfo-renderPass-06595NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state or fragment shader state, and VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly is VK_TRUE then VkMultiviewPerViewAttributesInfoNVX::perViewAttributes must also be VK_TRUE
VUID-VkGraphicsPipelineCreateInfo-renderPass-06603YNegativeGraphicsLibrary.ImplicitVUIDs, NegativePipeline.NullRenderPass, VkBestPracticesLayerTest.CreatePipelineWithoutRenderPassexplicitVkGraphicsPipelineCreateInfocoreIf pre-rasterization shader state, fragment shader state, or fragment output state, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle
VUID-VkGraphicsPipelineCreateInfo-renderPass-06854YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the VK_EXT_multisampled_render_to_single_sampled extension is enabled, rasterizationSamples is not dynamic, and subpass has a VkMultisampledRenderToSingleSampledInfoEXT structure included in the VkSubpassDescription2::pNext chain with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples member of pMultisampleState must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-renderPass-07064YNegativeMesh.BasicUsageexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader
VUID-VkGraphicsPipelineCreateInfo-renderPass-07609YNegativePipeline.ColorWriteCreateInfoEXTMaxAttachments, NegativePipeline.MismatchedRenderPassAndPipelineAttachments, NegativePipeline.NumBlendAttachMismatchexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the pColorBlendState pointer is not NULL, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass
VUID-VkGraphicsPipelineCreateInfo-renderPass-07717NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the ViewMask built-in decoration in their interfaces
VUID-VkGraphicsPipelineCreateInfo-renderPass-07718NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output
VUID-VkGraphicsPipelineCreateInfo-renderPass-07719NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the ViewIndex built-in decoration in their interfaces
VUID-VkGraphicsPipelineCreateInfo-renderPass-07720NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader
VUID-VkGraphicsPipelineCreateInfo-renderPass-08710YNegativePipeline.ShaderTileImageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and renderPass is not VK_NULL_HANDLE, fragment shaders in pStages must not include any of the TileImageColorReadAccessEXT, TileImageDepthReadAccessEXT, or TileImageStencilReadAccessEXT capabilities
VUID-VkGraphicsPipelineCreateInfo-renderPass-08744NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline requires fragment output state or fragment shader state, the pipeline enables sample shading, rasterizationSamples is not dynamic, and the pNext chain includes a VkPipelineRenderingCreateInfo structure, rasterizationSamples must be a valid VkSampleCountFlagBits value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for every element of depthAttachmentFormat, stencilAttachmentFormat and the pColorAttachmentFormats array which is not VK_FORMAT_UNDEFINED
VUID-VkGraphicsPipelineCreateInfo-renderPass-09028YNegativePipeline.DepthStencilRequiredexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, and the VK_EXT_extended_dynamic_state3 extension is not enabled or, any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-09030YNegativeDynamicState.ColorBlendStateIgnored, NegativePipeline.PipelineRenderpassCompatibilityexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, and VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-09033YNegativeDynamicRendering.GraphicsPipelineCreateInfo, NegativeGraphicsLibrary.MissingDSStateWithFragOutputStateexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment shader state and fragment output interface state, and either of VkPipelineRenderingCreateInfo::depthAttachmentFormat or VkPipelineRenderingCreateInfo::stencilAttachmentFormat are not VK_FORMAT_UNDEFINED, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-09035YNegativeGraphicsLibrary.DepthStencilStateIgnored, NegativeGraphicsLibrary.MissingDSStateexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state but not fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-09037YNegativeDynamicRendering.GraphicsPipelineCreateInfo, NegativeGraphicsLibrary.MissingColorBlendStateexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to 0, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderpass-06624NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderpass is not VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, renderPass must be compatible with that used to create the library
VUID-VkGraphicsPipelineCreateInfo-renderpass-06625YNegativeDynamicRendering.LibraryRenderPassexplicitVkGraphicsPipelineCreateInfocoreIf renderpass is VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of renderPass used to create that library must also be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-renderpass-06631YNegativeDynamicRendering.PipelineMissingMultisampleStateexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline requires fragment shader state, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states is not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, then pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-sType-sTypeYNoneimplicitVkGraphicsPipelineCreateInfocoresType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
VUID-VkGraphicsPipelineCreateInfo-sType-uniqueYNoneimplicitVkGraphicsPipelineCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900YNegativePipeline.RenderPassShaderResolveQCOMexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false
VUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08776YNegativeGeometryTessellation.PointSizeGeomShaderDontWriteexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a Geometry Execution Model, uses the OutputPoints Execution Mode, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to for every vertex emitted if maintenance5 is not enabled
VUID-VkGraphicsPipelineCreateInfo-stage-02096YNegativeGraphicsLibrary.MissingShaderStages, NegativeMesh.BasicUsage, NegativeMesh.BasicUsageNV, NegativePipeline.ShaderStageNameexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state the stage member of one element of pStages must be VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-stage-06897YNegativePipeline.DuplicateStageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment shader state and/or pre-rasterization shader state, any value of stage must not be set in more than one element of pStages
VUID-VkGraphicsPipelineCreateInfo-stageCount-06604YNegativeGraphicsLibrary.ImplicitVUIDsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state or fragment shader state, stageCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767YNegativePipeline.LineRasterizationexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires pre-rasterization shader state, the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]
VUID-VkGraphicsPipelineCreateInfo-subpass-00758YNegativePipeline.SubpassRasterizationSamplesexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, rasterizationSamples is not dynamic, and subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must follow the rules for a zero-attachment subpass
VUID-VkGraphicsPipelineCreateInfo-subpass-01411YNegativePipeline.FramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachment
VUID-VkGraphicsPipelineCreateInfo-subpass-01412YNegativePipeline.FramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachments
VUID-VkGraphicsPipelineCreateInfo-subpass-01505YNegativePipeline.AMDMixedAttachmentSamplesValidateGraphicsPipelineexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline requires fragment output interface state, and the VK_AMD_mixed_attachment_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must equal the maximum of the sample counts of those subpass attachments
VUID-VkGraphicsPipelineCreateInfo-topology-08773YNegativePipelineTopology.PointSize, NegativePipelineTopology.PointSizeDynamicAndRestricted, NegativePipelineTopology.PointSizeNonDynamicAndRestricted, NegativePipelineTopology.PointSizeNonDynamicAndUnrestrictedexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a Vertex Execution Model and no TessellationEvaluation or Geometry Execution Model, and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, a PointSize decorated variable must be written to if maintenance5 is not enabled
VUID-VkGraphicsPipelineCreateInfo-topology-08889YNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.Tessellation, NegativePipelineTopology.PatchListNoTessellation, NegativePipelineTopology.PrimitiveTopology, NegativePipelineTopology.PrimitiveTopologyListRestartexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and vertex input state and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then pStages must include tessellation shader stages
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-parameterYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXTcoreflags must be a valid combination of VkGraphicsPipelineLibraryFlagBitsEXT values
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-requiredbitmaskYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXTcoreflags must not be 0
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-sType-sTypeYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreThe deviceGeneratedCommands feature must be enabled
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoregroupCount must be at least 1 and as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreThe sum of groupCount including those groups added from referenced pPipelines must also be as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreThe state of the first element of pGroups must match its equivalent within the parent's VkGraphicsPipelineCreateInfo
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreEach element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreAll elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreMesh and regular primitive shading stages cannot be mixed across pGroups
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreIf groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreEach element of pPipelines must have been created with identical state to the pipeline currently created except the state that can be overridden by VkGraphicsShaderGroupCreateInfoNV
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoreIf pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sTypeYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNextNNoneimplicitVkGraphicsShaderGroupCreateInfoNVcorepNext must be NULL
VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889NNoneexplicitVkGraphicsShaderGroupCreateInfoNVcoreFor pStages, the same restrictions as in VkGraphicsPipelineCreateInfo::pStages apply
VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameterYNoneimplicitVkGraphicsShaderGroupCreateInfoNVcorepStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891NNoneexplicitVkGraphicsShaderGroupCreateInfoNVcoreFor pTessellationState, the same restrictions as in VkGraphicsPipelineCreateInfo::pTessellationState apply
VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890NNoneexplicitVkGraphicsShaderGroupCreateInfoNVcoreFor pVertexInputState, the same restrictions as in VkGraphicsPipelineCreateInfo::pVertexInputState apply
VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sTypeYNoneimplicitVkGraphicsShaderGroupCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888NNoneexplicitVkGraphicsShaderGroupCreateInfoNVcoreFor stageCount, the same restrictions as in VkGraphicsPipelineCreateInfo::stageCount apply
VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylengthYNoneimplicitVkGraphicsShaderGroupCreateInfoNVcorestageCount must be greater than 0
VUID-VkHdrMetadataEXT-pNext-pNextYNoneimplicitVkHdrMetadataEXTcorepNext must be NULL
VUID-VkHdrMetadataEXT-sType-sTypeYNoneimplicitVkHdrMetadataEXTcoresType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT
VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkHeadlessSurfaceCreateInfoEXTcoreflags must be 0
VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkHeadlessSurfaceCreateInfoEXTcorepNext must be NULL
VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkHeadlessSurfaceCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
VUID-VkHostImageCopyDevicePerformanceQueryEXT-sType-sTypeYNoneimplicitVkHostImageCopyDevicePerformanceQueryEXTcoresType must be VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT
VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08702YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08703YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkHostImageLayoutTransitionInfoEXT-image-01672YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask bit or VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkHostImageLayoutTransitionInfoEXT-image-01932YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkHostImageLayoutTransitionInfoEXT-image-03319YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkHostImageLayoutTransitionInfoEXT-image-03320YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkHostImageLayoutTransitionInfoEXT-image-09055YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreimage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
VUID-VkHostImageLayoutTransitionInfoEXT-image-09241YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf image has a color format that is single-plane, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkHostImageLayoutTransitionInfoEXT-image-09242YNoneexplicitVkHostImageLayoutTransitionInfoEXTcoreIf image has a color format and is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkHostImageLayoutTransitionInfoEXT-image-parameterYNoneimplicitVkHostImageLayoutTransitionInfoEXTcoreimage must be a valid VkImage handle
VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcorenewLayout must be one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts
VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameterYNoneimplicitVkHostImageLayoutTransitionInfoEXTcorenewLayout must be a valid VkImageLayout value
VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09229YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreoldLayout must be either VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources as specified in subresourceRange
VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09230YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf oldLayout is not VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED, it must be one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts
VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-parameterYNoneimplicitVkHostImageLayoutTransitionInfoEXTcoreoldLayout must be a valid VkImageLayout value
VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNextYNoneimplicitVkHostImageLayoutTransitionInfoEXTcorepNext must be NULL
VUID-VkHostImageLayoutTransitionInfoEXT-sType-sTypeYNoneimplicitVkHostImageLayoutTransitionInfoEXTcoresType must be VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01486YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoresubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01488YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoresubresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01724YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01725YNegativeHostImageCopy.HostTransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTcoreIf subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-parameterNNoneimplicitVkHostImageLayoutTransitionInfoEXTcoresubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmaskYNoneimplicitVkIOSSurfaceCreateInfoMVKcoreflags must be 0
VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNextYNoneimplicitVkIOSSurfaceCreateInfoMVKcorepNext must be NULL
VUID-VkIOSSurfaceCreateInfoMVK-pView-01316NNoneexplicitVkIOSSurfaceCreateInfoMVKcoreIf pView is a UIView object, it must be a valid UIView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateIOSSurfaceMVK must be called on the main thread
VUID-VkIOSSurfaceCreateInfoMVK-pView-04143NNoneexplicitVkIOSSurfaceCreateInfoMVKcoreIf pView is a CAMetalLayer object, it must be a valid CAMetalLayer
VUID-VkIOSSurfaceCreateInfoMVK-sType-sTypeYNoneimplicitVkIOSSurfaceCreateInfoMVKcoresType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
VUID-VkImageBlit-aspectMask-00238YNegativeImage.BlitColorToDepthexplicitVkImageBlitcoreThe aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageBlit-dstSubresource-parameterNNoneimplicitVkImageBlitcoredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit-layerCount-08800YNegativeImage.MiscBlitTestsexplicitVkImageBlitcoreIf neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match
VUID-VkImageBlit-layerCount-08801YNegativeImage.BlitRemainingArrayLayersexplicitVkImageBlitcoreIf one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer
VUID-VkImageBlit-srcSubresource-parameterNNoneimplicitVkImageBlitcoresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2-aspectMask-00238YNoneexplicitVkImageBlit2coreThe aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageBlit2-dstSubresource-parameterNNoneimplicitVkImageBlit2coredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2-layerCount-08800YNoneexplicitVkImageBlit2coreIf neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match
VUID-VkImageBlit2-layerCount-08801YNoneexplicitVkImageBlit2coreIf one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer
VUID-VkImageBlit2-pNext-pNextYNoneimplicitVkImageBlit2corepNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkImageBlit2-sType-sTypeYNoneimplicitVkImageBlit2coresType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2
VUID-VkImageBlit2-sType-uniqueYNoneimplicitVkImageBlit2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkImageBlit2-srcSubresource-parameterNNoneimplicitVkImageBlit2coresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCaptureDescriptorDataInfoEXT-image-08079YNegativeDescriptorBuffer.NotEnabledexplicitVkImageCaptureDescriptorDataInfoEXTcoreimage must have been created with VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageCreateInfo::flags
VUID-VkImageCaptureDescriptorDataInfoEXT-image-parameterYNoneimplicitVkImageCaptureDescriptorDataInfoEXTcoreimage must be a valid VkImage handle
VUID-VkImageCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkImageCaptureDescriptorDataInfoEXTcorepNext must be NULL
VUID-VkImageCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkImageCaptureDescriptorDataInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkImageCompressionControlEXT-flags-06747YNegativeImage.ImageCompressionControlexplicitVkImageCompressionControlEXTcoreflags must be one of VK_IMAGE_COMPRESSION_DEFAULT_EXT, VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT, VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, or VK_IMAGE_COMPRESSION_DISABLED_EXT
VUID-VkImageCompressionControlEXT-flags-06748YNegativeImage.ImageCompressionControlexplicitVkImageCompressionControlEXTcoreIf flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, pFixedRateFlags must not be NULL
VUID-VkImageCompressionControlEXT-sType-sTypeYNoneimplicitVkImageCompressionControlEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
VUID-VkImageCompressionPropertiesEXT-sType-sTypeYNoneimplicitVkImageCompressionPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401NNoneexplicitVkImageConstraintsInfoFUCHSIAcoreIf the attachmentFragmentShadingRate feature is enabled, and pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then pFormatConstraints->requiredFormatFeatures must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameterNNoneimplicitVkImageConstraintsInfoFUCHSIAcorebufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure
VUID-VkImageConstraintsInfoFUCHSIA-flags-parameterYNoneimplicitVkImageConstraintsInfoFUCHSIAcoreflags must be a valid combination of VkImageConstraintsInfoFlagBitsFUCHSIA values
VUID-VkImageConstraintsInfoFUCHSIA-formatConstraintsCount-arraylengthYNoneimplicitVkImageConstraintsInfoFUCHSIAcoreformatConstraintsCount must be greater than 0
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06395NNoneexplicitVkImageConstraintsInfoFUCHSIAcoreAll elements of pFormatConstraints must have at least one bit set in its VkImageFormatConstraintsInfoFUCHSIA::requiredFormatFeatures
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06396NNoneexplicitVkImageConstraintsInfoFUCHSIAcoreIf pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then pFormatConstraints->requiredFormatFeatures must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06397NNoneexplicitVkImageConstraintsInfoFUCHSIAcoreIf pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_STORAGE_BIT, then pFormatConstraints->requiredFormatFeatures must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06398NNoneexplicitVkImageConstraintsInfoFUCHSIAcoreIf pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then pFormatConstraints->requiredFormatFeatures must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06399NNoneexplicitVkImageConstraintsInfoFUCHSIAcoreIf pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then pFormatConstraints->requiredFormatFeatures must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06400NNoneexplicitVkImageConstraintsInfoFUCHSIAcoreIf pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then pFormatConstraints->requiredFormatFeatures must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-parameterYNoneimplicitVkImageConstraintsInfoFUCHSIAcorepFormatConstraints must be a valid pointer to an array of formatConstraintsCount valid VkImageFormatConstraintsInfoFUCHSIA structures
VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkImageConstraintsInfoFUCHSIAcorepNext must be NULL
VUID-VkImageConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkImageConstraintsInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
VUID-VkImageCopy-apiVersion-07940YNoneexplicitVkImageCopycoreIf the VK_KHR_sampler_ycbcr_conversion extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageCopy-apiVersion-07941YNegativeCommand.CopyImageLayerCountMismatchexplicitVkImageCopycoreIf the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageCopy-dstSubresource-parameterNNoneimplicitVkImageCopycoredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy-extent-06668YNegativeCommand.CopyImageZeroSizeexplicitVkImageCopycoreextent.width must not be 0
VUID-VkImageCopy-extent-06669YNegativeCommand.CopyImageZeroSizeexplicitVkImageCopycoreextent.height must not be 0
VUID-VkImageCopy-extent-06670YNegativeCommand.CopyImageZeroSizeexplicitVkImageCopycoreextent.depth must not be 0
VUID-VkImageCopy-srcSubresource-parameterNNoneimplicitVkImageCopycoresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2-apiVersion-07940YNoneexplicitVkImageCopy2coreIf the VK_KHR_sampler_ycbcr_conversion extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageCopy2-apiVersion-07941YNoneexplicitVkImageCopy2coreIf the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageCopy2-dstSubresource-parameterNNoneimplicitVkImageCopy2coredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2-extent-06668YNegativeHostImageCopy.HostCopyImageToImageexplicitVkImageCopy2coreextent.width must not be 0
VUID-VkImageCopy2-extent-06669YNegativeHostImageCopy.HostCopyImageToImageexplicitVkImageCopy2coreextent.height must not be 0
VUID-VkImageCopy2-extent-06670YNegativeHostImageCopy.HostCopyImageToImageexplicitVkImageCopy2coreextent.depth must not be 0
VUID-VkImageCopy2-pNext-pNextYNoneimplicitVkImageCopy2corepNext must be NULL
VUID-VkImageCopy2-sType-sTypeYNoneimplicitVkImageCopy2coresType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2
VUID-VkImageCopy2-srcSubresource-parameterNNoneimplicitVkImageCopy2coresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCreateInfo-Format-02536YNegativeImage.StencilexplicitVkImageCreateInfocoreIf Format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth
VUID-VkImageCreateInfo-None-01891YNegativeProtectedMemory.MemoryexplicitVkImageCreateInfocoreIf any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_CREATE_PROTECTED_BIT must not also be set
VUID-VkImageCreateInfo-None-01925YNegativeSparseImage.ImageUsageBitsexplicitVkImageCreateInfocoreIf any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set
VUID-VkImageCreateInfo-arrayLayers-00948YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfocorearrayLayers must be greater than 0
VUID-VkImageCreateInfo-arrayLayers-02256YNegativeImage.MaxLimitsArrayLayersexplicitVkImageCreateInfocorearrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-00944YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfocoreextent.width must be greater than 0
VUID-VkImageCreateInfo-extent-00945YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfocoreextent.height must be greater than 0
VUID-VkImageCreateInfo-extent-00946YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfocoreextent.depth must be greater than 0
VUID-VkImageCreateInfo-extent-02252YNegativeFragmentShadingRate.ImageMaxLimitsQCOM, NegativeImage.MaxLimitsExtent, NegativeImage.MaxLimitsFramebufferexplicitVkImageCreateInfocoreextent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-02253YNegativeFragmentShadingRate.ImageMaxLimitsQCOM, NegativeImage.MaxLimitsExtent, NegativeImage.MaxLimitsFramebuffer, NegativeYcbcr.FormatsexplicitVkImageCreateInfocoreextent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-02254YNegativeImage.MaxLimitsExtentexplicitVkImageCreateInfocoreextent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-flags-00949YNegativeImage.CubeCompatibleMustBeImageType2DexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-00950YNegativeImage.Array2DImageTypeexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D
VUID-VkImageCreateInfo-flags-00969YNegativeImage.ImageMisc, NegativeImage.SparseResidencyAliasedexplicitVkImageCreateInfocoreIf the sparseBinding feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT
VUID-VkImageCreateInfo-flags-00987YNegativeSparseImage.BindingImageBufferCreateexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT
VUID-VkImageCreateInfo-flags-01533YNegativeDynamicState.SampleLocationsexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format
VUID-VkImageCreateInfo-flags-01572YNegativeImage.BlockTextImageViewCompatibleFormatexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a compressed image format
VUID-VkImageCreateInfo-flags-01573YNegativeImage.BlockTextImageViewCompatibleFlagexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
VUID-VkImageCreateInfo-flags-01890YNegativeProtectedMemory.SubmitexplicitVkImageCreateInfocoreIf the protectedMemory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT
VUID-VkImageCreateInfo-flags-01924YNegativeImage.SparseResidencyAliasedexplicitVkImageCreateInfocoreIf the sparseResidencyAliased feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
VUID-VkImageCreateInfo-flags-02050YNegativeImage.CornerSampledImageNVexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, imageType must be VK_IMAGE_TYPE_2D or VK_IMAGE_TYPE_3D
VUID-VkImageCreateInfo-flags-02051YNegativeImage.CornerSampledImageNVexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT and the format must not be a depth/stencil format
VUID-VkImageCreateInfo-flags-02052YNegativeImage.CornerSampledImageNVexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_2D, extent.width and extent.height must be greater than 1
VUID-VkImageCreateInfo-flags-02053YNegativeImage.CornerSampledImageNVexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height, and extent.depth must be greater than 1
VUID-VkImageCreateInfo-flags-02259YNegativeImage.ImageMiscexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, then mipLevels must be one, arrayLayers must be one, imageType must be VK_IMAGE_TYPE_2D. and imageCreateMaybeLinear (as defined in Image Creation Limits) must be VK_FALSE
VUID-VkImageCreateInfo-flags-02557YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-02565YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-flags-02566YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-02567YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
VUID-VkImageCreateInfo-flags-02568YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1
VUID-VkImageCreateInfo-flags-04738YNegativeImage.ImageFormatListexplicitVkImageCreateInfocoreIf flags does not contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and the pNext chain includes a VkImageFormatListCreateInfo structure, then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1
VUID-VkImageCreateInfo-flags-06883YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-flags-07755YNegativeImage.View2DImageTypeexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT, imageType must be VK_IMAGE_TYPE_3D
VUID-VkImageCreateInfo-flags-08104YNegativeDescriptorBuffer.NotEnabledexplicitVkImageCreateInfocoreIf flags includes VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkImageCreateInfo-flags-08328YNegativeVideo.CreateImageProfileIndependentNotSupportedexplicitVkImageCreateInfocoreIf flags includes VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then videoMaintenance1 must be enabled
VUID-VkImageCreateInfo-flags-08329YNegativeVideo.CreateImageProfileIndependentexplicitVkImageCreateInfocoreIf flags includes VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR and usage does not include VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, then usage must not include VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
VUID-VkImageCreateInfo-flags-08331YNegativeVideo.CreateImageProfileIndependentexplicitVkImageCreateInfocoreIf flags includes VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then usage must not include VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
VUID-VkImageCreateInfo-flags-08865YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal
VUID-VkImageCreateInfo-flags-08866YNegativeImage.CubeCompatibleMustBeImageType2D, NegativeImage.ImageMinLimitsexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, arrayLayers must be greater than or equal to 6
VUID-VkImageCreateInfo-flags-09403YNegativeImage.ImageViewBreaksParameterCompatibilityRequirements, NegativeImage.ImageViewInvalidSubresourceRange, NegativeImage.IncompatibleArrayAndSparseFlagsexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, flags must not include VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, or VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-flags-parameterYNoneimplicitVkImageCreateInfocoreflags must be a valid combination of VkImageCreateFlagBits values
VUID-VkImageCreateInfo-format-01577YNegativeImage.DisjointWithoutAliasexplicitVkImageCreateInfocoreIf format is not a multi-planar format, and flags does not include VK_IMAGE_CREATE_ALIAS_BIT, flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT
VUID-VkImageCreateInfo-format-02537YNegativeImage.StencilexplicitVkImageCreateInfocoreIf format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight
VUID-VkImageCreateInfo-format-02538YNegativeImage.StencilexplicitVkImageCreateInfocoreIf the shaderStorageImageMultisample feature is not enabled, format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage including VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-format-02795YNegativeImage.StencilexplicitVkImageCreateInfocoreIf format is a depth-stencil format, usage includes VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageCreateInfo-format-02796YNegativeImage.StencilexplicitVkImageCreateInfocoreIf format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageCreateInfo-format-02797YNegativeImage.StencilexplicitVkImageCreateInfocoreIf format is a depth-stencil format, usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
VUID-VkImageCreateInfo-format-02798YNegativeImage.StencilexplicitVkImageCreateInfocoreIf format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
VUID-VkImageCreateInfo-format-04712YNegativeYcbcr.FormatsexplicitVkImageCreateInfocoreIf format has a _422 or _420 suffix, width must be a multiple of 2
VUID-VkImageCreateInfo-format-04713YNegativeYcbcr.FormatsexplicitVkImageCreateInfocoreIf format has a _420 suffix, height must be a multiple of 2
VUID-VkImageCreateInfo-format-06410YNegativeYcbcr.FormatsexplicitVkImageCreateInfocoreIf the image format is one of the formats that require a sampler Y'CBCR conversion, mipLevels must be 1
VUID-VkImageCreateInfo-format-06411YNegativeYcbcr.FormatsexplicitVkImageCreateInfocoreIf the image format is one of the formats that require a sampler Y'CBCR conversion, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-format-06412YNegativeYcbcr.FormatsexplicitVkImageCreateInfocoreIf the image format is one of the formats that require a sampler Y'CBCR conversion, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-format-parameterYNoneimplicitVkImageCreateInfocoreformat must be a valid VkFormat value
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514YNegativeFragmentShadingRate.ImageMaxLimitsQCOMexplicitVkImageCreateInfocoreIf the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to the ceiling of maxFramebufferWidth/minFragmentDensityTexelSize.width
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515YNegativeFragmentShadingRate.ImageMaxLimitsQCOMexplicitVkImageCreateInfocoreIf the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to the ceiling of maxFramebufferHeight/minFragmentDensityTexelSize.height
VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260YNegativeYcbcr.FormatsexplicitVkImageCreateInfocoreIf format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT
VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048YNegativeHostImageCopy.HostCopyImageToImageexplicitVkImageCreateInfocoreIf imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT, then usage must not contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251YNegativeAndroidHardwareBuffer.ImageCreate, NegativeHostImageCopy.HostCopyImageToImage, NegativeImage.DisjointWithoutAlias, NegativeImage.GetPhysicalDeviceImageFormatPropertiesexplicitVkImageCreateInfocoreEach of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts
VUID-VkImageCreateInfo-imageType-00956YNegativeImage.ImageMinLimits, NegativeYcbcr.FormatsexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1
VUID-VkImageCreateInfo-imageType-00957YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1
VUID-VkImageCreateInfo-imageType-00961YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1
VUID-VkImageCreateInfo-imageType-00970YNegativeSparseImage.ResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00971YNegativeSparseImage.ResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfocoreIf the sparseResidencyImage2D feature is not enabled, and imageType is VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00972YNegativeSparseImage.ResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfocoreIf the sparseResidencyImage3D feature is not enabled, and imageType is VK_IMAGE_TYPE_3D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00973YNegativeSparseImage.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf the sparseResidency2Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_2_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00974YNegativeSparseImage.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf the sparseResidency4Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_4_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00975YNegativeSparseImage.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf the sparseResidency8Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_8_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00976YNegativeSparseImage.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf the sparseResidency16Samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_16_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-02082YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-imageType-parameterYNoneimplicitVkImageCreateInfocoreimageType must be a valid VkImageType value
VUID-VkImageCreateInfo-imageView2DOn3DImage-04459YNegativePortabilitySubset.ImageexplicitVkImageCreateInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImage is VK_FALSE, flags must not contain VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
VUID-VkImageCreateInfo-initialLayout-00993YNegativeImage.ImageMiscexplicitVkImageCreateInfocoreinitialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkImageCreateInfo-initialLayout-parameterYNoneimplicitVkImageCreateInfocoreinitialLayout must be a valid VkImageLayout value
VUID-VkImageCreateInfo-mipLevels-00947YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfocoremipLevels must be greater than 0
VUID-VkImageCreateInfo-mipLevels-00958YNegativeImage.CornerSampledImageNV, NegativeImage.MaxLimitsMipLevelsAndExtentexplicitVkImageCreateInfocoremipLevels must be less than or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth
VUID-VkImageCreateInfo-mipLevels-02255YNegativeImage.MaxLimitsMipLevelsexplicitVkImageCreateInfocoremipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-multisampleArrayImage-04460YNegativePortabilitySubset.ImageexplicitVkImageCreateInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImage is VK_FALSE, and samples is not VK_SAMPLE_COUNT_1_BIT, then arrayLayers must be 1
VUID-VkImageCreateInfo-multisampledRenderToSingleSampled-06882YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkImageCreateInfocoreIf the multisampledRenderToSingleSampled feature is not enabled, flags must not contain VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT
VUID-VkImageCreateInfo-pNext-00988YNegativeExternalMemorySync.MemoryAndMemoryNVexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure
VUID-VkImageCreateInfo-pNext-00990YNegativeExternalMemorySync.CreateImageIncompatibleHandleTypesexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalMemoryImageCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes
VUID-VkImageCreateInfo-pNext-00991YNegativeExternalMemorySync.CreateImageIncompatibleHandleTypesNVexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, imageType, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes
VUID-VkImageCreateInfo-pNext-01443YNegativeExternalMemorySync.MemoryImageLayoutexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalMemoryImageCreateInfo or VkExternalMemoryImageCreateInfoNV structure whose handleTypes member is not 0, initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkImageCreateInfo-pNext-01974YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalFormatANDROID structure, and its externalFormat member is non-zero the format must be VK_FORMAT_UNDEFINED
VUID-VkImageCreateInfo-pNext-01975YNegativeAndroidHardwareBuffer.ImageCreate, NegativeImage.UndefinedFormatexplicitVkImageCreateInfocoreIf the pNext chain does not include a VkExternalFormatANDROID structure, or does and its externalFormat member is 0, the format must not be VK_FORMAT_UNDEFINED
VUID-VkImageCreateInfo-pNext-02262YNegativeImageDrm.BasicexplicitVkImageCreateInfocoreIf the pNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-VkImageCreateInfo-pNext-02393YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-pNext-02394YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth
VUID-VkImageCreateInfo-pNext-02396YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
VUID-VkImageCreateInfo-pNext-02397YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, or VK_IMAGE_USAGE_SAMPLED_BIT
VUID-VkImageCreateInfo-pNext-02398YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-pNext-06390NNoneexplicitVkImageCreateInfocoreIf the VkImage is to be used to import memory from a VkBufferCollectionFUCHSIA, a VkBufferCollectionImageCreateInfoFUCHSIA structure must be chained to pNext
VUID-VkImageCreateInfo-pNext-06722YNegativeImage.ImageFormatList, NegativeImage.ImageFormatListSizeCompatibleexplicitVkImageCreateInfocoreIf a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero, then each format in VkImageFormatListCreateInfo::pViewFormats must either be compatible with the format as described in the compatibility table or, if flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, be an uncompressed format that is size-compatible with format
VUID-VkImageCreateInfo-pNext-06743YNegativeImage.ImageCompressionControlPlaneCountexplicitVkImageCreateInfocoreIf the pNext chain includes a VkImageCompressionControlEXT structure, format is a multi-planar format, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be equal to the number of planes in format
VUID-VkImageCreateInfo-pNext-06744YNegativeImage.ImageCompressionControlPlaneCountexplicitVkImageCreateInfocoreIf the pNext chain includes a VkImageCompressionControlEXT structure, format is not a multi-planar format, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be 1
VUID-VkImageCreateInfo-pNext-06746YNegativeImageDrm.CompressionControlexplicitVkImageCreateInfocoreIf the pNext chain includes a VkImageCompressionControlEXT structure, it must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure
VUID-VkImageCreateInfo-pNext-06783YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be either VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT or VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT
VUID-VkImageCreateInfo-pNext-06784YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkImageCreateInfocoreIf the pNext chain includes a VkImportMetalTextureInfoEXT structure its plane member must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkImageCreateInfo-pNext-06785YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkImageCreateInfocoreIf the pNext chain includes a VkImportMetalTextureInfoEXT structure and the image does not have a multi-planar format, then VkImportMetalTextureInfoEXT::plane must be VK_IMAGE_ASPECT_PLANE_0_BIT
VUID-VkImageCreateInfo-pNext-06786YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkImageCreateInfocoreIf the pNext chain includes a VkImportMetalTextureInfoEXT structure and the image has a multi-planar format with only two planes, then VkImportMetalTextureInfoEXT::plane must not be VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkImageCreateInfo-pNext-06811YNegativeVideo.CreateImageIncompatibleProfile, NegativeVideo.CreateImageInvalidProfileList, NegativeVideo.CreateImageProfileIndependentexplicitVkImageCreateInfocoreIf the pNext chain includes a VkVideoProfileListInfoKHR structure with profileCount greater than 0, then supportedVideoFormat must be VK_TRUE
VUID-VkImageCreateInfo-pNext-08105YNegativeDescriptorBuffer.NotEnabledexplicitVkImageCreateInfocoreIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkImageCreateInfo-pNext-08951NNoneexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-pNext-08952NNoneexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth
VUID-VkImageCreateInfo-pNext-08953NNoneexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
VUID-VkImageCreateInfo-pNext-08954NNoneexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT
VUID-VkImageCreateInfo-pNext-08955NNoneexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-pNext-09457YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfocoreIf the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, and externalFormatResolve feature is not enabled, usage must not include VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkImageCreateInfo-pNext-pNextYNoneimplicitVkImageCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferCollectionImageCreateInfoFUCHSIA, VkDedicatedAllocationImageCreateInfoNV, VkExportMetalObjectCreateInfoEXT, VkExternalFormatANDROID, VkExternalFormatQNX, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageCompressionControlEXT, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkImportMetalIOSurfaceInfoEXT, VkImportMetalTextureInfoEXT, VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkOpticalFlowImageFormatInfoNV, or VkVideoProfileListInfoKHR
VUID-VkImageCreateInfo-physicalDeviceCount-01421YVkLayerTest.InvalidImageCreateFlagWithPhysicalDeviceCountexplicitVkImageCreateInfocoreIf the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
VUID-VkImageCreateInfo-sType-sTypeYNoneimplicitVkImageCreateInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
VUID-VkImageCreateInfo-sType-uniqueYNoneimplicitVkImageCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT or VkImportMetalTextureInfoEXT
VUID-VkImageCreateInfo-samples-02083YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-samples-02257YNegativeImage.ImageMiscexplicitVkImageCreateInfocoreIf samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in Image Creation Limits) must be VK_FALSE,
VUID-VkImageCreateInfo-samples-02258YNegativeImage.MaxLimitsSamples, NegativeYcbcr.FormatsexplicitVkImageCreateInfocoresamples must be a valid VkSampleCountFlagBits value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-samples-02558YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfocoreIf samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
VUID-VkImageCreateInfo-samples-parameterYNoneimplicitVkImageCreateInfocoresamples must be a valid VkSampleCountFlagBits value
VUID-VkImageCreateInfo-shadingRateImage-07727YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkImageCreateInfocoreIf the shadingRateImage feature is enabled and usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-sharingMode-00941YNegativeImage.CreateImageSharingModeConcurrentQueueFamiliesexplicitVkImageCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkImageCreateInfo-sharingMode-00942YNegativeImage.CreateImageSharingModeConcurrentQueueFamiliesexplicitVkImageCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkImageCreateInfo-sharingMode-01420YNegativeImage.CreateImageSharingModeConcurrentQueueFamiliesexplicitVkImageCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device
VUID-VkImageCreateInfo-sharingMode-parameterYNoneimplicitVkImageCreateInfocoresharingMode must be a valid VkSharingMode value
VUID-VkImageCreateInfo-tiling-02261YNegativeImageDrm.BasicexplicitVkImageCreateInfocoreIf tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the pNext chain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structures
VUID-VkImageCreateInfo-tiling-02353YNegativeImageDrm.MutableFormatexplicitVkImageCreateInfocoreIf tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount
VUID-VkImageCreateInfo-tiling-04121YNegativeImage.SparseResidencyLinear, NegativeSparseImage.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-tiling-parameterYNoneimplicitVkImageCreateInfocoretiling must be a valid VkImageTiling value
VUID-VkImageCreateInfo-usage-00963YNegativeImage.ImageMiscexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set
VUID-VkImageCreateInfo-usage-00964YNegativeImage.MaxLimitsFramebufferexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth
VUID-VkImageCreateInfo-usage-00965YNegativeImage.MaxLimitsFramebufferexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight
VUID-VkImageCreateInfo-usage-00966YNegativeImage.ImageMiscexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageCreateInfo-usage-00968YNegativeImage.ImageMiscexplicitVkImageCreateInfocoreIf the shaderStorageImageMultisample feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-usage-04815YNegativeVideo.CreateImageInvalidProfileListexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, and flags does not include VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying a decode operation
VUID-VkImageCreateInfo-usage-04816YNegativeVideo.CreateImageInvalidProfileListexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, and flags does not include VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then the pNext chain must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR structure with a videoCodecOperation member specifying an encode operation
VUID-VkImageCreateInfo-usage-04992NNoneexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, tiling must be VK_IMAGE_TILING_LINEAR
VUID-VkImageCreateInfo-usage-parameterYNoneimplicitVkImageCreateInfocoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageCreateInfo-usage-requiredbitmaskYNoneimplicitVkImageCreateInfocoreusage must not be 0
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268YNegativeImageDrm.BasicexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTcoreFor each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269YNegativeImageDrm.BasicexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTcoreFor each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent.depth is 1
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTcoredrmFormatModifier must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTcoredrmFormatModifierPlaneCount must be equal to the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with VkImageCreateInfo::format and drmFormatModifier, as found by querying VkDrmFormatModifierPropertiesListEXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-arraylengthYNoneimplicitVkImageDrmFormatModifierExplicitCreateInfoEXTcoredrmFormatModifierPlaneCount must be greater than 0
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameterYNoneimplicitVkImageDrmFormatModifierExplicitCreateInfoEXTcorepPlaneLayouts must be a valid pointer to an array of drmFormatModifierPlaneCount VkSubresourceLayout structures
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierExplicitCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267YNegativeImageDrm.BasicexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTcoreFor each element of pPlaneLayouts, size must be 0
VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylengthYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXTcoredrmFormatModifierCount must be greater than 0
VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263NNoneexplicitVkImageDrmFormatModifierListCreateInfoEXTcoreEach modifier in pDrmFormatModifiers must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT
VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-parameterYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXTcorepDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values
VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNextYNoneimplicitVkImageDrmFormatModifierPropertiesEXTcorepNext must be NULL
VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
VUID-VkImageFormatConstraintsInfoFUCHSIA-colorSpaceCount-arraylengthYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcorecolorSpaceCount must be greater than 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-flags-zerobitmaskYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcoreflags must be 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-imageCreateInfo-parameterNNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcoreimageCreateInfo must be a valid VkImageCreateInfo structure
VUID-VkImageFormatConstraintsInfoFUCHSIA-pColorSpaces-parameterYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcorepColorSpaces must be a valid pointer to an array of colorSpaceCount valid VkSysmemColorSpaceFUCHSIA structures
VUID-VkImageFormatConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcorepNext must be NULL
VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-parameterYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcorerequiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-requiredbitmaskYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcorerequiredFormatFeatures must not be 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
VUID-VkImageFormatListCreateInfo-pViewFormats-parameterNNoneimplicitVkImageFormatListCreateInfocoreIf viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values
VUID-VkImageFormatListCreateInfo-sType-sTypeYNoneimplicitVkImageFormatListCreateInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
VUID-VkImageFormatProperties2-pNext-pNextYNoneimplicitVkImageFormatProperties2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkHostImageCopyDevicePerformanceQueryEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD
VUID-VkImageFormatProperties2-sType-sTypeYNoneimplicitVkImageFormatProperties2coresType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
VUID-VkImageFormatProperties2-sType-uniqueYNoneimplicitVkImageFormatProperties2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier-None-09052YNoneexplicitVkImageMemoryBarriercoreIf the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED
VUID-VkImageMemoryBarrier-None-09053YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarriercoreIf the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL
VUID-VkImageMemoryBarrier-None-09054YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarriercoreIf the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL
VUID-VkImageMemoryBarrier-None-09119YNoneexplicitVkImageMemoryBarriercoreIf the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL
VUID-VkImageMemoryBarrier-None-09120YNoneexplicitVkImageMemoryBarriercoreIf the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL
VUID-VkImageMemoryBarrier-aspectMask-08702YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkImageMemoryBarrier-aspectMask-08703YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkImageMemoryBarrier-attachmentFeedbackLoopLayout-07313YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkImageMemoryBarriercoreIf the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkImageMemoryBarrier-dstQueueFamilyIndex-09122YNoneexplicitVkImageMemoryBarriercoreIf the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier-image-01672YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask bit or VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier-image-01932YNegativeImage.TransitionNonSparseImageLayoutWithoutBoundMemoryexplicitVkImageMemoryBarriercoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageMemoryBarrier-image-03319YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkImageMemoryBarrier-image-03320YNegativeSyncObject.DepthStencilImageNonSeparateexplicitVkImageMemoryBarriercoreIf image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkImageMemoryBarrier-image-09117YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarriercoreIf image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family
VUID-VkImageMemoryBarrier-image-09118YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarriercoreIf image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family
VUID-VkImageMemoryBarrier-image-09241YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf image has a color format that is single-plane, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier-image-09242YNoneexplicitVkImageMemoryBarriercoreIf image has a color format and is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier-image-parameterYNoneimplicitVkImageMemoryBarriercoreimage must be a valid VkImage handle
VUID-VkImageMemoryBarrier-newLayout-01198YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkImageMemoryBarrier-newLayout-parameterYNoneimplicitVkImageMemoryBarriercorenewLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier-oldLayout-01197YNegativeImage.ImageLayout, NegativeSyncObject.Barriers, VkAmdBestPracticesLayerTest.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier
VUID-VkImageMemoryBarrier-oldLayout-01208YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01209YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01210YNegativeImage.ImageLayout, NegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01211YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01212YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VUID-VkImageMemoryBarrier-oldLayout-01213YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT
VUID-VkImageMemoryBarrier-oldLayout-01658YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01659YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-02088YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set
VUID-VkImageMemoryBarrier-oldLayout-parameterYNoneimplicitVkImageMemoryBarriercoreoldLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier-pNext-pNextYNoneimplicitVkImageMemoryBarriercoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT or VkSampleLocationsInfoEXT
VUID-VkImageMemoryBarrier-sType-sTypeYNoneimplicitVkImageMemoryBarriercoresType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
VUID-VkImageMemoryBarrier-sType-uniqueYNoneimplicitVkImageMemoryBarriercoreThe sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938NNoneexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939NNoneexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065NNoneexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066NNoneexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067NNoneexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068NNoneexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070NNoneexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07006YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then image must have been created with either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bits, and the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits, and the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07120YNegativeSyncObject.Barriers, NegativeVideo.ImageLayoutUsageMismatchexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07121YNegativeSyncObject.Barriers, NegativeVideo.ImageLayoutUsageMismatchexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07122YNegativeSyncObject.Barriers, NegativeVideo.ImageLayoutUsageMismatchexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07123YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07124YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07125YNegativeSyncObject.BarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-09121YNoneexplicitVkImageMemoryBarriercoreIf the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier-subresourceRange-01486YNegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageMemoryBarriercoresubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-01488YNegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageMemoryBarriercoresubresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-01724YNegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageMemoryBarriercoreIf subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-01725YNegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageMemoryBarriercoreIf subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-parameterNNoneimplicitVkImageMemoryBarriercoresubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageMemoryBarrier-synchronization2-07793YNoneexplicitVkImageMemoryBarriercoreIf the synchronization2 feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkImageMemoryBarrier-synchronization2-07794YNoneexplicitVkImageMemoryBarriercoreIf the synchronization2 feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkImageMemoryBarrier2-None-09119YNoneexplicitVkImageMemoryBarrier2coreIf the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL
VUID-VkImageMemoryBarrier2-None-09120YNoneexplicitVkImageMemoryBarrier2coreIf the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL
VUID-VkImageMemoryBarrier2-aspectMask-08702YNoneexplicitVkImageMemoryBarrier2coreIf the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkImageMemoryBarrier2-aspectMask-08703YNoneexplicitVkImageMemoryBarrier2coreIf the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkImageMemoryBarrier2-attachmentFeedbackLoopLayout-07313YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkImageMemoryBarrier2coreIf the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkImageMemoryBarrier2-dstAccessMask-03900YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03901YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03902YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03903YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03904YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-03905YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-03906YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-03907YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-03909YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-03910YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03911YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03912YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03913YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03914YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03915YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03916YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03917YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03919YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03920YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03922YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03923YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03924YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03925YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03926YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03927YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-03928YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-04747YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-04858YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-dstAccessMask-06256YNegativeRayTracing.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkImageMemoryBarrier2coreIf the rayQuery feature is not enabled and dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-07272YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-07454YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-07455NNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-dstAccessMask-07456NNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-dstAccessMask-07457NNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkImageMemoryBarrier2-dstAccessMask-07458NNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-08118YNoneexplicitVkImageMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-parameterYNoneimplicitVkImageMemoryBarrier2coredstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122YNoneexplicitVkImageMemoryBarrier2coreIf the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03929YNoneexplicitVkImageMemoryBarrier2coreIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkImageMemoryBarrier2-dstStageMask-03930YNoneexplicitVkImageMemoryBarrier2coreIf the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkImageMemoryBarrier2-dstStageMask-03931YNoneexplicitVkImageMemoryBarrier2coreIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03932YNoneexplicitVkImageMemoryBarrier2coreIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03933YNoneexplicitVkImageMemoryBarrier2coreIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03934YNoneexplicitVkImageMemoryBarrier2coreIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03935YNoneexplicitVkImageMemoryBarrier2coreIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-04957NNoneexplicitVkImageMemoryBarrier2coreIf the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-dstStageMask-04995NNoneexplicitVkImageMemoryBarrier2coreIf the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-dstStageMask-07316YNoneexplicitVkImageMemoryBarrier2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageMemoryBarrier2-dstStageMask-07946YNoneexplicitVkImageMemoryBarrier2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2-dstStageMask-parameterYNoneimplicitVkImageMemoryBarrier2coredstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkImageMemoryBarrier2-image-01672YNoneexplicitVkImageMemoryBarrier2coreIf image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask bit or VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier2-image-01932YNoneexplicitVkImageMemoryBarrier2coreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageMemoryBarrier2-image-03319YNoneexplicitVkImageMemoryBarrier2coreIf image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkImageMemoryBarrier2-image-03320YNegativeSyncObject.DepthStencilImageNonSeparateSync2, NegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkImageMemoryBarrier2-image-09117YNegativeSyncObject.Sync2BarrierQueueFamilyexplicitVkImageMemoryBarrier2coreIf image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family
VUID-VkImageMemoryBarrier2-image-09118YNegativeSyncObject.Sync2BarrierQueueFamilyexplicitVkImageMemoryBarrier2coreIf image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family
VUID-VkImageMemoryBarrier2-image-09241YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf image has a color format that is single-plane, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier2-image-09242YNoneexplicitVkImageMemoryBarrier2coreIf image has a color format and is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier2-image-parameterYNoneimplicitVkImageMemoryBarrier2coreimage must be a valid VkImage handle
VUID-VkImageMemoryBarrier2-newLayout-01198YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkImageMemoryBarrier2-newLayout-parameterYNoneimplicitVkImageMemoryBarrier2corenewLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier2-oldLayout-01197YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier
VUID-VkImageMemoryBarrier2-oldLayout-01208YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-oldLayout-01209YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-oldLayout-01210YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-oldLayout-01211YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-oldLayout-01212YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VUID-VkImageMemoryBarrier2-oldLayout-01213YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT
VUID-VkImageMemoryBarrier2-oldLayout-01658YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-oldLayout-01659YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-oldLayout-02088YNoneexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set
VUID-VkImageMemoryBarrier2-oldLayout-parameterYNoneimplicitVkImageMemoryBarrier2coreoldLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier2-pNext-pNextYNoneimplicitVkImageMemoryBarrier2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT or VkSampleLocationsInfoEXT
VUID-VkImageMemoryBarrier2-sType-sTypeYNoneimplicitVkImageMemoryBarrier2coresType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2
VUID-VkImageMemoryBarrier2-sType-uniqueYNoneimplicitVkImageMemoryBarrier2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier2-srcAccessMask-03900YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03901YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03902YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03903YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03904YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-03905YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-03906YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-03907YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-03909YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-03910YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03911YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03912YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03913YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03914YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03915YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03916YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03917YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03919YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03920YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03922YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03923YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03924YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03925YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03926YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03927YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-03928YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-04747YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-04858YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04859YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04860YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04861YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-srcAccessMask-06256YNegativeRayTracing.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkImageMemoryBarrier2coreIf the rayQuery feature is not enabled and srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-07272YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-07454YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-07455NNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-srcAccessMask-07456NNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-srcAccessMask-07457NNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkImageMemoryBarrier2-srcAccessMask-07458NNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-08118YNoneexplicitVkImageMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-parameterYNoneimplicitVkImageMemoryBarrier2coresrcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938NNoneexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939NNoneexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065NNoneexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066NNoneexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067NNoneexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068NNoneexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070NNoneexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then image must have been created with either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bits, and the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits, and the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07120YNegativeSyncObject.Sync2Barriers, NegativeVideo.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07121YNegativeSyncObject.Sync2Barriers, NegativeVideo.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07122YNegativeSyncObject.Sync2Barriers, NegativeVideo.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07123YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07124YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07125YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2coreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09121YNoneexplicitVkImageMemoryBarrier2coreIf the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03854YNegativeSyncObject.ImageBarrierWithHostStageexplicitVkImageMemoryBarrier2coreIf either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-VkImageMemoryBarrier2-srcStageMask-03855NNoneexplicitVkImageMemoryBarrier2coreIf srcStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, and srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be one of VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_UNDEFINED, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkImageMemoryBarrier2-srcStageMask-03929YNoneexplicitVkImageMemoryBarrier2coreIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkImageMemoryBarrier2-srcStageMask-03930YNoneexplicitVkImageMemoryBarrier2coreIf the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkImageMemoryBarrier2-srcStageMask-03931YNoneexplicitVkImageMemoryBarrier2coreIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03932YNoneexplicitVkImageMemoryBarrier2coreIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03933YNoneexplicitVkImageMemoryBarrier2coreIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03934YNoneexplicitVkImageMemoryBarrier2coreIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03935YNoneexplicitVkImageMemoryBarrier2coreIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-04957NNoneexplicitVkImageMemoryBarrier2coreIf the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-srcStageMask-04995NNoneexplicitVkImageMemoryBarrier2coreIf the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-srcStageMask-07316YNoneexplicitVkImageMemoryBarrier2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageMemoryBarrier2-srcStageMask-07946YNoneexplicitVkImageMemoryBarrier2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2-srcStageMask-parameterYNoneimplicitVkImageMemoryBarrier2coresrcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkImageMemoryBarrier2-subresourceRange-01486YNoneexplicitVkImageMemoryBarrier2coresubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2-subresourceRange-01488YNoneexplicitVkImageMemoryBarrier2coresubresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2-subresourceRange-01724YNoneexplicitVkImageMemoryBarrier2coreIf subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2-subresourceRange-01725YNoneexplicitVkImageMemoryBarrier2coreIf subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2-subresourceRange-parameterNNoneimplicitVkImageMemoryBarrier2coresubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageMemoryBarrier2-synchronization2-07793YNegativeSyncObject.Sync2LayoutFeatureexplicitVkImageMemoryBarrier2coreIf the synchronization2 feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkImageMemoryBarrier2-synchronization2-07794YNegativeSyncObject.Sync2LayoutFeatureexplicitVkImageMemoryBarrier2coreIf the synchronization2 feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkImageMemoryRequirementsInfo2-image-01589YNegativeMemory.MemoryRequirements, NegativeYcbcr.DisjointImageWithDrmFormatModifierexplicitVkImageMemoryRequirementsInfo2coreIf image was created with a multi-planar format and the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure
VUID-VkImageMemoryRequirementsInfo2-image-01590YNegativeMemory.MemoryRequirementsexplicitVkImageMemoryRequirementsInfo2coreIf image was not created with the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure
VUID-VkImageMemoryRequirementsInfo2-image-01897YNegativeAndroidHardwareBuffer.FetchUnboundImageInfoexplicitVkImageMemoryRequirementsInfo2coreIf image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory
VUID-VkImageMemoryRequirementsInfo2-image-02279YNegativeYcbcr.DisjointImageWithDrmFormatModifierexplicitVkImageMemoryRequirementsInfo2coreIf image was created with VK_IMAGE_CREATE_DISJOINT_BIT and with VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure
VUID-VkImageMemoryRequirementsInfo2-image-02280YNegativeMemory.MemoryRequirementsexplicitVkImageMemoryRequirementsInfo2coreIf image was created with a single-plane format and with any tiling other than VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure
VUID-VkImageMemoryRequirementsInfo2-image-08961NNoneexplicitVkImageMemoryRequirementsInfo2coreIf image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX external memory handle type, then image must be bound to memory
VUID-VkImageMemoryRequirementsInfo2-image-parameterYNoneimplicitVkImageMemoryRequirementsInfo2coreimage must be a valid VkImage handle
VUID-VkImageMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkImageMemoryRequirementsInfo2corepNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo
VUID-VkImageMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkImageMemoryRequirementsInfo2coresType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
VUID-VkImageMemoryRequirementsInfo2-sType-uniqueYNoneimplicitVkImageMemoryRequirementsInfo2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmaskYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIAcoreflags must be 0
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863NNoneexplicitVkImagePipeSurfaceCreateInfoFUCHSIAcoreimagePipeHandle must be a valid zx_handle_t
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNextYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIAcorepNext must be NULL
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281YNegativeMemory.MemoryRequirementsexplicitVkImagePlaneMemoryRequirementsInfocoreIf the image's tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid multi-planar aspect mask bit
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282YNegativeImageDrm.MultiPlanarGetImageMemoryRequirementsexplicitVkImagePlaneMemoryRequirementsInfocoreIf the image's tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameterYNoneimplicitVkImagePlaneMemoryRequirementsInfocoreplaneAspect must be a valid VkImageAspectFlagBits value
VUID-VkImagePlaneMemoryRequirementsInfo-sType-sTypeYNoneimplicitVkImagePlaneMemoryRequirementsInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
VUID-VkImageResolve-aspectMask-00266YNegativeImage.ResolveDepthImageexplicitVkImageResolvecoreThe aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageResolve-dstSubresource-parameterNNoneimplicitVkImageResolvecoredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve-layerCount-08803YNegativeCommand.ResolveImageImageTypeexplicitVkImageResolvecoreIf neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageResolve-layerCount-08804YNoneexplicitVkImageResolvecoreIf one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer
VUID-VkImageResolve-srcSubresource-parameterNNoneimplicitVkImageResolvecoresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve2-aspectMask-00266YNoneexplicitVkImageResolve2coreThe aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageResolve2-dstSubresource-parameterNNoneimplicitVkImageResolve2coredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve2-layerCount-08803YNoneexplicitVkImageResolve2coreIf neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageResolve2-layerCount-08804YNoneexplicitVkImageResolve2coreIf one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer
VUID-VkImageResolve2-pNext-pNextYNoneimplicitVkImageResolve2corepNext must be NULL
VUID-VkImageResolve2-sType-sTypeYNoneimplicitVkImageResolve2coresType must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2
VUID-VkImageResolve2-srcSubresource-parameterNNoneimplicitVkImageResolve2coresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageSparseMemoryRequirementsInfo2-image-parameterYNoneimplicitVkImageSparseMemoryRequirementsInfo2coreimage must be a valid VkImage handle
VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkImageSparseMemoryRequirementsInfo2corepNext must be NULL
VUID-VkImageSparseMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkImageSparseMemoryRequirementsInfo2coresType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
VUID-VkImageStencilUsageCreateInfo-sType-sTypeYNoneimplicitVkImageStencilUsageCreateInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539YNegativeImage.StencilexplicitVkImageStencilUsageCreateInfocoreIf stencilUsage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, it must not include bits other than VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageStencilUsageCreateInfo-stencilUsage-parameterYNoneimplicitVkImageStencilUsageCreateInfocorestencilUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmaskYNoneimplicitVkImageStencilUsageCreateInfocorestencilUsage must not be 0
VUID-VkImageSubresource-aspectMask-parameterYNoneimplicitVkImageSubresourcecoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresource-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourcecoreaspectMask must not be 0
VUID-VkImageSubresource2KHR-imageSubresource-parameterNNoneimplicitVkImageSubresource2KHRcoreimageSubresource must be a valid VkImageSubresource structure
VUID-VkImageSubresource2KHR-pNext-pNextYNoneimplicitVkImageSubresource2KHRcorepNext must be NULL
VUID-VkImageSubresource2KHR-sType-sTypeYNoneimplicitVkImageSubresource2KHRcoresType must be VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
VUID-VkImageSubresourceLayers-aspectMask-00167YNegativeCommand.CopyImageAspectMismatch, NegativeHostImageCopy.HostCopyImageToImageexplicitVkImageSubresourceLayerscoreIf aspectMask contains VK_IMAGE_ASPECT_COLOR_BIT, it must not contain either of VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkImageSubresourceLayers-aspectMask-00168YNegativeCommand.CopyImageAspectMismatch, NegativeHostImageCopy.HostCopyImageToImageexplicitVkImageSubresourceLayerscoreaspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkImageSubresourceLayers-aspectMask-02247YNegativeCommand.CopyImageAspectMismatch, NegativeHostImageCopy.HostCopyImageToImageexplicitVkImageSubresourceLayerscoreaspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkImageSubresourceLayers-aspectMask-parameterYNoneimplicitVkImageSubresourceLayerscoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresourceLayers-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceLayerscoreaspectMask must not be 0
VUID-VkImageSubresourceLayers-layerCount-01700YNegativeCommand.CopyImageLayerCount, NegativeHostImageCopy.HostCopyImageToImage, NegativeImage.MiscBlitTestsexplicitVkImageSubresourceLayerscoreIf layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0
VUID-VkImageSubresourceLayers-layerCount-09243YNegativeCommand.CopyImageLayerCount, NegativeCommand.CopyImageRemainingLayersexplicitVkImageSubresourceLayerscoreIf the maintenance5 feature is not enabled, layerCount must not be VK_REMAINING_ARRAY_LAYERS
VUID-VkImageSubresourceRange-aspectMask-01670YNegativeImage.ImageSubresourceRangeAspectMaskexplicitVkImageSubresourceRangecoreIf aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, then it must not include any of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkImageSubresourceRange-aspectMask-02278YNegativeImageDrm.ImageSubresourceRangeAspectMaskexplicitVkImageSubresourceRangecoreaspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkImageSubresourceRange-aspectMask-parameterYNoneimplicitVkImageSubresourceRangecoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresourceRange-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceRangecoreaspectMask must not be 0
VUID-VkImageSubresourceRange-layerCount-01721YNegativeCommand.ClearColorImageWithRange, NegativeCommand.ClearDepthStencilWithRange, NegativeImage.ImageViewInvalidSubresourceRange, NegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageSubresourceRangecoreIf layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0
VUID-VkImageSubresourceRange-levelCount-01720YNegativeCommand.ClearColorImageWithRange, NegativeCommand.ClearDepthStencilWithRange, NegativeImage.ImageViewInvalidSubresourceRange, NegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageSubresourceRangecoreIf levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0
VUID-VkImageSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkImageSwapchainCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995YNegativeWsi.IncompatibleImageWithSwapchain, NegativeWsi.SwapchainImageexplicitVkImageSwapchainCreateInfoKHRcoreIf swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain
VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameterYNoneimplicitVkImageSwapchainCreateInfoKHRcoreIf swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle
VUID-VkImageToMemoryCopyEXT-aspectMask-09103YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkImageToMemoryCopyEXTcoreThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkImageToMemoryCopyEXT-imageExtent-06659YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkImageToMemoryCopyEXTcoreimageExtent.width must not be 0
VUID-VkImageToMemoryCopyEXT-imageExtent-06660YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkImageToMemoryCopyEXTcoreimageExtent.height must not be 0
VUID-VkImageToMemoryCopyEXT-imageExtent-06661YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkImageToMemoryCopyEXTcoreimageExtent.depth must not be 0
VUID-VkImageToMemoryCopyEXT-imageSubresource-parameterNNoneimplicitVkImageToMemoryCopyEXTcoreimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageToMemoryCopyEXT-memoryImageHeight-09102YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkImageToMemoryCopyEXTcorememoryImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkImageToMemoryCopyEXT-memoryRowLength-09101YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkImageToMemoryCopyEXTcorememoryRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkImageToMemoryCopyEXT-pHostPointer-09066YNoneexplicitVkImageToMemoryCopyEXTcorepHostPointer must point to memory that is large enough to contain all memory locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
VUID-VkImageToMemoryCopyEXT-pHostPointer-parameterYNoneimplicitVkImageToMemoryCopyEXTcorepHostPointer must be a pointer value
VUID-VkImageToMemoryCopyEXT-pNext-pNextYNoneimplicitVkImageToMemoryCopyEXTcorepNext must be NULL
VUID-VkImageToMemoryCopyEXT-pRegions-09067YNegativeHostImageCopy.ImageMemoryOverlapexplicitVkImageToMemoryCopyEXTcoreThe union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkImageToMemoryCopyEXT-sType-sTypeYNoneimplicitVkImageToMemoryCopyEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230YNegativeImage.AstcDecodeModeexplicitVkImageViewASTCDecodeModeEXTcoredecodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231YNegativeImage.AstcDecodeModeexplicitVkImageViewASTCDecodeModeEXTcoreIf the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232NNoneexplicitVkImageViewASTCDecodeModeEXTcoreIf decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameterYNoneimplicitVkImageViewASTCDecodeModeEXTcoredecodeMode must be a valid VkFormat value
VUID-VkImageViewASTCDecodeModeEXT-format-04084YNegativeImage.AstcDecodeModeexplicitVkImageViewASTCDecodeModeEXTcoreformat of the image view must be one of the ASTC Compressed Image Formats
VUID-VkImageViewASTCDecodeModeEXT-sType-sTypeYNoneimplicitVkImageViewASTCDecodeModeEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
VUID-VkImageViewAddressPropertiesNVX-pNext-pNextYNoneimplicitVkImageViewAddressPropertiesNVXcorepNext must be NULL
VUID-VkImageViewAddressPropertiesNVX-sType-sTypeYNoneimplicitVkImageViewAddressPropertiesNVXcoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-08083YNegativeDescriptorBuffer.NotEnabledexplicitVkImageViewCaptureDescriptorDataInfoEXTcoreimageView must have been created with VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageViewCreateInfo::flags
VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-parameterYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXTcoreimageView must be a valid VkImageView handle
VUID-VkImageViewCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXTcorepNext must be NULL
VUID-VkImageViewCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkImageViewCreateInfo-None-02273YNegativeAndroidHardwareBuffer.CreateImageView, NegativePortabilitySubset.ImageViewFormatReinterpretationComponentCountexplicitVkImageViewCreateInfocoreThe format features of the resultant image view must contain at least one bit
VUID-VkImageViewCreateInfo-components-parameterNNoneimplicitVkImageViewCreateInfocorecomponents must be a valid VkComponentMapping structure
VUID-VkImageViewCreateInfo-flags-02572YNegativeFragmentShadingRate.FragmentDensityMapDisabledexplicitVkImageViewCreateInfocoreIf the fragmentDensityMapDynamic feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
VUID-VkImageViewCreateInfo-flags-03567YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageViewCreateInfocoreIf the fragmentDensityMapDeferred feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
VUID-VkImageViewCreateInfo-flags-03568YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageViewCreateInfocoreIf flags contains VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
VUID-VkImageViewCreateInfo-flags-04116YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageViewCreateInfocoreIf flags does not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT and image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, its flags must not contain any of VK_IMAGE_CREATE_PROTECTED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
VUID-VkImageViewCreateInfo-flags-08106YNegativeDescriptorBuffer.NotEnabledexplicitVkImageViewCreateInfocoreIf flags includes VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkImageViewCreateInfo-flags-parameterYNoneimplicitVkImageViewCreateInfocoreflags must be a valid combination of VkImageViewCreateFlagBits values
VUID-VkImageViewCreateInfo-format-04714NNoneexplicitVkImageViewCreateInfocoreIf format has a _422 or _420 suffix then image must have been created with a width that is a multiple of 2
VUID-VkImageViewCreateInfo-format-04715NNoneexplicitVkImageViewCreateInfocoreIf format has a _420 suffix then image must have been created with a height that is a multiple of 2
VUID-VkImageViewCreateInfo-format-06415YNegativeImage.ImageViewMissingYcbcrConversion, NegativeYcbcr.MultiplaneIncompatibleViewFormatexplicitVkImageViewCreateInfocoreIf the image view requires a sampler Y'CBCR conversion and usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE
VUID-VkImageViewCreateInfo-format-parameterYNoneimplicitVkImageViewCreateInfocoreformat must be a valid VkFormat value
VUID-VkImageViewCreateInfo-image-01003YNegativeFragmentShadingRate.ShadingRateImageNV, NegativeImage.ImageViewBreaksParameterCompatibilityRequirements, NegativeVideo.CreateImageViewInvalidViewTypeexplicitVkImageViewCreateInfocoreIf image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-VkImageViewCreateInfo-image-01020YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageViewCreateInfo-image-01583YNegativeImage.BlockTexelViewFormatexplicitVkImageViewCreateInfocoreIf image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image
VUID-VkImageViewCreateInfo-image-01586YNegativeYcbcr.MultiplaneIncompatibleViewFormatexplicitVkImageViewCreateInfocoreIf image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of the multi-planar aspect mask bits, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible Formats of Planes of Multi-Planar Formats
VUID-VkImageViewCreateInfo-image-01761YNegativeImage.ImageFormatList, NegativeImage.ImageViewDifferentClass, NegativeImage.ImageViewFormatFeatureMismatch, NegativeImage.ImageViewIncompatibleDepthFormat, NegativeImage.ImageViewIncompatibleFormatexplicitVkImageViewCreateInfocoreIf image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes
VUID-VkImageViewCreateInfo-image-01762YNegativeAndroidHardwareBuffer.CreateImageView, NegativeImage.ImageViewNoMutableFormatBitexplicitVkImageViewCreateInfocoreIf image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, or if the format of the image is a multi-planar format and if subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, format must be identical to the format used to create image
VUID-VkImageViewCreateInfo-image-02086YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkImageViewCreateInfocoreIf image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY
VUID-VkImageViewCreateInfo-image-02087YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkImageViewCreateInfocoreIf the shadingRateImage feature is enabled, and If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, format must be VK_FORMAT_R8_UINT
VUID-VkImageViewCreateInfo-image-02399YNegativeAndroidHardwareBuffer.CreateImageViewexplicitVkImageViewCreateInfocoreIf image has an Android external format, format must be VK_FORMAT_UNDEFINED
VUID-VkImageViewCreateInfo-image-02400YNegativeAndroidHardwareBuffer.CreateImageViewexplicitVkImageViewCreateInfocoreIf image has an Android external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image
VUID-VkImageViewCreateInfo-image-02401YNegativeAndroidHardwareBuffer.CreateImageViewexplicitVkImageViewCreateInfocoreIf image has an Android external format, all members of components must be the identity swizzle
VUID-VkImageViewCreateInfo-image-02571YNoneexplicitVkImageViewCreateInfocoreIf image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1
VUID-VkImageViewCreateInfo-image-02724YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing
VUID-VkImageViewCreateInfo-image-03569YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageViewCreateInfocoreIf image was created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT and usage containing VK_IMAGE_USAGE_SAMPLED_BIT, subresourceRange.layerCount must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxSubsampledArrayLayers
VUID-VkImageViewCreateInfo-image-04441YNegativeImage.UsageBitsexplicitVkImageViewCreateInfocoreimage must have been created with a usage value containing at least one of the usages defined in the valid image usage list for image views
VUID-VkImageViewCreateInfo-image-04817YNegativeVideo.CreateImageViewInvalidViewTypeexplicitVkImageViewCreateInfocoreIf image was created with usage containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY
VUID-VkImageViewCreateInfo-image-04818YNegativeVideo.CreateImageViewInvalidViewTypeexplicitVkImageViewCreateInfocoreIf image was created with usage containing VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, or VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY
VUID-VkImageViewCreateInfo-image-04970YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_TYPE_3D and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY then subresourceRange.levelCount must be 1
VUID-VkImageViewCreateInfo-image-04971YNegativeImage.ImageViewBreaksParameterCompatibilityRequirements, NegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_TYPE_3D and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY then VkImageCreateInfo::flags must not contain any of VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, and VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
VUID-VkImageViewCreateInfo-image-04972YNegativeImage.MultiSampleImageViewexplicitVkImageViewCreateInfocoreIf image was created with a samples value not equal to VK_SAMPLE_COUNT_1_BIT then viewType must be either VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY
VUID-VkImageViewCreateInfo-image-06723YNegativeImage.Image2DViewOf3DexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set then viewType must not be VK_IMAGE_VIEW_TYPE_2D_ARRAY
VUID-VkImageViewCreateInfo-image-06724YNegativeImage.Image2DViewOf3D, NegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageViewCreateInfo-image-06728YNegativeImage.Image2DViewOf3D, NegativeImage.ImageViewBreaksParameterCompatibilityRequirementsexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, then viewType must not be VK_IMAGE_VIEW_TYPE_2D
VUID-VkImageViewCreateInfo-image-07072YNegativeImage.BlockTexelViewLevelOrLayerCountexplicitVkImageViewCreateInfocoreIf image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and format is a non-compressed format, the levelCount member of subresourceRange must be 1
VUID-VkImageViewCreateInfo-image-08333YNegativeVideo.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR and usage contains VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, then the image view's format features must contain VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR
VUID-VkImageViewCreateInfo-image-08334YNegativeVideo.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR and usage contains VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the image view's format features must contain VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR
VUID-VkImageViewCreateInfo-image-08335YNegativeVideo.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then usage must not include VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR
VUID-VkImageViewCreateInfo-image-08336YNegativeVideo.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR and usage contains VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, then the image view's format features must contain VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR
VUID-VkImageViewCreateInfo-image-08337YNegativeVideo.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR and usage contains VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, then the image view's format features must contain VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR
VUID-VkImageViewCreateInfo-image-08338YNegativeVideo.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfocoreIf image was created with VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then usage must not include VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR
VUID-VkImageViewCreateInfo-image-08957NNoneexplicitVkImageViewCreateInfocoreIf image has an QNX Screen external format, format must be VK_FORMAT_UNDEFINED
VUID-VkImageViewCreateInfo-image-08958NNoneexplicitVkImageViewCreateInfocoreIf image has an QNX Screen external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image
VUID-VkImageViewCreateInfo-image-08959NNoneexplicitVkImageViewCreateInfocoreIf image has an QNX Screen external format, all members of components must be the identity swizzle
VUID-VkImageViewCreateInfo-image-09487YNegativeImage.BlockTexelViewCompatibleMultipleLayers, NegativeImage.BlockTexelViewLevelOrLayerCountexplicitVkImageViewCreateInfocoreIf image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, the VkPhysicalDeviceMaintenance6PropertiesKHR::blockTexelViewCompatibleMultipleLayers property is not set to VK_TRUE, and format is a non-compressed format, then the layerCount member of subresourceRange must be 1
VUID-VkImageViewCreateInfo-image-parameterYNoneimplicitVkImageViewCreateInfocoreimage must be a valid VkImage handle
VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466YNegativePortabilitySubset.ImageViewFormatReinterpretationComponentCountexplicitVkImageViewCreateInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatReinterpretation is VK_FALSE, the VkFormat in format must not contain a different number of components, or a different number of bits in each component, than the format of the VkImage in image
VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465YNegativePortabilitySubset.ImageViewFormatSwizzleexplicitVkImageViewCreateInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatSwizzle is VK_FALSE, all elements of components must have the identity swizzle
VUID-VkImageViewCreateInfo-imageViewType-04973YNegativeFragmentShadingRate.FragmentDensityMapEnabled, NegativeImage.ImageViewInvalidSubresourceRange, NegativeImage.ImageViewLayerCountexplicitVkImageViewCreateInfocoreIf viewType is VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_2D, or VK_IMAGE_VIEW_TYPE_3D; and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, then subresourceRange.layerCount must be 1
VUID-VkImageViewCreateInfo-imageViewType-04974YNegativeImage.ImageViewLayerCountexplicitVkImageViewCreateInfocoreIf viewType is VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_2D, or VK_IMAGE_VIEW_TYPE_3D; and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, then the remaining number of layers must be 1
VUID-VkImageViewCreateInfo-invocationMask-04993NNoneexplicitVkImageViewCreateInfocoreIf the invocationMask feature is enabled, and if image was created with usage containing VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, format must be VK_FORMAT_R8_UINT
VUID-VkImageViewCreateInfo-pNext-01585YNegativeImage.ImageFormatListexplicitVkImageViewCreateInfocoreIf a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then format must be one of the formats in VkImageFormatListCreateInfo::pViewFormats
VUID-VkImageViewCreateInfo-pNext-01970YNegativeYcbcr.SwizzleexplicitVkImageViewCreateInfocoreIf the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, all members of components must have the identity swizzle
VUID-VkImageViewCreateInfo-pNext-02662YNegativeImage.ImageViewNoSeparateStencilUsage, NegativeImage.ImageViewStencilUsageCreateInfo, NegativeVideo.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfocoreIf the pNext chain includes a VkImageViewUsageCreateInfo structure, and image was not created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image
VUID-VkImageViewCreateInfo-pNext-02663YNegativeImage.ImageViewStencilUsageCreateInfoexplicitVkImageViewCreateInfocoreIf the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subresourceRange.aspectMask includes VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageStencilUsageCreateInfo structure used to create image
VUID-VkImageViewCreateInfo-pNext-02664YNegativeImage.ImageViewStencilUsageCreateInfoexplicitVkImageViewCreateInfocoreIf the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subresourceRange.aspectMask includes bits other than VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image
VUID-VkImageViewCreateInfo-pNext-06658YNegativeYcbcr.MismatchedImageViewAndSamplerFormatexplicitVkImageViewCreateInfocoreIf the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, format must be the same used in VkSamplerYcbcrConversionCreateInfo::format
VUID-VkImageViewCreateInfo-pNext-06787YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkImageViewCreateInfocoreIf the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT
VUID-VkImageViewCreateInfo-pNext-06944YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then textureSampleWeighted feature must be enabled
VUID-VkImageViewCreateInfo-pNext-06945YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then image must have been created with usage containing VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM
VUID-VkImageViewCreateInfo-pNext-06946YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then components must be VK_COMPONENT_SWIZZLE_IDENTITY for all components
VUID-VkImageViewCreateInfo-pNext-06947YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageViewCreateInfo-pNext-06948YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.levelCount must be 1
VUID-VkImageViewCreateInfo-pNext-06949YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then viewType must be VK_IMAGE_VIEW_TYPE_1D_ARRAY or VK_IMAGE_VIEW_TYPE_2D_ARRAY
VUID-VkImageViewCreateInfo-pNext-06950YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and if viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then image must have been created with imageType VK_IMAGE_TYPE_1D
VUID-VkImageViewCreateInfo-pNext-06951YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then subresourceRange.layerCount must be equal to 2
VUID-VkImageViewCreateInfo-pNext-06952YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_1D_ARRAY, then image must have been created with width equal to or greater than \((numPhases \times \mathbin{max}\left( \mathbin{align}\left(filterSize.width,4\right), filterSize.height\right))\)
VUID-VkImageViewCreateInfo-pNext-06953YNoneexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and if viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with imageType VK_IMAGE_TYPE_2D
VUID-VkImageViewCreateInfo-pNext-06954YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then subresourceRange.layerCount must be equal or greater than numPhases
VUID-VkImageViewCreateInfo-pNext-06955YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with width equal to or greater than filterSize.width
VUID-VkImageViewCreateInfo-pNext-06956YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure and viewType is VK_IMAGE_VIEW_TYPE_2D_ARRAY, then image must have been created with height equal to or greater than filterSize.height
VUID-VkImageViewCreateInfo-pNext-06957YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewCreateInfocoreIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure then VkImageViewSampleWeightCreateInfoQCOM::filterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height
VUID-VkImageViewCreateInfo-pNext-08107YNegativeDescriptorBuffer.NotEnabledexplicitVkImageViewCreateInfocoreIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkImageViewCreateInfo-pNext-pNextYNoneimplicitVkImageViewCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalObjectCreateInfoEXT, VkImageViewASTCDecodeModeEXT, VkImageViewMinLodCreateInfoEXT, VkImageViewSampleWeightCreateInfoQCOM, VkImageViewSlicedCreateInfoEXT, VkImageViewUsageCreateInfo, VkOpaqueCaptureDescriptorDataCreateInfoEXT, or VkSamplerYcbcrConversionInfo
VUID-VkImageViewCreateInfo-sType-sTypeYNoneimplicitVkImageViewCreateInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
VUID-VkImageViewCreateInfo-sType-uniqueYNoneimplicitVkImageViewCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkImageViewCreateInfo-subResourceRange-01021YNegativeImage.ImageViewBreaksParameterCompatibilityRequirements, NegativeImage.MultiSampleImageViewexplicitVkImageViewCreateInfocoreviewType must be compatible with the type of image as shown in the view type compatibility table
VUID-VkImageViewCreateInfo-subresourceRange-01478YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoresubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageViewCreateInfo-subresourceRange-01718YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageViewCreateInfo-subresourceRange-02725YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing
VUID-VkImageViewCreateInfo-subresourceRange-06725YNegativeImage.Image2DViewOf3D, NegativeImage.ImageViewInvalidSubresourceRange, NegativeImage.ImageViewLayerCountexplicitVkImageViewCreateInfocoreIf subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageViewCreateInfo-subresourceRange-07818YNegativeYcbcr.MultiplaneImageViewAspectMasksexplicitVkImageViewCreateInfocoresubresourceRange.aspectMask must only have at most 1 valid multi-planar aspect mask bit
VUID-VkImageViewCreateInfo-subresourceRange-parameterNNoneimplicitVkImageViewCreateInfocoresubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageViewCreateInfo-usage-02274YNegativeImage.ImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the format features of the resultant image view must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VUID-VkImageViewCreateInfo-usage-02275YNegativeImage.ImageViewFormatFeatureMismatch, NegativeImage.ImageViewUsageCreateInfoexplicitVkImageViewCreateInfocoreIf usage contains VK_IMAGE_USAGE_STORAGE_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VUID-VkImageViewCreateInfo-usage-02277YNegativeImage.ImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageViewCreateInfo-usage-04550YNegativeFragmentShadingRate.ShadingRateUsageexplicitVkImageViewCreateInfocoreIf the attachmentFragmentShadingRate feature is enabled, and the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then the image view's format features must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageViewCreateInfo-usage-04551YNegativeFragmentShadingRate.ShadingRateUsageexplicitVkImageViewCreateInfocoreIf the attachmentFragmentShadingRate feature is enabled, the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, and layeredShadingRateAttachments is VK_FALSE, subresourceRange.layerCount must be 1
VUID-VkImageViewCreateInfo-usage-08931YNegativeImage.ImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkImageViewCreateInfo-usage-08932YNegativeImage.ImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, and any of the following is true: the externalFormatResolve feature is not enabled the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE image was created with an VkExternalFormatANDROID::externalFormat value of 0 then the image view's format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkImageViewCreateInfo-viewType-01004YNegativeImage.ImageViewDifferentClassexplicitVkImageViewCreateInfocoreIf the imageCubeArray feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-VkImageViewCreateInfo-viewType-02960YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be 6
VUID-VkImageViewCreateInfo-viewType-02961YNegativeImage.ImageViewDifferentClass, NegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be a multiple of 6
VUID-VkImageViewCreateInfo-viewType-02962YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be 6
VUID-VkImageViewCreateInfo-viewType-02963YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be a multiple of 6
VUID-VkImageViewCreateInfo-viewType-parameterYNoneimplicitVkImageViewCreateInfocoreviewType must be a valid VkImageViewType value
VUID-VkImageViewHandleInfoNVX-commonparentYNoneimplicitVkImageViewHandleInfoNVXcoreBoth of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkImageViewHandleInfoNVX-descriptorType-02654NNoneexplicitVkImageViewHandleInfoNVXcoredescriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VUID-VkImageViewHandleInfoNVX-descriptorType-parameterYNoneimplicitVkImageViewHandleInfoNVXcoredescriptorType must be a valid VkDescriptorType value
VUID-VkImageViewHandleInfoNVX-imageView-02656NNoneexplicitVkImageViewHandleInfoNVXcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_SAMPLED_BIT usage bit set
VUID-VkImageViewHandleInfoNVX-imageView-02657NNoneexplicitVkImageViewHandleInfoNVXcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_STORAGE_BIT usage bit set
VUID-VkImageViewHandleInfoNVX-imageView-parameterYNoneimplicitVkImageViewHandleInfoNVXcoreimageView must be a valid VkImageView handle
VUID-VkImageViewHandleInfoNVX-pNext-pNextYNoneimplicitVkImageViewHandleInfoNVXcorepNext must be NULL
VUID-VkImageViewHandleInfoNVX-sType-sTypeYNoneimplicitVkImageViewHandleInfoNVXcoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
VUID-VkImageViewHandleInfoNVX-sampler-02655NNoneexplicitVkImageViewHandleInfoNVXcoresampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VUID-VkImageViewHandleInfoNVX-sampler-parameterYNoneimplicitVkImageViewHandleInfoNVXcoreIf sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle
VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455YNegativeImage.ImageViewMinLodFeatureexplicitVkImageViewMinLodCreateInfoEXTcoreIf the minLod feature is not enabled, minLod must be 0.0
VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456YNegativeImage.ImageViewMinLodexplicitVkImageViewMinLodCreateInfoEXTcoreminLod must be less or equal to the index of the last mipmap level accessible to the view
VUID-VkImageViewMinLodCreateInfoEXT-sType-sTypeYNoneimplicitVkImageViewMinLodCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06960YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMcorefilterCenter.x must be less than or equal to (filterSize.width - 1)
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06961YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMcorefilterCenter.y must be less than or equal to (filterSize.height - 1)
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06958YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMcorefilterSize.width must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.width
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06959YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMcorefilterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height
VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06962YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMcorenumPhases must be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.)
VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06963YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMcorenumPhases must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterPhases
VUID-VkImageViewSampleWeightCreateInfoQCOM-sType-sTypeYNoneimplicitVkImageViewSampleWeightCreateInfoQCOMcoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM
VUID-VkImageViewSlicedCreateInfoEXT-None-07870YNegativeImage.SlicedMipLevelexplicitVkImageViewSlicedCreateInfoEXTcoreThe image view must reference exactly 1 mip level
VUID-VkImageViewSlicedCreateInfoEXT-None-07871YNegativeImage.SlicedDeviceFeatureexplicitVkImageViewSlicedCreateInfoEXTcoreThe imageSlicedViewOf3D feature must be enabled on the device
VUID-VkImageViewSlicedCreateInfoEXT-image-07869YNegativeImage.SlicedImageTypeexplicitVkImageViewSlicedCreateInfoEXTcoreimage must have been created with imageType equal to VK_IMAGE_TYPE_3D
VUID-VkImageViewSlicedCreateInfoEXT-sType-sTypeYNoneimplicitVkImageViewSlicedCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT
VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868YNegativeImage.SlicedUsageexplicitVkImageViewSlicedCreateInfoEXTcoreIf sliceCount is not VK_REMAINING_3D_SLICES_EXT, it must be be non-zero and sliceOffset + sliceCount must be less than or equal to the effective view depth as specified in Image Mip Level Sizing
VUID-VkImageViewSlicedCreateInfoEXT-sliceOffset-07867YNegativeImage.SlicedUsageexplicitVkImageViewSlicedCreateInfoEXTcoresliceOffset must be less than the effective view depth as specified in Image Mip Level Sizing
VUID-VkImageViewSlicedCreateInfoEXT-viewType-07909YNegativeImage.SlicedImageTypeexplicitVkImageViewSlicedCreateInfoEXTcoreviewType must be VK_IMAGE_VIEW_TYPE_3D
VUID-VkImageViewUsageCreateInfo-sType-sTypeYNoneimplicitVkImageViewUsageCreateInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
VUID-VkImageViewUsageCreateInfo-usage-parameterYNegativeImage.ImageViewUsageCreateInfoimplicitVkImageViewUsageCreateInfocoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageViewUsageCreateInfo-usage-requiredbitmaskYNegativeImage.ImageViewUsageCreateInfoimplicitVkImageViewUsageCreateInfocoreusage must not be 0
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880YNoneexplicitVkImportAndroidHardwareBufferInfoANDROIDcoreIf buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881YNegativeAndroidHardwareBuffer.ImportBufferexplicitVkImportAndroidHardwareBufferInfoANDROIDcoreIf buffer is not NULL, it must be a valid Android hardware buffer object with AHardwareBuffer_Desc::usage compatible with Vulkan as described in Android Hardware Buffers
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameterYNegativeAndroidHardwareBuffer.NullAHBImportimplicitVkImportAndroidHardwareBufferInfoANDROIDcorebuffer must be a valid pointer to an AHardwareBuffer value
VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sTypeYNoneimplicitVkImportAndroidHardwareBufferInfoANDROIDcoresType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
VUID-VkImportFenceFdInfoKHR-fd-01541NNoneexplicitVkImportFenceFdInfoKHRcorefd must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceFdInfoKHR-fence-parameterYNoneimplicitVkImportFenceFdInfoKHRcorefence must be a valid VkFence handle
VUID-VkImportFenceFdInfoKHR-flags-parameterYNoneimplicitVkImportFenceFdInfoKHRcoreflags must be a valid combination of VkFenceImportFlagBits values
VUID-VkImportFenceFdInfoKHR-handleType-01464YNegativeExternalMemorySync.FenceexplicitVkImportFenceFdInfoKHRcorehandleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table
VUID-VkImportFenceFdInfoKHR-handleType-07306YNegativeExternalMemorySync.SyncFdFenceexplicitVkImportFenceFdInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, flags must contain VK_FENCE_IMPORT_TEMPORARY_BIT
VUID-VkImportFenceFdInfoKHR-handleType-parameterYNoneimplicitVkImportFenceFdInfoKHRcorehandleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkImportFenceFdInfoKHR-pNext-pNextYNoneimplicitVkImportFenceFdInfoKHRcorepNext must be NULL
VUID-VkImportFenceFdInfoKHR-sType-sTypeYNoneimplicitVkImportFenceFdInfoKHRcoresType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
VUID-VkImportFenceWin32HandleInfoKHR-fence-parameterYNoneimplicitVkImportFenceWin32HandleInfoKHRcorefence must be a valid VkFence handle
VUID-VkImportFenceWin32HandleInfoKHR-flags-parameterYNoneimplicitVkImportFenceWin32HandleInfoKHRcoreflags must be a valid combination of VkFenceImportFlagBits values
VUID-VkImportFenceWin32HandleInfoKHR-handle-01462YNegativeExternalMemorySync.FenceexplicitVkImportFenceWin32HandleInfoKHRcoreIf handle is not NULL, name must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-handle-01539NNoneexplicitVkImportFenceWin32HandleInfoKHRcoreIf handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457YNegativeExternalMemorySync.FenceexplicitVkImportFenceWin32HandleInfoKHRcorehandleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459YNegativeExternalMemorySync.FenceexplicitVkImportFenceWin32HandleInfoKHRcoreIf handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460NNoneexplicitVkImportFenceWin32HandleInfoKHRcoreIf handle is NULL, name must name a valid synchronization primitive of the type specified by handleType
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461NNoneexplicitVkImportFenceWin32HandleInfoKHRcoreIf name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportFenceWin32HandleInfoKHR-name-01540NNoneexplicitVkImportFenceWin32HandleInfoKHRcoreIf name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkImportFenceWin32HandleInfoKHRcorepNext must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportFenceWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
VUID-VkImportMemoryBufferCollectionFUCHSIA-collection-parameterYNoneimplicitVkImportMemoryBufferCollectionFUCHSIAcorecollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkImportMemoryBufferCollectionFUCHSIA-index-06406NNoneexplicitVkImportMemoryBufferCollectionFUCHSIAcoreindex must be less than the value retrieved as VkBufferCollectionPropertiesFUCHSIA:bufferCount
VUID-VkImportMemoryBufferCollectionFUCHSIA-sType-sTypeYNoneimplicitVkImportMemoryBufferCollectionFUCHSIAcoresType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
VUID-VkImportMemoryFdInfoKHR-fd-00668NNoneexplicitVkImportMemoryFdInfoKHRcoreThe memory from which fd was exported must have been created on the same underlying physical device as device
VUID-VkImportMemoryFdInfoKHR-fd-01520NNoneexplicitVkImportMemoryFdInfoKHRcorefd must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryFdInfoKHR-fd-01746NNoneexplicitVkImportMemoryFdInfoKHRcoreThe memory represented by fd must have been created from a physical device and driver that is compatible with device and handleType, as described in External memory handle types compatibility
VUID-VkImportMemoryFdInfoKHR-handleType-00667YNegativeExternalMemorySync.ImportMemoryFdBufferSupport, NegativeExternalMemorySync.ImportMemoryFdImageSupportexplicitVkImportMemoryFdInfoKHRcoreIf handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportMemoryFdInfoKHR-handleType-00669YNegativeExternalMemorySync.ImportMemoryFdHandleTypeexplicitVkImportMemoryFdInfoKHRcoreIf handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT
VUID-VkImportMemoryFdInfoKHR-handleType-00670YNegativeExternalMemorySync.ImportMemoryFdBadFdexplicitVkImportMemoryFdInfoKHRcoreIf handleType is not 0, fd must be a valid handle of the type specified by handleType
VUID-VkImportMemoryFdInfoKHR-handleType-parameterYNoneimplicitVkImportMemoryFdInfoKHRcoreIf handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryFdInfoKHR-sType-sTypeYNoneimplicitVkImportMemoryFdInfoKHRcoresType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747NNoneexplicitVkImportMemoryHostPointerInfoEXTcoreIf handleType is not 0, it must be supported for import, as reported in VkExternalMemoryProperties
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748YNoneexplicitVkImportMemoryHostPointerInfoEXTcoreIf handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750NNoneexplicitVkImportMemoryHostPointerInfoEXTcoreIf handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751NNoneexplicitVkImportMemoryHostPointerInfoEXTcoreIf handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host mapped foreign memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to
VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameterYNoneimplicitVkImportMemoryHostPointerInfoEXTcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749YNoneexplicitVkImportMemoryHostPointerInfoEXTcorepHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment
VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-parameterYNoneimplicitVkImportMemoryHostPointerInfoEXTcorepHostPointer must be a pointer value
VUID-VkImportMemoryHostPointerInfoEXT-sType-sTypeYNoneimplicitVkImportMemoryHostPointerInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659NNoneexplicitVkImportMemoryWin32HandleInfoKHRcoreThe memory from which handle was exported, or the memory named by name must have been created on the same underlying physical device as device
VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441NNoneexplicitVkImportMemoryWin32HandleInfoKHRcoreIf handle is not NULL, name must be NULL
VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518NNoneexplicitVkImportMemoryWin32HandleInfoKHRcoreIf handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658YNegativeExternalMemorySync.ImportMemoryWin32BufferSupportexplicitVkImportMemoryWin32HandleInfoKHRcoreIf handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660NNoneexplicitVkImportMemoryWin32HandleInfoKHRcoreIf handleType is not 0, it must be defined as an NT handle or a global share handle
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661NNoneexplicitVkImportMemoryWin32HandleInfoKHRcoreIf handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439NNoneexplicitVkImportMemoryWin32HandleInfoKHRcoreIf handleType is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, name must be NULL
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440NNoneexplicitVkImportMemoryWin32HandleInfoKHRcoreIf handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkImportMemoryWin32HandleInfoKHRcoreIf handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryWin32HandleInfoKHR-name-01519NNoneexplicitVkImportMemoryWin32HandleInfoKHRcoreIf name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportMemoryWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
VUID-VkImportMemoryWin32HandleInfoNV-handle-01328NNoneexplicitVkImportMemoryWin32HandleInfoNVcorehandle must be a valid handle to memory, obtained as specified by handleType
VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327NNoneexplicitVkImportMemoryWin32HandleInfoNVcorehandleType must not have more than one bit set
VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameterYNoneimplicitVkImportMemoryWin32HandleInfoNVcorehandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkImportMemoryWin32HandleInfoNV-sType-sTypeYNoneimplicitVkImportMemoryWin32HandleInfoNVcoresType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772NNoneexplicitVkImportMemoryZirconHandleInfoFUCHSIAcorehandle must be a valid VMO handle
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771NNoneexplicitVkImportMemoryZirconHandleInfoFUCHSIAcorehandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkImportMemoryZirconHandleInfoFUCHSIAcoreIf handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkImportMemoryZirconHandleInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkImportMetalBufferInfoEXT-sType-sTypeYNoneimplicitVkImportMetalBufferInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
VUID-VkImportMetalIOSurfaceInfoEXT-sType-sTypeYNoneimplicitVkImportMetalIOSurfaceInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
VUID-VkImportMetalSharedEventInfoEXT-sType-sTypeYNoneimplicitVkImportMetalSharedEventInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
VUID-VkImportMetalTextureInfoEXT-plane-parameterYNoneimplicitVkImportMetalTextureInfoEXTcoreplane must be a valid VkImageAspectFlagBits value
VUID-VkImportMetalTextureInfoEXT-sType-sTypeYNoneimplicitVkImportMetalTextureInfoEXTcoresType must be VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
VUID-VkImportScreenBufferInfoQNX-buffer-08966NNoneexplicitVkImportScreenBufferInfoQNXcoreIf buffer is not NULL, QNX Screen Buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportScreenBufferInfoQNX-buffer-08967NNoneexplicitVkImportScreenBufferInfoQNXcorebuffer is not NULL, it must be a pointer to valid QNX Screen buffer
VUID-VkImportScreenBufferInfoQNX-sType-sTypeYNoneimplicitVkImportScreenBufferInfoQNXcoresType must be VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
VUID-VkImportSemaphoreFdInfoKHR-fd-01544NNoneexplicitVkImportSemaphoreFdInfoKHRcorefd must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreFdInfoKHR-flags-03323YNegativeExternalMemorySync.TimelineSemaphoreexplicitVkImportSemaphoreFdInfoKHRcoreIf flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which fd was exported must not be VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkImportSemaphoreFdInfoKHR-flags-parameterYNoneimplicitVkImportSemaphoreFdInfoKHRcoreflags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreFdInfoKHR-handleType-01143YNegativeExternalMemorySync.SemaphoreexplicitVkImportSemaphoreFdInfoKHRcorehandleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table
VUID-VkImportSemaphoreFdInfoKHR-handleType-03263YNoneexplicitVkImportSemaphoreFdInfoKHRcoreIf handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which fd was exported
VUID-VkImportSemaphoreFdInfoKHR-handleType-03264YNegativeExternalMemorySync.SyncFdSemaphoreTypeexplicitVkImportSemaphoreFdInfoKHRcoreIf handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which fd was exported
VUID-VkImportSemaphoreFdInfoKHR-handleType-07307YNegativeExternalMemorySync.SyncFdSemaphoreexplicitVkImportSemaphoreFdInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, flags must contain VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
VUID-VkImportSemaphoreFdInfoKHR-handleType-parameterYNoneimplicitVkImportSemaphoreFdInfoKHRcorehandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkImportSemaphoreFdInfoKHR-pNext-pNextYNoneimplicitVkImportSemaphoreFdInfoKHRcorepNext must be NULL
VUID-VkImportSemaphoreFdInfoKHR-sType-sTypeYNoneimplicitVkImportSemaphoreFdInfoKHRcoresType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameterYNoneimplicitVkImportSemaphoreFdInfoKHRcoresemaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322YNegativeExternalMemorySync.TimelineSemaphoreexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which handle or name was exported must not be VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-parameterYNoneimplicitVkImportSemaphoreWin32HandleInfoKHRcoreflags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469YNoneexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf handle is not NULL, name must be NULL
VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140YNegativeExternalMemorySync.SemaphoreexplicitVkImportSemaphoreWin32HandleInfoKHRcorehandleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466YNoneexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf handleType is not VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, name must be NULL
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf handle is NULL, name must name a valid synchronization primitive of the type specified by handleType
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which handle or name was exported
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03262NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which handle or name was exported
VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRcoreIf name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkImportSemaphoreWin32HandleInfoKHRcorepNext must be NULL
VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportSemaphoreWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameterYNoneimplicitVkImportSemaphoreWin32HandleInfoKHRcoresemaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcoreflags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcorehandleType must be a value included in the Handle Types Supported by VkImportSemaphoreZirconHandleInfoFUCHSIA table
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcorehandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcorepNext must be NULL
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcoresemaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768YNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcoreThe VkSemaphoreTypeCreateInfo::semaphoreType field must not be VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcorezirconHandle must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIAcorezirconHandle must have ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rights
VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVcoreflags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNV values
VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNextYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVcorepNext must be NULL
VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreeach element of pStreamStrides must be greater than `0`and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamStride. Furthermore the alignment of each token input must be ensured
VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVcorepStreamStrides must be a valid pointer to an array of streamCount uint32_t values
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreIf pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV it must be the first element of the array and there must be only a single element of such token type
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreIf pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV there must be only a single element of such token type
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreAll state tokens in pTokens must occur before any work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV , VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV )
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreThe content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVcorepTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreThe pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_COMPUTE
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09088NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09089NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the state tokens in pTokens must only include VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, or VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09090NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE and pTokens includes VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sTypeYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcorestreamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount
VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylengthYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVcorestreamCount must be greater than 0
VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVcoretokenCount must be greater than 0 and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenCount
VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylengthYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVcoretokenCount must be greater than 0
VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVcoreindirectStateFlags must be a valid combination of VkIndirectStateFlagBitsNV values
VUID-VkIndirectCommandsLayoutTokenNV-offset-02952NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreoffset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenOffset
VUID-VkIndirectCommandsLayoutTokenNV-offset-06888NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreoffset must be aligned to the scalar alignment of tokenType or minIndirectCommandsBufferOffsetAlignment, whichever is lower
VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVcoreIf indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values
VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameterNNoneimplicitVkIndirectCommandsLayoutTokenNVcoreIf indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid VkIndexType values
VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNextYNoneimplicitVkIndirectCommandsLayoutTokenNVcorepNext must be NULL
VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVcoreIf pushconstantPipelineLayout is not VK_NULL_HANDLE, pushconstantPipelineLayout must be a valid VkPipelineLayout handle
VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVcorepushconstantShaderStageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkIndirectCommandsLayoutTokenNV-sType-sTypeYNoneimplicitVkIndirectCommandsLayoutTokenNVcoresType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
VUID-VkIndirectCommandsLayoutTokenNV-stream-02951NNoneexplicitVkIndirectCommandsLayoutTokenNVcorestream must be smaller than VkIndirectCommandsLayoutCreateInfoNV::streamCount
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, vertexBindingUnit must stay within device supported limits for the appropriate commands
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantPipelineLayout must be valid
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be a multiple of 4
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be a multiple of 4
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus pushconstantOffset
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each shader stage in pushconstantShaderStageFlags, there must be a push constant range in pushconstantPipelineLayout that includes that byte and that stage
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each push constant range that overlaps that byte, pushconstantShaderStageFlags must include all stages in that push constant range's VkPushConstantRange::stageFlags
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984NNoneexplicitVkIndirectCommandsLayoutTokenNVcoreIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, indirectStateFlags must not be 0
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVcoretokenType must be a valid VkIndirectCommandsTokenTypeNV value
VUID-VkIndirectCommandsStreamNV-buffer-02942NNoneexplicitVkIndirectCommandsStreamNVcoreThe buffer's usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkIndirectCommandsStreamNV-buffer-02975NNoneexplicitVkIndirectCommandsStreamNVcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkIndirectCommandsStreamNV-buffer-parameterYNoneimplicitVkIndirectCommandsStreamNVcorebuffer must be a valid VkBuffer handle
VUID-VkIndirectCommandsStreamNV-offset-02943NNoneexplicitVkIndirectCommandsStreamNVcoreThe offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment
VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNextYNoneimplicitVkInitializePerformanceApiInfoINTELcorepNext must be NULL
VUID-VkInitializePerformanceApiInfoINTEL-sType-sTypeYNoneimplicitVkInitializePerformanceApiInfoINTELcoresType must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
VUID-VkInputAttachmentAspectReference-aspectMask-01964YNegativeSubpass.InputAttachmentReferences, VkLayerTest.VuidFilterHexInt, VkLayerTest.VuidFilterInt, VkLayerTest.VuidIdFilterStringexplicitVkInputAttachmentAspectReferencecoreaspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkInputAttachmentAspectReference-aspectMask-02250YNegativeSubpass.InputAttachmentReferencesexplicitVkInputAttachmentAspectReferencecoreaspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkInputAttachmentAspectReference-aspectMask-parameterYNoneimplicitVkInputAttachmentAspectReferencecoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmaskYNoneimplicitVkInputAttachmentAspectReferencecoreaspectMask must not be 0
VUID-VkInstanceCreateInfo-flags-06559YVkPortabilitySubsetTest.InstanceCreateEnumerateexplicitVkInstanceCreateInfocoreIf flags has the VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR bit set, the list of enabled extensions in ppEnabledExtensionNames must contain VK_KHR_portability_enumeration
VUID-VkInstanceCreateInfo-flags-parameterYNoneimplicitVkInstanceCreateInfocoreflags must be a valid combination of VkInstanceCreateFlagBits values
VUID-VkInstanceCreateInfo-pApplicationInfo-parameterYNoneimplicitVkInstanceCreateInfocoreIf pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure
VUID-VkInstanceCreateInfo-pNext-04925YNegativeInstanceless.ExtensionStructsWithoutExtensionsexplicitVkInstanceCreateInfocoreIf the pNext chain of VkInstanceCreateInfo includes a VkDebugReportCallbackCreateInfoEXT structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_EXT_debug_report
VUID-VkInstanceCreateInfo-pNext-04926YNegativeInstanceless.ExtensionStructsWithoutExtensionsexplicitVkInstanceCreateInfocoreIf the pNext chain of VkInstanceCreateInfo includes a VkDebugUtilsMessengerCreateInfoEXT structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_EXT_debug_utils
VUID-VkInstanceCreateInfo-pNext-06779YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkInstanceCreateInfocoreIf the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be either VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT or VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT
VUID-VkInstanceCreateInfo-pNext-09400YNegativeInstanceless.ExtensionStructsWithoutExtensionsexplicitVkInstanceCreateInfocoreIf the pNext chain of VkInstanceCreateInfo includes a VkDirectDriverLoadingListLUNARG structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_LUNARG_direct_driver_loading
VUID-VkInstanceCreateInfo-pNext-pNextYNoneimplicitVkInstanceCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDebugReportCallbackCreateInfoEXT, VkDebugUtilsMessengerCreateInfoEXT, VkDirectDriverLoadingListLUNARG, VkExportMetalObjectCreateInfoEXT, VkLayerSettingsCreateInfoEXT, VkValidationFeaturesEXT, or VkValidationFlagsEXT
VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameterYNoneimplicitVkInstanceCreateInfocoreIf enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings
VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameterYNoneimplicitVkInstanceCreateInfocoreIf enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings
VUID-VkInstanceCreateInfo-sType-sTypeYNegativeInstanceless.InstanceBadStypeimplicitVkInstanceCreateInfocoresType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
VUID-VkInstanceCreateInfo-sType-uniqueYNegativeInstanceless.InstanceDuplicatePnextStypeimplicitVkInstanceCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDebugUtilsMessengerCreateInfoEXT, VkExportMetalObjectCreateInfoEXT, or VkLayerSettingsCreateInfoEXT
VUID-VkLatencySleepInfoNV-sType-sTypeYNoneimplicitVkLatencySleepInfoNVcoresType must be VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV
VUID-VkLatencySleepInfoNV-signalSemaphore-09361NNoneexplicitVkLatencySleepInfoNVcoresignalSemaphore must be a timeline semaphore
VUID-VkLatencySleepInfoNV-signalSemaphore-parameterYNoneimplicitVkLatencySleepInfoNVcoresignalSemaphore must be a valid VkSemaphore handle
VUID-VkLatencySleepModeInfoNV-sType-sTypeYNoneimplicitVkLatencySleepModeInfoNVcoresType must be VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV
VUID-VkLatencySubmissionPresentIdNV-sType-sTypeYNoneimplicitVkLatencySubmissionPresentIdNVcoresType must be VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV
VUID-VkLatencySurfaceCapabilitiesNV-pPresentModes-parameterNNoneimplicitVkLatencySurfaceCapabilitiesNVcoreIf presentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of presentModeCount VkPresentModeKHR values
VUID-VkLatencySurfaceCapabilitiesNV-sType-sTypeYNoneimplicitVkLatencySurfaceCapabilitiesNVcoresType must be VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
VUID-VkLatencyTimingsFrameReportNV-sType-sTypeNNoneimplicitVkLatencyTimingsFrameReportNVcoresType must be VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV
VUID-VkLayerSettingEXT-pLayerName-parameterYNoneimplicitVkLayerSettingEXTcorepLayerName must be a null-terminated UTF-8 string
VUID-VkLayerSettingEXT-pSettingName-parameterYNoneimplicitVkLayerSettingEXTcorepSettingName must be a null-terminated UTF-8 string
VUID-VkLayerSettingEXT-pValues-parameterYNoneimplicitVkLayerSettingEXTcoreIf valueCount is not 0, pValues must be a valid pointer to an array of valueCount bytes
VUID-VkLayerSettingEXT-type-parameterYNoneimplicitVkLayerSettingEXTcoretype must be a valid VkLayerSettingTypeEXT value
VUID-VkLayerSettingsCreateInfoEXT-pSettings-parameterYNoneimplicitVkLayerSettingsCreateInfoEXTcoreIf settingCount is not 0, pSettings must be a valid pointer to an array of settingCount valid VkLayerSettingEXT structures
VUID-VkLayerSettingsCreateInfoEXT-sType-sTypeYNoneimplicitVkLayerSettingsCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmaskYNoneimplicitVkMacOSSurfaceCreateInfoMVKcoreflags must be 0
VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNextYNoneimplicitVkMacOSSurfaceCreateInfoMVKcorepNext must be NULL
VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317NNoneexplicitVkMacOSSurfaceCreateInfoMVKcoreIf pView is an NSView object, it must be a valid NSView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateMacOSSurfaceMVK must be called on the main thread
VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144NNoneexplicitVkMacOSSurfaceCreateInfoMVKcoreIf pView is a CAMetalLayer object, it must be a valid CAMetalLayer
VUID-VkMacOSSurfaceCreateInfoMVK-sType-sTypeYNoneimplicitVkMacOSSurfaceCreateInfoMVKcoresType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
VUID-VkMappedMemoryRange-memory-00684YNegativeMemory.MapMemWithoutHostVisibleBit, NegativeMemory.MapMemoryexplicitVkMappedMemoryRangecorememory must be currently host mapped
VUID-VkMappedMemoryRange-memory-parameterYNoneimplicitVkMappedMemoryRangecorememory must be a valid VkDeviceMemory handle
VUID-VkMappedMemoryRange-offset-00687YNegativeMemory.MapMemoryexplicitVkMappedMemoryRangecoreoffset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize
VUID-VkMappedMemoryRange-pNext-pNextYNoneimplicitVkMappedMemoryRangecorepNext must be NULL
VUID-VkMappedMemoryRange-sType-sTypeYNoneimplicitVkMappedMemoryRangecoresType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
VUID-VkMappedMemoryRange-size-00685YNegativeMemory.MapMemoryexplicitVkMappedMemoryRangecoreIf size is not equal to VK_WHOLE_SIZE, offset and size must specify a range contained within the currently mapped range of memory
VUID-VkMappedMemoryRange-size-00686YNegativeMemory.MapMemoryexplicitVkMappedMemoryRangecoreIf size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory
VUID-VkMappedMemoryRange-size-01389YNegativeMemory.MapMemoryexplicitVkMappedMemoryRangecoreIf size is equal to VK_WHOLE_SIZE, the end of the current mapping of memory must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize bytes from the beginning of the memory object, or be equal to the end of the memory object
VUID-VkMappedMemoryRange-size-01390YNegativeMemory.MapMemoryexplicitVkMappedMemoryRangecoreIf size is not equal to VK_WHOLE_SIZE, size must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize, or offset plus size must equal the size of memory
VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675YNegativeWsi.DeviceMaskexplicitVkMemoryAllocateFlagsInfocoreIf VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask
VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676YNegativeWsi.DeviceMaskexplicitVkMemoryAllocateFlagsInfocoreIf VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero
VUID-VkMemoryAllocateFlagsInfo-flags-parameterYNoneimplicitVkMemoryAllocateFlagsInfocoreflags must be a valid combination of VkMemoryAllocateFlagBits values
VUID-VkMemoryAllocateFlagsInfo-sType-sTypeYNoneimplicitVkMemoryAllocateFlagsInfocoresType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
VUID-VkMemoryAllocateInfo-None-00643NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by VkMemoryAllocateFlagsInfo must match the mask specified when the payload being imported was allocated
VUID-VkMemoryAllocateInfo-None-00644NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to vkAllocateMemory must match the list of physical devices that comprise the logical device on which the payload was originally allocated
VUID-VkMemoryAllocateInfo-None-04749NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of memoryTypeIndex must be an index identifying a memory type from the memoryTypeBits field of the VkMemoryZirconHandlePropertiesFUCHSIA structure populated by a call to vkGetMemoryZirconHandlePropertiesFUCHSIA
VUID-VkMemoryAllocateInfo-None-06657YNegativeMemory.MemoryAllocatepNextChainexplicitVkMemoryAllocateInfocoreThe parameters must not define more than one import operation
VUID-VkMemoryAllocateInfo-allocationSize-00647NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, allocationSize must match the size specified when creating the Direct3D 12 heap from which the payload was extracted
VUID-VkMemoryAllocateInfo-allocationSize-01742YNegativeExternalMemorySync.ImportMemoryFromFdHandleexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created
VUID-VkMemoryAllocateInfo-allocationSize-01743YNegativeExternalMemorySync.ImportMemoryFromWin32HandleexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created
VUID-VkMemoryAllocateInfo-allocationSize-01745YNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment
VUID-VkMemoryAllocateInfo-allocationSize-02383YNegativeAndroidHardwareBuffer.AllocationSize, NegativeAndroidHardwareBuffer.GpuUsageexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be the size returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer
VUID-VkMemoryAllocateInfo-allocationSize-06382NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation from an VkBufferCollectionFUCHSIA, allocationSize must match VkMemoryRequirements::size value retrieved by vkGetImageMemoryRequirements or vkGetBufferMemoryRequirements for image-based or buffer-based collections respectively
VUID-VkMemoryAllocateInfo-allocationSize-07897YNoneexplicitVkMemoryAllocateInfocoreIf the parameters do not define an import or export operation, allocationSize must be greater than 0
VUID-VkMemoryAllocateInfo-allocationSize-07899YNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an export operation and the handle type is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID , allocationSize must be greater than 0
VUID-VkMemoryAllocateInfo-allocationSize-07902NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of allocationSize must be greater than 0
VUID-VkMemoryAllocateInfo-allocationSize-07903NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of allocationSize must be less than or equal to the size of the VMO as determined by zx_vmo_get_size(handle) where handle is the VMO handle to the imported external memory
VUID-VkMemoryAllocateInfo-allocationSize-08942NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, allocationSize must be the size returned by vkGetScreenBufferPropertiesQNX for the QNX Screen buffer
VUID-VkMemoryAllocateInfo-buffer-06380NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation from an VkBufferCollectionFUCHSIA, and VkMemoryDedicatedAllocateInfo::buffer is present and non-NULL, VkImportMemoryBufferCollectionFUCHSIA::collection and VkImportMemoryBufferCollectionFUCHSIA::index must match VkBufferCollectionBufferCreateInfoFUCHSIA::collection and VkBufferCollectionBufferCreateInfoFUCHSIA::index, respectively, of the VkBufferCollectionBufferCreateInfoFUCHSIA structure used to create the VkMemoryDedicatedAllocateInfo::buffer
VUID-VkMemoryAllocateInfo-buffer-06385NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation from an VkBufferCollectionFUCHSIA and VkMemoryDedicatedAllocateInfo::buffer is not VK_NULL_HANDLE, the buffer must be created with a VkBufferCollectionBufferCreateInfoFUCHSIA structure chained to its VkBufferCreateInfo::pNext pointer
VUID-VkMemoryAllocateInfo-flags-03330YNegativeMemory.BufferDeviceAddressKHRDisabledexplicitVkMemoryAllocateInfocoreIf VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled
VUID-VkMemoryAllocateInfo-flags-03331YNegativeMemory.BufferDeviceAddressKHRDisabledexplicitVkMemoryAllocateInfocoreIf VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, the bufferDeviceAddress feature must be enabled
VUID-VkMemoryAllocateInfo-image-06381NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation from an VkBufferCollectionFUCHSIA, and VkMemoryDedicatedAllocateInfo::image is present and non-NULL, VkImportMemoryBufferCollectionFUCHSIA::collection and VkImportMemoryBufferCollectionFUCHSIA::index must match VkBufferCollectionImageCreateInfoFUCHSIA::collection and VkBufferCollectionImageCreateInfoFUCHSIA::index, respectively, of the VkBufferCollectionImageCreateInfoFUCHSIA structure used to create the VkMemoryDedicatedAllocateInfo::image
VUID-VkMemoryAllocateInfo-image-06384NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation from an VkBufferCollectionFUCHSIA and VkMemoryDedicatedAllocateInfo::image is not VK_NULL_HANDLE, the image must be created with a VkBufferCollectionImageCreateInfoFUCHSIA structure chained to its VkImageCreateInfo::pNext pointer
VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645YNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryWin32HandlePropertiesKHR
VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryFdPropertiesKHR
VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744YNegativeExternalMemorySync.ImportMemoryHostMemoryIndexexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle is a host pointer, the value of memoryTypeIndex must be one of those returned by vkGetMemoryHostPointerPropertiesEXT
VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872YNegativeProtectedMemory.SubmitexplicitVkMemoryAllocateInfocoreIf the protectedMemory feature is not enabled, the VkMemoryAllocateInfo::memoryTypeIndex must not indicate a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385YNegativeAndroidHardwareBuffer.AllocationSize, NegativeAndroidHardwareBuffer.GpuUsageexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, memoryTypeIndex must be one of those returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer
VUID-VkMemoryAllocateInfo-memoryTypeIndex-06386NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation from an VkBufferCollectionFUCHSIA, memoryTypeIndex must be from VkBufferCollectionPropertiesFUCHSIA as retrieved by vkGetBufferCollectionPropertiesFUCHSIA
VUID-VkMemoryAllocateInfo-memoryTypeIndex-08943NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, memoryTypeIndex must be one of those returned by vkGetScreenBufferPropertiesQNX for the QNX Screen buffer
VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329YNoneexplicitVkMemoryAllocateInfocoreIf VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333YNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero
VUID-VkMemoryAllocateInfo-pNext-00639YNegativeExternalMemorySync.BufferDedicatedAllocation, NegativeExternalMemorySync.ImageDedicatedAllocationexplicitVkMemoryAllocateInfocoreIf the pNext chain includes a VkExportMemoryAllocateInfo structure, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2 in VkExternalImageFormatProperties::externalMemoryProperties.externalMemoryFeatures, or by vkGetPhysicalDeviceExternalBufferProperties in VkExternalBufferProperties::externalMemoryProperties.externalMemoryFeatures, the pNext chain must include a VkMemoryDedicatedAllocateInfo or VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer member set to a value other than VK_NULL_HANDLE
VUID-VkMemoryAllocateInfo-pNext-00640YNegativeMemory.MemoryAllocatepNextChainexplicitVkMemoryAllocateInfocoreIf the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure
VUID-VkMemoryAllocateInfo-pNext-00641YNegativeMemory.MemoryAllocatepNextChainexplicitVkMemoryAllocateInfocoreIf the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure
VUID-VkMemoryAllocateInfo-pNext-01874YNegativeAndroidHardwareBuffer.ExportMemoryAllocateImageexplicitVkMemoryAllocateInfocoreIf the parameters do not define an import operation, and the pNext chain includes a VkExportMemoryAllocateInfo structure with VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID included in its handleTypes member, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image not equal to VK_NULL_HANDLE, then allocationSize must be 0
VUID-VkMemoryAllocateInfo-pNext-02384YNegativeAndroidHardwareBuffer.GpuDataBuffer, NegativeAndroidHardwareBuffer.ImportBufferexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain does not include a VkMemoryDedicatedAllocateInfo structure or VkMemoryDedicatedAllocateInfo::image is VK_NULL_HANDLE, the Android hardware buffer must have a AHardwareBuffer_Desc::format of AHARDWAREBUFFER_FORMAT_BLOB and a AHardwareBuffer_Desc::usage that includes AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER
VUID-VkMemoryAllocateInfo-pNext-02386YNegativeAndroidHardwareBuffer.GpuUsageexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the Android hardware buffer's AHardwareBuffer::usage must include at least one of AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER, AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE or AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER
VUID-VkMemoryAllocateInfo-pNext-02387YNegativeAndroidHardwareBuffer.UnknownFormatexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetAndroidHardwareBufferPropertiesANDROID in VkAndroidHardwareBufferFormatPropertiesANDROID::format for the Android hardware buffer
VUID-VkMemoryAllocateInfo-pNext-02388YNegativeAndroidHardwareBuffer.ImageDimensionsexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the Android hardware buffer's AHardwareBuffer_Desc must be identical
VUID-VkMemoryAllocateInfo-pNext-02389YNegativeAndroidHardwareBuffer.MipmapChainCompleteexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer's AHardwareBuffer::usage includes AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have a complete mipmap chain
VUID-VkMemoryAllocateInfo-pNext-02390YNegativeAndroidHardwareBuffer.DedicatedUsageColor, NegativeAndroidHardwareBuffer.DedicatedUsageDS, NegativeAndroidHardwareBuffer.GpuUsageexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, each bit set in the usage of image must be listed in AHardwareBuffer Usage Equivalence, and if there is a corresponding AHARDWAREBUFFER_USAGE bit listed that bit must be included in the Android hardware buffer's AHardwareBuffer_Desc::usage
VUID-VkMemoryAllocateInfo-pNext-02586YNegativeAndroidHardwareBuffer.NoMipmapChainexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer's AHardwareBuffer::usage does not include AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have exactly one mipmap level
VUID-VkMemoryAllocateInfo-pNext-02805NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer field set to a value other than VK_NULL_HANDLE
VUID-VkMemoryAllocateInfo-pNext-02806YNegativeExternalMemorySync.ImportMemoryHostDedicatedexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE
VUID-VkMemoryAllocateInfo-pNext-03332YNoneexplicitVkMemoryAllocateInfocoreIf the pNext chain includes a VkImportMemoryHostPointerInfoEXT structure, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero
VUID-VkMemoryAllocateInfo-pNext-06383NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation from an VkBufferCollectionFUCHSIA, the pNext chain must include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE
VUID-VkMemoryAllocateInfo-pNext-06780YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkMemoryAllocateInfocoreIf the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT
VUID-VkMemoryAllocateInfo-pNext-07900YNegativeAndroidHardwareBuffer.ExportBufferAllocationSizeexplicitVkMemoryAllocateInfocoreIf the parameters define an export operation, the handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext does not include a VkMemoryDedicatedAllocateInfo structure, allocationSize must be greater than 0
VUID-VkMemoryAllocateInfo-pNext-07901YNegativeAndroidHardwareBuffer.ExportMemoryAllocateBufferexplicitVkMemoryAllocateInfocoreIf the parameters define an export operation, the handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with buffer set to a valid VkBuffer object, allocationSize must be greater than 0
VUID-VkMemoryAllocateInfo-pNext-08944NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is a QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the QNX Screen's buffer must be a valid QNX Screen buffer
VUID-VkMemoryAllocateInfo-pNext-08945NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is an QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetScreenBufferPropertiesQNX in VkScreenBufferFormatPropertiesQNX::format for the QNX Screen buffer
VUID-VkMemoryAllocateInfo-pNext-08946NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation, the external handle is a QNX Screen buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the QNX Screen buffer's _screen_buffer must be identical
VUID-VkMemoryAllocateInfo-pNext-pNextYNoneimplicitVkMemoryAllocateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationMemoryAllocateInfoNV, VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, VkExportMemoryWin32HandleInfoNV, VkExportMetalObjectCreateInfoEXT, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryBufferCollectionFUCHSIA, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkImportMemoryZirconHandleInfoFUCHSIA, VkImportMetalBufferInfoEXT, VkImportScreenBufferInfoQNX, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, VkMemoryOpaqueCaptureAddressAllocateInfo, or VkMemoryPriorityAllocateInfoEXT
VUID-VkMemoryAllocateInfo-sType-sTypeYVkLayerTest.InvalidStructSTypeimplicitVkMemoryAllocateInfocoresType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
VUID-VkMemoryAllocateInfo-sType-uniqueYNoneimplicitVkMemoryAllocateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkMemoryAllocateInfo-screenBufferImport-08941NNoneexplicitVkMemoryAllocateInfocoreIf the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX::screenBufferImport must be enabled
VUID-VkMemoryBarrier-dstAccessMask-parameterYNoneimplicitVkMemoryBarriercoredstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkMemoryBarrier-pNext-pNextYNoneimplicitVkMemoryBarriercorepNext must be NULL
VUID-VkMemoryBarrier-sType-sTypeYNoneimplicitVkMemoryBarriercoresType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
VUID-VkMemoryBarrier-srcAccessMask-parameterYNoneimplicitVkMemoryBarriercoresrcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkMemoryBarrier2-dstAccessMask-03900YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03901YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03902YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03903YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03904YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-03905YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-03906YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-03907YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-03909YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-03910YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03911YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03912YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03913YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03914YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03915YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03916YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03917YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03919YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03920YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03922YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03923YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03924YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03925YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03926YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03927YNegativeRayTracing.BarrierAccessAccelerationStructureexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-03928YNegativeRayTracing.BarrierAccessAccelerationStructureexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-04747YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-04858YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-dstAccessMask-06256YNegativeRayTracing.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkMemoryBarrier2coreIf the rayQuery feature is not enabled and dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-07272YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-07454YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-07455NNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-dstAccessMask-07456NNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-dstAccessMask-07457NNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkMemoryBarrier2-dstAccessMask-07458NNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-08118YNoneexplicitVkMemoryBarrier2coreIf dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-parameterYNoneimplicitVkMemoryBarrier2coredstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkMemoryBarrier2-dstStageMask-03929YNoneexplicitVkMemoryBarrier2coreIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkMemoryBarrier2-dstStageMask-03930YNoneexplicitVkMemoryBarrier2coreIf the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkMemoryBarrier2-dstStageMask-03931YNoneexplicitVkMemoryBarrier2coreIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03932YNoneexplicitVkMemoryBarrier2coreIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03933YNoneexplicitVkMemoryBarrier2coreIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03934YNoneexplicitVkMemoryBarrier2coreIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03935YNoneexplicitVkMemoryBarrier2coreIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-04957NNoneexplicitVkMemoryBarrier2coreIf the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkMemoryBarrier2-dstStageMask-04995NNoneexplicitVkMemoryBarrier2coreIf the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-dstStageMask-07316YNoneexplicitVkMemoryBarrier2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkMemoryBarrier2-dstStageMask-07946YNoneexplicitVkMemoryBarrier2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkMemoryBarrier2-dstStageMask-parameterYNoneimplicitVkMemoryBarrier2coredstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkMemoryBarrier2-sType-sTypeYNoneimplicitVkMemoryBarrier2coresType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER_2
VUID-VkMemoryBarrier2-srcAccessMask-03900YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03901YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03902YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03903YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03904YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-03905YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-03906YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-03907YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-03909YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-03910YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03911YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03912YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03913YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03914YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03915YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03916YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03917YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03919YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03920YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03922YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03923YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03924YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03925YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03926YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03927YNegativeRayTracing.BarrierAccessAccelerationStructureexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-03928YNegativeRayTracing.BarrierAccessAccelerationStructureexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-04747YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-04858YNegativeSyncObject.BarrierAccessVideoDecodeexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04859YNegativeSyncObject.BarrierAccessVideoDecodeexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04860YNegativeSyncObject.BarrierAccessVideoDecodeexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04861YNegativeSyncObject.BarrierAccessVideoDecodeexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-srcAccessMask-06256YNegativeRayTracing.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkMemoryBarrier2coreIf the rayQuery feature is not enabled and srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-07272YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-07454YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-07455NNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-srcAccessMask-07456NNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-srcAccessMask-07457NNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkMemoryBarrier2-srcAccessMask-07458NNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-08118YNoneexplicitVkMemoryBarrier2coreIf srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-parameterYNoneimplicitVkMemoryBarrier2coresrcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkMemoryBarrier2-srcStageMask-03929YNoneexplicitVkMemoryBarrier2coreIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkMemoryBarrier2-srcStageMask-03930YNoneexplicitVkMemoryBarrier2coreIf the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkMemoryBarrier2-srcStageMask-03931YNoneexplicitVkMemoryBarrier2coreIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03932YNoneexplicitVkMemoryBarrier2coreIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03933YNoneexplicitVkMemoryBarrier2coreIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03934YNoneexplicitVkMemoryBarrier2coreIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03935YNoneexplicitVkMemoryBarrier2coreIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-04957NNoneexplicitVkMemoryBarrier2coreIf the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkMemoryBarrier2-srcStageMask-04995NNoneexplicitVkMemoryBarrier2coreIf the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-srcStageMask-07316YNoneexplicitVkMemoryBarrier2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkMemoryBarrier2-srcStageMask-07946YNoneexplicitVkMemoryBarrier2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkMemoryBarrier2-srcStageMask-parameterYNegativeSubpass.SubpassDependencyMasksSync2implicitVkMemoryBarrier2coresrcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkMemoryDedicatedAllocateInfo-buffer-01436YNegativeMemory.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfocoreIf buffer is not VK_NULL_HANDLE, buffer must have been created without VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in VkBufferCreateInfo::flags
VUID-VkMemoryDedicatedAllocateInfo-buffer-01877YNegativeExternalMemorySync.ImportMemoryWin32BufferDifferentDedicatedexplicitVkMemoryDedicatedAllocateInfocoreIf buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory
VUID-VkMemoryDedicatedAllocateInfo-buffer-01879YNegativeExternalMemorySync.ImportMemoryFdBufferDifferentDedicated, NegativeExternalMemorySync.ImportMemoryFdBufferNoDedicatedexplicitVkMemoryDedicatedAllocateInfocoreIf buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory
VUID-VkMemoryDedicatedAllocateInfo-buffer-02965YNegativeAndroidHardwareBuffer.ExportMemoryAllocateBuffer, NegativeMemory.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfocoreIf buffer is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer , VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer
VUID-VkMemoryDedicatedAllocateInfo-buffer-04752NNoneexplicitVkMemoryDedicatedAllocateInfocoreIf buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory
VUID-VkMemoryDedicatedAllocateInfo-buffer-parameterYNoneimplicitVkMemoryDedicatedAllocateInfocoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkMemoryDedicatedAllocateInfo-commonparentYNoneimplicitVkMemoryDedicatedAllocateInfocoreBoth of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkMemoryDedicatedAllocateInfo-image-01432YNegativeMemory.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfocoreAt least one of image and buffer must be VK_NULL_HANDLE
VUID-VkMemoryDedicatedAllocateInfo-image-01434YNegativeMemory.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfocoreIf image is not VK_NULL_HANDLE, image must have been created without VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in VkImageCreateInfo::flags
VUID-VkMemoryDedicatedAllocateInfo-image-01797YNegativeMemory.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfocoreIf image is not VK_NULL_HANDLE, image must not have been created with VK_IMAGE_CREATE_DISJOINT_BIT set in VkImageCreateInfo::flags
VUID-VkMemoryDedicatedAllocateInfo-image-01876YNegativeExternalMemorySync.ImportMemoryWin32ImageNoDedicatedexplicitVkMemoryDedicatedAllocateInfocoreIf image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory
VUID-VkMemoryDedicatedAllocateInfo-image-01878YNoneexplicitVkMemoryDedicatedAllocateInfocoreIf image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory
VUID-VkMemoryDedicatedAllocateInfo-image-02964YNegativeMemory.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfocoreIf image is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer or an imported QNX Screen buffer , VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image
VUID-VkMemoryDedicatedAllocateInfo-image-04751NNoneexplicitVkMemoryDedicatedAllocateInfocoreIf image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory
VUID-VkMemoryDedicatedAllocateInfo-image-parameterYNoneimplicitVkMemoryDedicatedAllocateInfocoreIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkMemoryDedicatedAllocateInfo-sType-sTypeYNoneimplicitVkMemoryDedicatedAllocateInfocoresType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
VUID-VkMemoryDedicatedRequirements-sType-sTypeYNoneimplicitVkMemoryDedicatedRequirementscoresType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
VUID-VkMemoryFdPropertiesKHR-pNext-pNextYNoneimplicitVkMemoryFdPropertiesKHRcorepNext must be NULL
VUID-VkMemoryFdPropertiesKHR-sType-sTypeYNoneimplicitVkMemoryFdPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882YNegativeAndroidHardwareBuffer.ExportBufferHandleTypeexplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDcoreVK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameterYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDcorememory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883YNegativeAndroidHardwareBuffer.ExportImageNonBoundexplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDcoreIf the pNext chain of the VkMemoryAllocateInfo used to allocate memory included a VkMemoryDedicatedAllocateInfo with non-NULL image member, then that image must already be bound to memory
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-pNextYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDcorepNext must be NULL
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sTypeYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDcoresType must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
VUID-VkMemoryGetFdInfoKHR-handleType-00671YNegativeExternalMemorySync.GetMemoryFdHandleexplicitVkMemoryGetFdInfoKHRcorehandleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetFdInfoKHR-handleType-00672YNegativeExternalMemorySync.GetMemoryFdHandleexplicitVkMemoryGetFdInfoKHRcorehandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT
VUID-VkMemoryGetFdInfoKHR-handleType-parameterYNoneimplicitVkMemoryGetFdInfoKHRcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetFdInfoKHR-memory-parameterYNoneimplicitVkMemoryGetFdInfoKHRcorememory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetFdInfoKHR-pNext-pNextYNoneimplicitVkMemoryGetFdInfoKHRcorepNext must be NULL
VUID-VkMemoryGetFdInfoKHR-sType-sTypeYNoneimplicitVkMemoryGetFdInfoKHRcoresType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
VUID-VkMemoryGetRemoteAddressInfoNV-handleType-04966NNoneexplicitVkMemoryGetRemoteAddressInfoNVcorehandleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetRemoteAddressInfoNV-handleType-parameterYNoneimplicitVkMemoryGetRemoteAddressInfoNVcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetRemoteAddressInfoNV-memory-parameterYNoneimplicitVkMemoryGetRemoteAddressInfoNVcorememory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetRemoteAddressInfoNV-pNext-pNextYNoneimplicitVkMemoryGetRemoteAddressInfoNVcorepNext must be NULL
VUID-VkMemoryGetRemoteAddressInfoNV-sType-sTypeYNoneimplicitVkMemoryGetRemoteAddressInfoNVcoresType must be VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662YNegativeExternalMemorySync.GetMemoryWin32HandleexplicitVkMemoryGetWin32HandleInfoKHRcorehandleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663NNoneexplicitVkMemoryGetWin32HandleInfoKHRcoreIf handleType is defined as an NT handle, vkGetMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00664YNegativeExternalMemorySync.GetMemoryWin32HandleexplicitVkMemoryGetWin32HandleInfoKHRcorehandleType must be defined as an NT handle or a global share handle
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkMemoryGetWin32HandleInfoKHRcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameterYNoneimplicitVkMemoryGetWin32HandleInfoKHRcorememory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkMemoryGetWin32HandleInfoKHRcorepNext must be NULL
VUID-VkMemoryGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkMemoryGetWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775NNoneexplicitVkMemoryGetZirconHandleInfoFUCHSIAcorehandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776NNoneexplicitVkMemoryGetZirconHandleInfoFUCHSIAcorehandleType must have been included in the handleTypes field of the VkExportMemoryAllocateInfo structure when the external memory was allocated
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIAcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameterYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIAcorememory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIAcorepNext must be NULL
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNextYNoneimplicitVkMemoryHostPointerPropertiesEXTcorepNext must be NULL
VUID-VkMemoryHostPointerPropertiesEXT-sType-sTypeYNoneimplicitVkMemoryHostPointerPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
VUID-VkMemoryMapInfoKHR-flags-zerobitmaskYNoneimplicitVkMemoryMapInfoKHRcoreflags must be 0
VUID-VkMemoryMapInfoKHR-memory-07958YNegativeMemory.MapMemory2explicitVkMemoryMapInfoKHRcorememory must not be currently host mapped
VUID-VkMemoryMapInfoKHR-memory-07962YNegativeMemory.MapMemory2WithoutHostVisibleBitexplicitVkMemoryMapInfoKHRcorememory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VUID-VkMemoryMapInfoKHR-memory-07963YNoneexplicitVkMemoryMapInfoKHRcorememory must not have been allocated with multiple instances
VUID-VkMemoryMapInfoKHR-memory-parameterYNoneimplicitVkMemoryMapInfoKHRcorememory must be a valid VkDeviceMemory handle
VUID-VkMemoryMapInfoKHR-offset-07959YNegativeMemory.MapMemory2explicitVkMemoryMapInfoKHRcoreoffset must be less than the size of memory
VUID-VkMemoryMapInfoKHR-pNext-pNextYNoneimplicitVkMemoryMapInfoKHRcorepNext must be NULL
VUID-VkMemoryMapInfoKHR-sType-sTypeYNoneimplicitVkMemoryMapInfoKHRcoresType must be VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR
VUID-VkMemoryMapInfoKHR-size-07960YNegativeMemory.MapMemory2explicitVkMemoryMapInfoKHRcoreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkMemoryMapInfoKHR-size-07961YNegativeMemory.MapMemory2explicitVkMemoryMapInfoKHRcoreIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset
VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sTypeYNoneimplicitVkMemoryOpaqueCaptureAddressAllocateInfocoresType must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602YNegativeMemory.MemoryPriorityOutOfRangeexplicitVkMemoryPriorityAllocateInfoEXTcorepriority must be between 0 and 1, inclusive
VUID-VkMemoryPriorityAllocateInfoEXT-sType-sTypeYNoneimplicitVkMemoryPriorityAllocateInfoEXTcoresType must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
VUID-VkMemoryRequirements2-pNext-pNextYNoneimplicitVkMemoryRequirements2corepNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirements
VUID-VkMemoryRequirements2-sType-sTypeYNoneimplicitVkMemoryRequirements2coresType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
VUID-VkMemoryRequirements2-sType-uniqueYNoneimplicitVkMemoryRequirements2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkMemoryToImageCopyEXT-aspectMask-09103YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkMemoryToImageCopyEXTcoreThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkMemoryToImageCopyEXT-imageExtent-06659YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkMemoryToImageCopyEXTcoreimageExtent.width must not be 0
VUID-VkMemoryToImageCopyEXT-imageExtent-06660YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkMemoryToImageCopyEXTcoreimageExtent.height must not be 0
VUID-VkMemoryToImageCopyEXT-imageExtent-06661YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkMemoryToImageCopyEXTcoreimageExtent.depth must not be 0
VUID-VkMemoryToImageCopyEXT-imageSubresource-parameterNNoneimplicitVkMemoryToImageCopyEXTcoreimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkMemoryToImageCopyEXT-memoryImageHeight-09102YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkMemoryToImageCopyEXTcorememoryImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkMemoryToImageCopyEXT-memoryRowLength-09101YNegativeHostImageCopy.HostCopyImageToFromMemoryexplicitVkMemoryToImageCopyEXTcorememoryRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkMemoryToImageCopyEXT-pHostPointer-09061YNoneexplicitVkMemoryToImageCopyEXTcorepHostPointer must point to memory that is large enough to contain all memory locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
VUID-VkMemoryToImageCopyEXT-pHostPointer-parameterYNoneimplicitVkMemoryToImageCopyEXTcorepHostPointer must be a pointer value
VUID-VkMemoryToImageCopyEXT-pNext-pNextYNoneimplicitVkMemoryToImageCopyEXTcorepNext must be NULL
VUID-VkMemoryToImageCopyEXT-pRegions-09062YNegativeHostImageCopy.ImageMemoryOverlapexplicitVkMemoryToImageCopyEXTcoreThe union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkMemoryToImageCopyEXT-sType-sTypeYNoneimplicitVkMemoryToImageCopyEXTcoresType must be VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT
VUID-VkMemoryUnmapInfoKHR-flags-zerobitmaskYNoneimplicitVkMemoryUnmapInfoKHRcoreflags must be 0
VUID-VkMemoryUnmapInfoKHR-memory-07964YNegativeMemory.MapMemory2explicitVkMemoryUnmapInfoKHRcorememory must be currently host mapped
VUID-VkMemoryUnmapInfoKHR-memory-parameterYNoneimplicitVkMemoryUnmapInfoKHRcorememory must be a valid VkDeviceMemory handle
VUID-VkMemoryUnmapInfoKHR-pNext-pNextYNoneimplicitVkMemoryUnmapInfoKHRcorepNext must be NULL
VUID-VkMemoryUnmapInfoKHR-sType-sTypeYNoneimplicitVkMemoryUnmapInfoKHRcoresType must be VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR
VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNextYNoneimplicitVkMemoryWin32HandlePropertiesKHRcorepNext must be NULL
VUID-VkMemoryWin32HandlePropertiesKHR-sType-sTypeYNoneimplicitVkMemoryWin32HandlePropertiesKHRcoresType must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
VUID-VkMemoryZirconHandlePropertiesFUCHSIA-pNext-pNextYNoneimplicitVkMemoryZirconHandlePropertiesFUCHSIAcorepNext must be NULL
VUID-VkMemoryZirconHandlePropertiesFUCHSIA-sType-sTypeYNoneimplicitVkMemoryZirconHandlePropertiesFUCHSIAcoresType must be VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkMetalSurfaceCreateInfoEXTcoreflags must be 0
VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkMetalSurfaceCreateInfoEXTcorepNext must be NULL
VUID-VkMetalSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkMetalSurfaceCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
VUID-VkMicromapBuildInfoEXT-flags-parameterYNoneimplicitVkMicromapBuildInfoEXTcoreflags must be a valid combination of VkBuildMicromapFlagBitsEXT values
VUID-VkMicromapBuildInfoEXT-pNext-pNextYNoneimplicitVkMicromapBuildInfoEXTcorepNext must be NULL
VUID-VkMicromapBuildInfoEXT-pUsageCounts-07516NNoneexplicitVkMicromapBuildInfoEXTcoreOnly one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
VUID-VkMicromapBuildInfoEXT-pUsageCounts-parameterNNoneimplicitVkMicromapBuildInfoEXTcoreIf usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures
VUID-VkMicromapBuildInfoEXT-ppUsageCounts-parameterNNoneimplicitVkMicromapBuildInfoEXTcoreIf usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures
VUID-VkMicromapBuildInfoEXT-sType-sTypeYNoneimplicitVkMicromapBuildInfoEXTcoresType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
VUID-VkMicromapBuildInfoEXT-type-07517NNoneexplicitVkMicromapBuildInfoEXTcoreIf type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapUsageEXT must be a valid value from VkOpacityMicromapFormatEXT
VUID-VkMicromapBuildInfoEXT-type-07518NNoneexplicitVkMicromapBuildInfoEXTcoreIf type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapTriangleEXT must be a valid value from VkOpacityMicromapFormatEXT
VUID-VkMicromapBuildInfoEXT-type-08704NNoneexplicitVkMicromapBuildInfoEXTcoreIf type is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV the format member of VkMicromapUsageEXT must be a valid value from VkDisplacementMicromapFormatNV
VUID-VkMicromapBuildInfoEXT-type-08705NNoneexplicitVkMicromapBuildInfoEXTcoreIf type is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV the format member of VkMicromapTriangleEXT must be a valid value from VkDisplacementMicromapFormatNV
VUID-VkMicromapBuildInfoEXT-type-parameterYNoneimplicitVkMicromapBuildInfoEXTcoretype must be a valid VkMicromapTypeEXT value
VUID-VkMicromapBuildSizesInfoEXT-pNext-pNextNNoneimplicitVkMicromapBuildSizesInfoEXTcorepNext must be NULL
VUID-VkMicromapBuildSizesInfoEXT-sType-sTypeYNoneimplicitVkMicromapBuildSizesInfoEXTcoresType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
VUID-VkMicromapCreateInfoEXT-buffer-07435NNoneexplicitVkMicromapCreateInfoEXTcorebuffer must have been created with a usage value containing VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT
VUID-VkMicromapCreateInfoEXT-buffer-07436NNoneexplicitVkMicromapCreateInfoEXTcorebuffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkMicromapCreateInfoEXT-buffer-parameterYNoneimplicitVkMicromapCreateInfoEXTcorebuffer must be a valid VkBuffer handle
VUID-VkMicromapCreateInfoEXT-createFlags-07434NNoneexplicitVkMicromapCreateInfoEXTcoreIf createFlags includes VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapCaptureReplay must be VK_TRUE
VUID-VkMicromapCreateInfoEXT-createFlags-parameterYNoneimplicitVkMicromapCreateInfoEXTcorecreateFlags must be a valid combination of VkMicromapCreateFlagBitsEXT values
VUID-VkMicromapCreateInfoEXT-deviceAddress-07433NNoneexplicitVkMicromapCreateInfoEXTcoreIf deviceAddress is not zero, createFlags must include VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
VUID-VkMicromapCreateInfoEXT-offset-07437NNoneexplicitVkMicromapCreateInfoEXTcoreThe sum of offset and size must be less than the size of buffer
VUID-VkMicromapCreateInfoEXT-offset-07438NNoneexplicitVkMicromapCreateInfoEXTcoreoffset must be a multiple of 256 bytes
VUID-VkMicromapCreateInfoEXT-pNext-pNextYNoneimplicitVkMicromapCreateInfoEXTcorepNext must be NULL
VUID-VkMicromapCreateInfoEXT-sType-sTypeYNoneimplicitVkMicromapCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
VUID-VkMicromapCreateInfoEXT-type-parameterYNoneimplicitVkMicromapCreateInfoEXTcoretype must be a valid VkMicromapTypeEXT value
VUID-VkMicromapTriangleEXT-format-07522NNoneexplicitVkMicromapTriangleEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT then format must be VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT or VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT
VUID-VkMicromapTriangleEXT-format-07523NNoneexplicitVkMicromapTriangleEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity2StateSubdivisionLevel
VUID-VkMicromapTriangleEXT-format-07524NNoneexplicitVkMicromapTriangleEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity4StateSubdivisionLevel
VUID-VkMicromapTriangleEXT-format-08708NNoneexplicitVkMicromapTriangleEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then format must be VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV, VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV or VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV
VUID-VkMicromapTriangleEXT-subdivisionLevel-08709NNoneexplicitVkMicromapTriangleEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then subdivisionLevel must be less than or equal to VkPhysicalDeviceDisplacementMicromapPropertiesNV::maxDisplacementMicromapSubdivisionLevel
VUID-VkMicromapUsageEXT-format-07519NNoneexplicitVkMicromapUsageEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT then format must be VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT or VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT
VUID-VkMicromapUsageEXT-format-07520NNoneexplicitVkMicromapUsageEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity2StateSubdivisionLevel
VUID-VkMicromapUsageEXT-format-07521NNoneexplicitVkMicromapUsageEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT and format is VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT then subdivisionLevel must be less than or equal to VkPhysicalDeviceOpacityMicromapPropertiesEXT::maxOpacity4StateSubdivisionLevel
VUID-VkMicromapUsageEXT-format-08706NNoneexplicitVkMicromapUsageEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then format must be VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV, VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV or VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV
VUID-VkMicromapUsageEXT-subdivisionLevel-08707NNoneexplicitVkMicromapUsageEXTcoreIf the VkMicromapTypeEXT of the micromap is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV then subdivisionLevel must be less than or equal to VkPhysicalDeviceDisplacementMicromapPropertiesNV::maxDisplacementMicromapSubdivisionLevel
VUID-VkMicromapVersionInfoEXT-pNext-pNextYNoneimplicitVkMicromapVersionInfoEXTcorepNext must be NULL
VUID-VkMicromapVersionInfoEXT-pVersionData-parameterYNoneimplicitVkMicromapVersionInfoEXTcorepVersionData must be a valid pointer to an array of \(2 \times \mathtt{VK\_UUID\_SIZE}\) uint8_t values
VUID-VkMicromapVersionInfoEXT-sType-sTypeYNoneimplicitVkMicromapVersionInfoEXTcoresType must be VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
VUID-VkMultisamplePropertiesEXT-pNext-pNextYNoneimplicitVkMultisamplePropertiesEXTcorepNext must be NULL
VUID-VkMultisamplePropertiesEXT-sType-sTypeYNoneimplicitVkMultisamplePropertiesEXTcoresType must be VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
VUID-VkMultisampledRenderToSingleSampledInfoEXT-pNext-06880YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkMultisampledRenderToSingleSampledInfoEXTcoreIf added to the pNext chain of VkRenderingInfo, each imageView member of any element of VkRenderingInfo::pColorAttachments, VkRenderingInfo::pDepthAttachment, or VkRenderingInfo::pStencilAttachment that is not VK_NULL_HANDLE must have a format that supports the sample count specified in rasterizationSamples
VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-06878YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkMultisampledRenderToSingleSampledInfoEXTcoreThe value of rasterizationSamples must not be VK_SAMPLE_COUNT_1_BIT
VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-parameterYNoneimplicitVkMultisampledRenderToSingleSampledInfoEXTcorerasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkMultisampledRenderToSingleSampledInfoEXT-sType-sTypeYNoneimplicitVkMultisampledRenderToSingleSampledInfoEXTcoresType must be VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT
VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sTypeYNoneimplicitVkMultiviewPerViewAttributesInfoNVXcoresType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07861NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMcoreThe offset.x member of any element of pPerViewRenderAreas must be greater than or equal to 0
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07862NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMcoreThe offset.y member of any element of pPerViewRenderAreas must be greater than or equal to 0
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07863NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMcoreThe sum of the offset.x and extent.width members of any element of pPerViewRenderAreas must be less than or equal to maxFramebufferWidth
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07864NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMcoreThe sum of the offset.y and extent.height members of any element of pPerViewRenderAreas must be less than or equal to maxFramebufferHeight
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07865NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMcoreIf this structure is in the pNext chain of VkRenderPassBeginInfo and if the render pass object included an element in VkRenderPassMultiviewCreateInfo::pViewMasks that set bit n, then perViewRenderAreaCount must be at least equal to n+1.
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pNext-07866NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMcoreIf this structure is in the pNext chain of VkRenderingInfo and if VkRenderingInfo::viewMask set bit n, then perViewRenderAreaCount must be at least equal to n+1.
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-pPerViewRenderAreas-parameterYNoneimplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMcoreIf perViewRenderAreaCount is not 0, pPerViewRenderAreas must be a valid pointer to an array of perViewRenderAreaCount VkRect2D structures
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-sType-sTypeYNoneimplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMcoresType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
VUID-VkMutableDescriptorTypeCreateInfoEXT-pMutableDescriptorTypeLists-parameterYNoneimplicitVkMutableDescriptorTypeCreateInfoEXTcoreIf mutableDescriptorTypeListCount is not 0, pMutableDescriptorTypeLists must be a valid pointer to an array of mutableDescriptorTypeListCount valid VkMutableDescriptorTypeListEXT structures
VUID-VkMutableDescriptorTypeCreateInfoEXT-sType-sTypeYNoneimplicitVkMutableDescriptorTypeCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04597YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTcoredescriptorTypeCount must not be 0 if the corresponding binding is of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04599YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTcoredescriptorTypeCount must be 0 if the corresponding binding is not of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04598YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTcorepDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid, unique VkDescriptorType values if the given binding is of VK_DESCRIPTOR_TYPE_MUTABLE_EXT type
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04600YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTcorepDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04601YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTcorepDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04602YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTcorepDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04603YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTcorepDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-parameterNNoneimplicitVkMutableDescriptorTypeListEXTcoreIf descriptorTypeCount is not 0, pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid VkDescriptorType values
VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-opaqueCaptureDescriptorData-parameterYNoneimplicitVkOpaqueCaptureDescriptorDataCreateInfoEXTcoreopaqueCaptureDescriptorData must be a pointer value
VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-sType-sTypeYNoneimplicitVkOpaqueCaptureDescriptorDataCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
VUID-VkOpticalFlowExecuteInfoNV-flags-parameterYNoneimplicitVkOpticalFlowExecuteInfoNVcoreflags must be a valid combination of VkOpticalFlowExecuteFlagBitsNV values
VUID-VkOpticalFlowExecuteInfoNV-pNext-pNextYNoneimplicitVkOpticalFlowExecuteInfoNVcorepNext must be NULL
VUID-VkOpticalFlowExecuteInfoNV-pRegions-parameterYNoneimplicitVkOpticalFlowExecuteInfoNVcoreIf regionCount is not 0, pRegions must be a valid pointer to an array of regionCount VkRect2D structures
VUID-VkOpticalFlowExecuteInfoNV-regionCount-07593NNoneexplicitVkOpticalFlowExecuteInfoNVcoreregionCount must be 0 if VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV was not set for VkOpticalFlowSessionNV on which this command is operating
VUID-VkOpticalFlowExecuteInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowExecuteInfoNVcoresType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
VUID-VkOpticalFlowImageFormatInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowImageFormatInfoNVcoresType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
VUID-VkOpticalFlowImageFormatInfoNV-usage-parameterYNoneimplicitVkOpticalFlowImageFormatInfoNVcoreusage must be a valid combination of VkOpticalFlowUsageFlagBitsNV values
VUID-VkOpticalFlowImageFormatInfoNV-usage-requiredbitmaskYNoneimplicitVkOpticalFlowImageFormatInfoNVcoreusage must not be 0
VUID-VkOpticalFlowImageFormatPropertiesNV-pNext-pNextYNoneimplicitVkOpticalFlowImageFormatPropertiesNVcorepNext must be NULL
VUID-VkOpticalFlowImageFormatPropertiesNV-sType-sTypeYNoneimplicitVkOpticalFlowImageFormatPropertiesNVcoresType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-07585NNoneexplicitVkOpticalFlowSessionCreateInfoNVcorecostFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_COST_BIT_NV if VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV is set in flags
VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoreIf costFormat is not 0, costFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07588NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreVK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::hintSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07589NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreVK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::costSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07590NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreVK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::globalFlowSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07591NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreVK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::maxNumRegionsOfInterest is 0
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07592NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreVK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::bidirectionalFlowSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoreflags must be a valid combination of VkOpticalFlowSessionCreateFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-07584NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreflowVectorFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV
VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoreflowVectorFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-height-07582NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreheight must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minHeight and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxHeight
VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-07587NNoneexplicitVkOpticalFlowSessionCreateInfoNVcorehintGridSize must be exactly one of the bits reported in VkPhysicalDeviceOpticalFlowPropertiesNV::supportedHintGridSizes if VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV is set in flags
VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVcorehintGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-07583NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreimageFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV
VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoreimageFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-07586NNoneexplicitVkOpticalFlowSessionCreateInfoNVcoreoutputGridSize must be exactly one of the bits reported in VkPhysicalDeviceOpticalFlowPropertiesNV::supportedOutputGridSizes
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoreoutputGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-requiredbitmaskYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoreoutputGridSize must not be 0
VUID-VkOpticalFlowSessionCreateInfoNV-pNext-pNextYNoneimplicitVkOpticalFlowSessionCreateInfoNVcorepNext must be NULL or a pointer to a valid instance of VkOpticalFlowSessionCreatePrivateDataInfoNV
VUID-VkOpticalFlowSessionCreateInfoNV-performanceLevel-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoreIf performanceLevel is not 0, performanceLevel must be a valid VkOpticalFlowPerformanceLevelNV value
VUID-VkOpticalFlowSessionCreateInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
VUID-VkOpticalFlowSessionCreateInfoNV-sType-uniqueYNoneimplicitVkOpticalFlowSessionCreateInfoNVcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkOpticalFlowSessionCreateInfoNV-width-07581NNoneexplicitVkOpticalFlowSessionCreateInfoNVcorewidth must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minWidth and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxWidth
VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-pPrivateData-parameterYNoneimplicitVkOpticalFlowSessionCreatePrivateDataInfoNVcorepPrivateData must be a pointer value
VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowSessionCreatePrivateDataInfoNVcoresType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV
VUID-VkOutOfBandQueueTypeInfoNV-queueType-parameterYNoneimplicitVkOutOfBandQueueTypeInfoNVcorequeueType must be a valid VkOutOfBandQueueTypeNV value
VUID-VkOutOfBandQueueTypeInfoNV-sType-sTypeYNoneimplicitVkOutOfBandQueueTypeInfoNVcoresType must be VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV
VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceConfigurationAcquireInfoINTELcorepNext must be NULL
VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceConfigurationAcquireInfoINTELcoresType must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameterYNoneimplicitVkPerformanceConfigurationAcquireInfoINTELcoretype must be a valid VkPerformanceConfigurationTypeINTEL value
VUID-VkPerformanceCounterDescriptionKHR-pNext-pNextYNoneimplicitVkPerformanceCounterDescriptionKHRcorepNext must be NULL
VUID-VkPerformanceCounterDescriptionKHR-sType-sTypeYNoneimplicitVkPerformanceCounterDescriptionKHRcoresType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
VUID-VkPerformanceCounterKHR-pNext-pNextYNoneimplicitVkPerformanceCounterKHRcorepNext must be NULL
VUID-VkPerformanceCounterKHR-sType-sTypeYNoneimplicitVkPerformanceCounterKHRcoresType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
VUID-VkPerformanceMarkerInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceMarkerInfoINTELcorepNext must be NULL
VUID-VkPerformanceMarkerInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceMarkerInfoINTELcoresType must be VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
VUID-VkPerformanceOverrideInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceOverrideInfoINTELcorepNext must be NULL
VUID-VkPerformanceOverrideInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceOverrideInfoINTELcoresType must be VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
VUID-VkPerformanceOverrideInfoINTEL-type-parameterYNoneimplicitVkPerformanceOverrideInfoINTELcoretype must be a valid VkPerformanceOverrideTypeINTEL value
VUID-VkPerformanceQuerySubmitInfoKHR-counterPassIndex-03221YNegativeQuery.PerformanceIncompletePassesexplicitVkPerformanceQuerySubmitInfoKHRcorecounterPassIndex must be less than the number of counter passes required by any queries within the batch. The required number of counter passes for a performance query is obtained by calling vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
VUID-VkPerformanceQuerySubmitInfoKHR-sType-sTypeYNoneimplicitVkPerformanceQuerySubmitInfoKHRcoresType must be VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735NNoneexplicitVkPerformanceStreamMarkerInfoINTELcoreThe value written by the application into marker must only used the valid bits as reported by vkGetPerformanceParameterINTEL with the VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
VUID-VkPerformanceStreamMarkerInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceStreamMarkerInfoINTELcorepNext must be NULL
VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceStreamMarkerInfoINTELcoresType must be VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
VUID-VkPerformanceValueINTEL-type-parameterNNoneimplicitVkPerformanceValueINTELcoretype must be a valid VkPerformanceValueTypeINTEL value
VUID-VkPerformanceValueINTEL-valueString-parameterNNoneimplicitVkPerformanceValueINTELcoreIf type is VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, the valueString member of data must be a null-terminated UTF-8 string
VUID-VkPhysicalDevice16BitStorageFeatures-sType-sTypeYNoneimplicitVkPhysicalDevice16BitStorageFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
VUID-VkPhysicalDevice4444FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevice4444FormatsFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
VUID-VkPhysicalDevice8BitStorageFeatures-sType-sTypeYNoneimplicitVkPhysicalDevice8BitStorageFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
VUID-VkPhysicalDeviceASTCDecodeFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceASTCDecodeFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
VUID-VkPhysicalDeviceAccelerationStructureFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceAccelerationStructureFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
VUID-VkPhysicalDeviceAccelerationStructurePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceAccelerationStructurePropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
VUID-VkPhysicalDeviceAddressBindingReportFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceAddressBindingReportFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
VUID-VkPhysicalDeviceAmigoProfilingFeaturesSEC-sType-sTypeYNoneimplicitVkPhysicalDeviceAmigoProfilingFeaturesSECcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
VUID-VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
VUID-VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
VUID-VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBlendOperationAdvancedFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
VUID-VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBlendOperationAdvancedPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
VUID-VkPhysicalDeviceBorderColorSwizzleFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBorderColorSwizzleFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceBufferDeviceAddressFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBufferDeviceAddressFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
VUID-VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceClusterCullingShaderFeaturesHUAWEIcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
VUID-VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceClusterCullingShaderPropertiesHUAWEIcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
VUID-VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceCoherentMemoryFeaturesAMDcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
VUID-VkPhysicalDeviceColorWriteEnableFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceColorWriteEnableFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceComputeShaderDerivativesFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceConditionalRenderingFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceConservativeRasterizationPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
VUID-VkPhysicalDeviceCooperativeMatrixFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
VUID-VkPhysicalDeviceCooperativeMatrixFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
VUID-VkPhysicalDeviceCooperativeMatrixPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
VUID-VkPhysicalDeviceCooperativeMatrixPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
VUID-VkPhysicalDeviceCopyMemoryIndirectFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCopyMemoryIndirectFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
VUID-VkPhysicalDeviceCopyMemoryIndirectPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCopyMemoryIndirectPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV
VUID-VkPhysicalDeviceCornerSampledImageFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCornerSampledImageFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
VUID-VkPhysicalDeviceCoverageReductionModeFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCoverageReductionModeFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
VUID-VkPhysicalDeviceCubicClampFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceCubicClampFeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM
VUID-VkPhysicalDeviceCubicWeightsFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceCubicWeightsFeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM
VUID-VkPhysicalDeviceCudaKernelLaunchFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCudaKernelLaunchFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV
VUID-VkPhysicalDeviceCudaKernelLaunchPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCudaKernelLaunchPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV
VUID-VkPhysicalDeviceCustomBorderColorFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceCustomBorderColorFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
VUID-VkPhysicalDeviceCustomBorderColorPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceCustomBorderColorPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
VUID-VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
VUID-VkPhysicalDeviceDepthBiasControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthBiasControlFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClampZeroOneFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClampZeroOneFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClipControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClipControlFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClipEnableFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClipEnableFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
VUID-VkPhysicalDeviceDepthStencilResolveProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthStencilResolvePropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
VUID-VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceDescriptorBufferFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
VUID-VkPhysicalDeviceDescriptorBufferPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorIndexingFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorIndexingPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
VUID-VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorPoolOverallocationFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
VUID-VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
VUID-VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV
VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
VUID-VkPhysicalDeviceDeviceMemoryReportFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceMemoryReportFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
VUID-VkPhysicalDeviceDiagnosticsConfigFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDiagnosticsConfigFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
VUID-VkPhysicalDeviceDiscardRectanglePropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDiscardRectanglePropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
VUID-VkPhysicalDeviceDisplacementMicromapFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDisplacementMicromapFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
VUID-VkPhysicalDeviceDisplacementMicromapPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDisplacementMicromapPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
VUID-VkPhysicalDeviceDriverProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDriverPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
VUID-VkPhysicalDeviceDrmPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDrmPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
VUID-VkPhysicalDeviceDynamicRenderingFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceDynamicRenderingFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
VUID-VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
VUID-VkPhysicalDeviceExclusiveScissorFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExclusiveScissorFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
VUID-VkPhysicalDeviceExtendedDynamicState2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState2FeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
VUID-VkPhysicalDeviceExtendedDynamicState3FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState3FeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
VUID-VkPhysicalDeviceExtendedDynamicState3PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState3PropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
VUID-VkPhysicalDeviceExtendedDynamicStateFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicStateFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
VUID-VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV
VUID-VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedSparseAddressSpacePropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV
VUID-VkPhysicalDeviceExternalBufferInfo-None-09499NNoneexplicitVkPhysicalDeviceExternalBufferInfocoreIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage: must be a valid combination of VkBufferUsageFlagBits values
VUID-VkPhysicalDeviceExternalBufferInfo-None-09500NNoneexplicitVkPhysicalDeviceExternalBufferInfocoreIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage: must not be 0
VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameterYNoneimplicitVkPhysicalDeviceExternalBufferInfocoreflags must be a valid combination of VkBufferCreateFlagBits values
VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalBufferInfocorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalBufferInfocorepNext must be NULL or a pointer to a valid instance of VkBufferUsageFlags2CreateInfoKHR
VUID-VkPhysicalDeviceExternalBufferInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalBufferInfocoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
VUID-VkPhysicalDeviceExternalBufferInfo-sType-uniqueYNoneimplicitVkPhysicalDeviceExternalBufferInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalFenceInfocorehandleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalFenceInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalFenceInfocorepNext must be NULL
VUID-VkPhysicalDeviceExternalFenceInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalFenceInfocoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
VUID-VkPhysicalDeviceExternalFormatResolveFeaturesANDROID-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalFormatResolveFeaturesANDROIDcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID
VUID-VkPhysicalDeviceExternalFormatResolvePropertiesANDROID-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalFormatResolvePropertiesANDROIDcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID
VUID-VkPhysicalDeviceExternalImageFormatInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalImageFormatInfocoreIf handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalImageFormatInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalImageFormatInfocoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
VUID-VkPhysicalDeviceExternalMemoryHostPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalMemoryHostPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
VUID-VkPhysicalDeviceExternalMemoryRDMAFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalMemoryRDMAFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV
VUID-VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNXcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX
VUID-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfocorehandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalSemaphoreInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfocorepNext must be NULL or a pointer to a valid instance of VkSemaphoreTypeCreateInfo
VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfocoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-uniqueYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceFaultFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFaultFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
VUID-VkPhysicalDeviceFeatures2-sType-sTypeYNoneimplicitVkPhysicalDeviceFeatures2coresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
VUID-VkPhysicalDeviceFloatControlsProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceFloatControlsPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
VUID-VkPhysicalDeviceFragmentDensityMap2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMap2FeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentDensityMap2PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMap2PropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
VUID-VkPhysicalDeviceFragmentDensityMapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
VUID-VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
VUID-VkPhysicalDeviceFragmentDensityMapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderBarycentricFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
VUID-VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderBarycentricPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderInterlockFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameterYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNVcoremaxFragmentShadingRateInvocationCount must be a valid VkSampleCountFlagBits value
VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
VUID-VkPhysicalDeviceFragmentShadingRateFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
VUID-VkPhysicalDeviceFragmentShadingRateKHR-pNext-pNextYNoneimplicitVkPhysicalDeviceFragmentShadingRateKHRcorepNext must be NULL
VUID-VkPhysicalDeviceFragmentShadingRateKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
VUID-VkPhysicalDeviceFragmentShadingRatePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRatePropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
VUID-VkPhysicalDeviceFrameBoundaryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFrameBoundaryFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
VUID-VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceGlobalPriorityQueryFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
VUID-VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
VUID-VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
VUID-VkPhysicalDeviceGroupProperties-pNext-pNextYNoneimplicitVkPhysicalDeviceGroupPropertiescorepNext must be NULL
VUID-VkPhysicalDeviceGroupProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceGroupPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
VUID-VkPhysicalDeviceHostImageCopyFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceHostImageCopyFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopyDstLayouts-parameterNNoneimplicitVkPhysicalDeviceHostImageCopyPropertiesEXTcoreIf copyDstLayoutCount is not 0, and pCopyDstLayouts is not NULL, pCopyDstLayouts must be a valid pointer to an array of copyDstLayoutCount VkImageLayout values
VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopySrcLayouts-parameterNNoneimplicitVkPhysicalDeviceHostImageCopyPropertiesEXTcoreIf copySrcLayoutCount is not 0, and pCopySrcLayouts is not NULL, pCopySrcLayouts must be a valid pointer to an array of copySrcLayoutCount VkImageLayout values
VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceHostImageCopyPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceHostQueryResetFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
VUID-VkPhysicalDeviceIDProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceIDPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
VUID-VkPhysicalDeviceImage2DViewOf3DFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImage2DViewOf3DFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
VUID-VkPhysicalDeviceImageCompressionControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageCompressionControlFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314YNegativeImageDrm.PhysicalDeviceImageDrmFormatModifierInfoexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTcoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, then pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315YNegativeImageDrm.PhysicalDeviceImageDrmFormatModifierInfoexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTcoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, then queueFamilyIndexCount must be greater than 1
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316YNegativeImageDrm.PhysicalDeviceImageDrmFormatModifierInfoQueryexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTcoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than the pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-parameterYNoneimplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTcoresharingMode must be a valid VkSharingMode value
VUID-VkPhysicalDeviceImageFormatInfo2-flags-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2coreflags must be a valid combination of VkImageCreateFlagBits values
VUID-VkPhysicalDeviceImageFormatInfo2-format-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2coreformat must be a valid VkFormat value
VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNextYNoneimplicitVkPhysicalDeviceImageFormatInfo2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkImageCompressionControlEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkOpticalFlowImageFormatInfoNV, VkPhysicalDeviceExternalImageFormatInfo, VkPhysicalDeviceImageDrmFormatModifierInfoEXT, VkPhysicalDeviceImageViewImageFormatInfoEXT, or VkVideoProfileListInfoKHR
VUID-VkPhysicalDeviceImageFormatInfo2-sType-sTypeYNoneimplicitVkPhysicalDeviceImageFormatInfo2coresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
VUID-VkPhysicalDeviceImageFormatInfo2-sType-uniqueYNoneimplicitVkPhysicalDeviceImageFormatInfo2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249YNegativeImageDrm.ImageFormatInfoexplicitVkPhysicalDeviceImageFormatInfo2coretiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT if and only if the pNext chain includes VkPhysicalDeviceImageDrmFormatModifierInfoEXT
VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313YNegativeImageDrm.ImageFormatInfoexplicitVkPhysicalDeviceImageFormatInfo2coreIf tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount
VUID-VkPhysicalDeviceImageFormatInfo2-tiling-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2coretiling must be a valid VkImageTiling value
VUID-VkPhysicalDeviceImageFormatInfo2-type-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2coretype must be a valid VkImageType value
VUID-VkPhysicalDeviceImageFormatInfo2-usage-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2coreusage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmaskYNoneimplicitVkPhysicalDeviceImageFormatInfo2coreusage must not be 0
VUID-VkPhysicalDeviceImageProcessing2FeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessing2FeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM
VUID-VkPhysicalDeviceImageProcessing2PropertiesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessing2PropertiesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM
VUID-VkPhysicalDeviceImageProcessingFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessingFeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM
VUID-VkPhysicalDeviceImageProcessingPropertiesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessingPropertiesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM
VUID-VkPhysicalDeviceImageRobustnessFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceImageRobustnessFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
VUID-VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageSlicedViewOf3DFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-imageViewType-parameterYNoneimplicitVkPhysicalDeviceImageViewImageFormatInfoEXTcoreimageViewType must be a valid VkImageViewType value
VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageViewImageFormatInfoEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
VUID-VkPhysicalDeviceImageViewMinLodFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageViewMinLodFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
VUID-VkPhysicalDeviceImagelessFramebufferFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceImagelessFramebufferFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
VUID-VkPhysicalDeviceIndexTypeUint8FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceIndexTypeUint8FeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT
VUID-VkPhysicalDeviceInheritedViewportScissorFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceInheritedViewportScissorFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
VUID-VkPhysicalDeviceInlineUniformBlockFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceInlineUniformBlockFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
VUID-VkPhysicalDeviceInlineUniformBlockProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceInlineUniformBlockPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
VUID-VkPhysicalDeviceInvocationMaskFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceInvocationMaskFeaturesHUAWEIcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
VUID-VkPhysicalDeviceLayeredDriverPropertiesMSFT-sType-sTypeYNoneimplicitVkPhysicalDeviceLayeredDriverPropertiesMSFTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
VUID-VkPhysicalDeviceLegacyDitheringFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLegacyDitheringFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
VUID-VkPhysicalDeviceLineRasterizationFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLineRasterizationFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT
VUID-VkPhysicalDeviceLineRasterizationPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLineRasterizationPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
VUID-VkPhysicalDeviceLinearColorAttachmentFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceLinearColorAttachmentFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
VUID-VkPhysicalDeviceMaintenance3Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance3PropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
VUID-VkPhysicalDeviceMaintenance4Features-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance4FeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
VUID-VkPhysicalDeviceMaintenance4Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance4PropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
VUID-VkPhysicalDeviceMaintenance5FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance5FeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
VUID-VkPhysicalDeviceMaintenance5PropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance5PropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
VUID-VkPhysicalDeviceMaintenance6FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance6FeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
VUID-VkPhysicalDeviceMaintenance6PropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance6PropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryBudgetPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
VUID-VkPhysicalDeviceMemoryDecompressionFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryDecompressionFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV
VUID-VkPhysicalDeviceMemoryDecompressionPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryDecompressionPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV
VUID-VkPhysicalDeviceMemoryPriorityFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryPriorityFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNextYNoneimplicitVkPhysicalDeviceMemoryProperties2corepNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMemoryBudgetPropertiesEXT
VUID-VkPhysicalDeviceMemoryProperties2-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryProperties2coresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
VUID-VkPhysicalDeviceMemoryProperties2-sType-uniqueYNoneimplicitVkPhysicalDeviceMemoryProperties2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032YVkLayerTest.RequiredMeshShaderFeaturesexplicitVkPhysicalDeviceMeshShaderFeaturesEXTcoreIf multiviewMeshShader is enabled then VkPhysicalDeviceMultiviewFeaturesKHR::multiview must also be enabled
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033YVkLayerTest.RequiredMeshShaderFeaturesexplicitVkPhysicalDeviceMeshShaderFeaturesEXTcoreIf primitiveFragmentShadingRateMeshShader is enabled then VkPhysicalDeviceFragmentShadingRateFeaturesKHR::primitiveFragmentShadingRate must also be enabled
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
VUID-VkPhysicalDeviceMeshShaderFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
VUID-VkPhysicalDeviceMeshShaderPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
VUID-VkPhysicalDeviceMeshShaderPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
VUID-VkPhysicalDeviceMultiDrawFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiDrawFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
VUID-VkPhysicalDeviceMultiDrawPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiDrawPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
VUID-VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580YNegativeMultiview.FeaturesexplicitVkPhysicalDeviceMultiviewFeaturescoreIf multiviewGeometryShader is enabled then multiview must also be enabled
VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581YNegativeMultiview.FeaturesexplicitVkPhysicalDeviceMultiviewFeaturescoreIf multiviewTessellationShader is enabled then multiview must also be enabled
VUID-VkPhysicalDeviceMultiviewFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
VUID-VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
VUID-VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM
VUID-VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM
VUID-VkPhysicalDeviceMultiviewProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMutableDescriptorTypeFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
VUID-VkPhysicalDeviceNestedCommandBufferFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceNestedCommandBufferFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
VUID-VkPhysicalDeviceNestedCommandBufferPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceNestedCommandBufferPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
VUID-VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceNonSeamlessCubeMapFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
VUID-VkPhysicalDeviceOpacityMicromapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceOpacityMicromapFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
VUID-VkPhysicalDeviceOpacityMicromapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceOpacityMicromapPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceOpticalFlowFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceOpticalFlowFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
VUID-VkPhysicalDeviceOpticalFlowPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceOpticalFlowPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
VUID-VkPhysicalDevicePCIBusInfoPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePCIBusInfoPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
VUID-VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
VUID-VkPhysicalDevicePerStageDescriptorSetFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDevicePerStageDescriptorSetFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV
VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePerformanceQueryFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePerformanceQueryPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
VUID-VkPhysicalDevicePipelineCreationCacheControlFeatures-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineCreationCacheControlFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
VUID-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
VUID-VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
VUID-VkPhysicalDevicePipelinePropertiesFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelinePropertiesFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
VUID-VkPhysicalDevicePipelineProtectedAccessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineProtectedAccessFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT
VUID-VkPhysicalDevicePipelineRobustnessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineRobustnessFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
VUID-VkPhysicalDevicePipelineRobustnessPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineRobustnessPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
VUID-VkPhysicalDevicePointClippingProperties-sType-sTypeYNoneimplicitVkPhysicalDevicePointClippingPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
VUID-VkPhysicalDevicePortabilitySubsetFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePortabilitySubsetFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
VUID-VkPhysicalDevicePortabilitySubsetPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePortabilitySubsetPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
VUID-VkPhysicalDevicePresentBarrierFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDevicePresentBarrierFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
VUID-VkPhysicalDevicePresentIdFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePresentIdFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
VUID-VkPhysicalDevicePresentWaitFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePresentWaitFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
VUID-VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
VUID-VkPhysicalDevicePrivateDataFeatures-sType-sTypeYNoneimplicitVkPhysicalDevicePrivateDataFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
VUID-VkPhysicalDeviceProperties2-pNext-pNextYVkLayerTest.DuplicateMessageLimit, VkLayerTest.MissingExtensionPhysicalDeviceProperties, VkLayerTest.UnsupportedPnextApiVersionimplicitVkPhysicalDeviceProperties2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCudaKernelLaunchPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5PropertiesKHR, VkPhysicalDeviceMaintenance6PropertiesKHR, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRenderPassStripedPropertiesARM, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceSchedulingControlsPropertiesARM, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, or VkPhysicalDeviceVulkan13Properties
VUID-VkPhysicalDeviceProperties2-sType-sTypeYNoneimplicitVkPhysicalDeviceProperties2coresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
VUID-VkPhysicalDeviceProperties2-sType-uniqueYVkLayerTest.DuplicateValidPNextStructuresimplicitVkPhysicalDeviceProperties2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceProtectedMemoryFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceProtectedMemoryFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
VUID-VkPhysicalDeviceProtectedMemoryProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceProtectedMemoryPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
VUID-VkPhysicalDeviceProvokingVertexFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceProvokingVertexFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
VUID-VkPhysicalDeviceProvokingVertexPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceProvokingVertexPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
VUID-VkPhysicalDevicePushDescriptorPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePushDescriptorPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
VUID-VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRGBA10X6FormatsFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
VUID-VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
VUID-VkPhysicalDeviceRayQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayQueryFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingInvocationReorderFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV
VUID-VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingInvocationReorderPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV
VUID-VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingMaintenance1FeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingMotionBlurFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingMotionBlurFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575YNoneexplicitVkPhysicalDeviceRayTracingPipelineFeaturesKHRcoreIf rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingPipelineShaderGroupHandleCaptureReplay must also be VK_TRUE
VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPipelineFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingPipelinePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPipelinePropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
VUID-VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPositionFetchFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
VUID-VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG-sType-sTypeYNoneimplicitVkPhysicalDeviceRelaxedLineRasterizationFeaturesIMGcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG
VUID-VkPhysicalDeviceRenderPassStripedFeaturesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceRenderPassStripedFeaturesARMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
VUID-VkPhysicalDeviceRenderPassStripedPropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceRenderPassStripedPropertiesARMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
VUID-VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRepresentativeFragmentTestFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000YNegativeDeviceQueue.Robustness2WithoutRobustnessexplicitVkPhysicalDeviceRobustness2FeaturesEXTcoreIf robustBufferAccess2 is enabled then robustBufferAccess must also be enabled
VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRobustness2FeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
VUID-VkPhysicalDeviceRobustness2PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRobustness2PropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
VUID-VkPhysicalDeviceSampleLocationsPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceSampleLocationsPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
VUID-VkPhysicalDeviceSamplerFilterMinmaxProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSamplerFilterMinmaxPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
VUID-VkPhysicalDeviceSamplerYcbcrConversionFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSamplerYcbcrConversionFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceScalarBlockLayoutFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
VUID-VkPhysicalDeviceSchedulingControlsFeaturesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceSchedulingControlsFeaturesARMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM
VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceSchedulingControlsPropertiesARMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM
VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-parameterYNoneimplicitVkPhysicalDeviceSchedulingControlsPropertiesARMcoreschedulingControlsFlags must be a valid combination of VkPhysicalDeviceSchedulingControlsFlagBitsARM values
VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-requiredbitmaskYNoneimplicitVkPhysicalDeviceSchedulingControlsPropertiesARMcoreschedulingControlsFlags must not be 0
VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSeparateDepthStencilLayoutsFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicFloat2FeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
VUID-VkPhysicalDeviceShaderAtomicFloatFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicFloatFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
VUID-VkPhysicalDeviceShaderAtomicInt64Features-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicInt64FeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
VUID-VkPhysicalDeviceShaderClockFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderClockFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
VUID-VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreBuiltinsFeaturesARMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
VUID-VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreBuiltinsPropertiesARMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
VUID-VkPhysicalDeviceShaderCoreProperties2AMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreProperties2AMDcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
VUID-VkPhysicalDeviceShaderCorePropertiesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCorePropertiesAMDcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
VUID-VkPhysicalDeviceShaderCorePropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCorePropertiesARMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM
VUID-VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
VUID-VkPhysicalDeviceShaderDrawParametersFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderDrawParametersFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
VUID-VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
VUID-VkPhysicalDeviceShaderEnqueueFeaturesAMDX-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderEnqueueFeaturesAMDXcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX
VUID-VkPhysicalDeviceShaderEnqueuePropertiesAMDX-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderEnqueuePropertiesAMDXcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX
VUID-VkPhysicalDeviceShaderFloat16Int8Features-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderFloat16Int8FeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
VUID-VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
VUID-VkPhysicalDeviceShaderImageFootprintFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderImageFootprintFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
VUID-VkPhysicalDeviceShaderIntegerDotProductFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerDotProductFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
VUID-VkPhysicalDeviceShaderIntegerDotProductProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerDotProductPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
VUID-VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
VUID-VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderModuleIdentifierFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
VUID-VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderModuleIdentifierPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
VUID-VkPhysicalDeviceShaderObjectFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderObjectFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
VUID-VkPhysicalDeviceShaderObjectPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderObjectPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
VUID-VkPhysicalDeviceShaderSMBuiltinsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSMBuiltinsFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
VUID-VkPhysicalDeviceShaderSMBuiltinsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSMBuiltinsPropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
VUID-VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSubgroupExtendedTypesFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
VUID-VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
VUID-VkPhysicalDeviceShaderTerminateInvocationFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderTerminateInvocationFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
VUID-VkPhysicalDeviceShaderTileImageFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderTileImageFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
VUID-VkPhysicalDeviceShaderTileImagePropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderTileImagePropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
VUID-VkPhysicalDeviceShadingRateImageFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShadingRateImageFeaturesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
VUID-VkPhysicalDeviceShadingRateImagePropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShadingRateImagePropertiesNVcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2coreformat must be a valid VkFormat value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNextYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2corepNext must be NULL
VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sTypeYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2coresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095NNoneexplicitVkPhysicalDeviceSparseImageFormatInfo2coresamples must be a valid VkSampleCountFlagBits value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created
VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2coresamples must be a valid VkSampleCountFlagBits value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2coretiling must be a valid VkImageTiling value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2coretype must be a valid VkImageType value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2coreusage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmaskYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2coreusage must not be 0
VUID-VkPhysicalDeviceSubgroupProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
VUID-VkPhysicalDeviceSubgroupSizeControlFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupSizeControlFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
VUID-VkPhysicalDeviceSubgroupSizeControlProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupSizeControlPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
VUID-VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassMergeFeedbackFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
VUID-VkPhysicalDeviceSubpassShadingFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassShadingFeaturesHUAWEIcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
VUID-VkPhysicalDeviceSubpassShadingPropertiesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassShadingPropertiesHUAWEIcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672YNegativeWsi.GetPhysicalDeviceSurfaceCapabilities2KHRWithFullScreenEXTexplicitVkPhysicalDeviceSurfaceInfo2KHRcoreIf the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain
VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-pNextYNegativeWsi.SurfaceQueryImageCompressionControlWithoutExtensionimplicitVkPhysicalDeviceSurfaceInfo2KHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, or VkSurfacePresentModeEXT
VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sTypeYNoneimplicitVkPhysicalDeviceSurfaceInfo2KHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-uniqueYNoneimplicitVkPhysicalDeviceSurfaceInfo2KHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919NNoneexplicitVkPhysicalDeviceSurfaceInfo2KHRcoreIf the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle
VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameterYNoneimplicitVkPhysicalDeviceSurfaceInfo2KHRcoreIf surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceSwapchainMaintenance1FeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
VUID-VkPhysicalDeviceSynchronization2Features-sType-sTypeYNoneimplicitVkPhysicalDeviceSynchronization2FeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
VUID-VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTexelBufferAlignmentFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
VUID-VkPhysicalDeviceTexelBufferAlignmentProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceTexelBufferAlignmentPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
VUID-VkPhysicalDeviceTextureCompressionASTCHDRFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceTextureCompressionASTCHDRFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
VUID-VkPhysicalDeviceTilePropertiesFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceTilePropertiesFeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
VUID-VkPhysicalDeviceTimelineSemaphoreFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceTimelineSemaphoreFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
VUID-VkPhysicalDeviceTimelineSemaphoreProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceTimelineSemaphorePropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
VUID-VkPhysicalDeviceToolProperties-pNext-pNextYNoneimplicitVkPhysicalDeviceToolPropertiescorepNext must be NULL
VUID-VkPhysicalDeviceToolProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceToolPropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES
VUID-VkPhysicalDeviceTransformFeedbackFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTransformFeedbackFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
VUID-VkPhysicalDeviceTransformFeedbackPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTransformFeedbackPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceUniformBufferStandardLayoutFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceVariablePointersFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431YVkLayerTest.FeaturesVariablePointerexplicitVkPhysicalDeviceVariablePointersFeaturescoreIf variablePointers is enabled then variablePointersStorageBuffer must also be enabled
VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexAttributeDivisorFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexAttributeDivisorPropertiesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexAttributeDivisorPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
VUID-VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexInputDynamicStateFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pNext-pNextYNoneimplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRcorepNext must be NULL
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-08259YNegativeVideo.EncodeQualityLevelPropsMissingCodecInfo, NegativeVideo.EncodeQualityLevelPropsUnsupportedProfileexplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRcorepVideoProfile must be a supported video profile
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-08260YNegativeVideo.EncodeQualityLevelPropsProfileNotEncodeexplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRcorepVideoProfile->videoCodecOperation must specify an encode operation
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-parameterYNoneimplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRcorepVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-qualityLevel-08261YNegativeVideo.EncodeQualityLevelPropsInvalidQualityLevelexplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRcorequalityLevel must be less than VkVideoEncodeCapabilitiesKHR::maxQualityLevels, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in pVideoProfile
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR
VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-parameterYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRcoreimageUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-requiredbitmaskYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRcoreimageUsage must not be 0
VUID-VkPhysicalDeviceVideoFormatInfoKHR-pNext-pNextYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRcorepNext must be NULL or a pointer to a valid instance of VkVideoProfileListInfoKHR
VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR
VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-uniqueYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceVideoMaintenance1FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVideoMaintenance1FeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR
VUID-VkPhysicalDeviceVulkan11Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan11FeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
VUID-VkPhysicalDeviceVulkan11Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan11PropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
VUID-VkPhysicalDeviceVulkan12Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan12FeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
VUID-VkPhysicalDeviceVulkan12Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan12PropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
VUID-VkPhysicalDeviceVulkan13Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan13FeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
VUID-VkPhysicalDeviceVulkan13Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan13PropertiescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
VUID-VkPhysicalDeviceVulkanMemoryModelFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkanMemoryModelFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
VUID-VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
VUID-VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
VUID-VkPhysicalDeviceYcbcrDegammaFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceYcbcrDegammaFeaturesQCOMcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM
VUID-VkPhysicalDeviceYcbcrImageArraysFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceYcbcrImageArraysFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
VUID-VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturescoresType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
VUID-VkPipelineCacheCreateInfo-flags-parameterYNoneimplicitVkPipelineCacheCreateInfocoreflags must be a valid combination of VkPipelineCacheCreateFlagBits values
VUID-VkPipelineCacheCreateInfo-initialDataSize-00768NNoneexplicitVkPipelineCacheCreateInfocoreIf initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetPipelineCacheData when pInitialData was originally retrieved
VUID-VkPipelineCacheCreateInfo-initialDataSize-00769NNoneexplicitVkPipelineCacheCreateInfocoreIf initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetPipelineCacheData
VUID-VkPipelineCacheCreateInfo-pInitialData-parameterYNoneimplicitVkPipelineCacheCreateInfocoreIf initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes
VUID-VkPipelineCacheCreateInfo-pNext-pNextYNoneimplicitVkPipelineCacheCreateInfocorepNext must be NULL
VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892YNegativePipeline.PipelineCreationCacheControlexplicitVkPipelineCacheCreateInfocoreIf the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
VUID-VkPipelineCacheCreateInfo-sType-sTypeYNoneimplicitVkPipelineCacheCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967NNoneexplicitVkPipelineCacheHeaderVersionOnecoreheaderSize must be 32
VUID-VkPipelineCacheHeaderVersionOne-headerSize-08990NNoneexplicitVkPipelineCacheHeaderVersionOnecoreheaderSize must not exceed the size of the pipeline cache
VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968NNoneexplicitVkPipelineCacheHeaderVersionOnecoreheaderVersion must be VK_PIPELINE_CACHE_HEADER_VERSION_ONE
VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameterNNoneimplicitVkPipelineCacheHeaderVersionOnecoreheaderVersion must be a valid VkPipelineCacheHeaderVersion value
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426YNegativePipelineAdvancedBlend.PropertiesexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTcoreIf the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameterYNoneimplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTcoreblendOverlap must be a valid VkBlendOverlapEXT value
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425YNegativePipelineAdvancedBlend.PropertiesexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTcoreIf the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424YNegativePipelineAdvancedBlend.PropertiesexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTcoreIf the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE
VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409YNegativePipelineAdvancedBlend.AllOperationsexplicitVkPipelineColorBlendAttachmentStatecoreIf VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperations is VK_FALSE, then colorBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT
VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407YNegativePipelineAdvancedBlend.BlendOpsexplicitVkPipelineColorBlendAttachmentStatecoreIf VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and colorBlendOp is an advanced blend operation, then colorBlendOp must be the same for all attachments
VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408YNegativePipelineAdvancedBlend.BlendOpsexplicitVkPipelineColorBlendAttachmentStatecoreIf VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and alphaBlendOp is an advanced blend operation, then alphaBlendOp must be the same for all attachments
VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecorealphaBlendOp must be a valid VkBlendOp value
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406YNegativePipelineAdvancedBlend.BlendOpsexplicitVkPipelineColorBlendAttachmentStatecoreIf either of colorBlendOp or alphaBlendOp is an advanced blend operation, then colorBlendOp must equal alphaBlendOp
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410YNegativePipelineAdvancedBlend.AllOperations, NegativePipelineAdvancedBlend.MaxBlendAttachmentexplicitVkPipelineColorBlendAttachmentStatecoreIf colorBlendOp or alphaBlendOp is an advanced blend operation, then colorAttachmentCount of the subpass this pipeline is compiled against must be less than or equal to VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecorecolorBlendOp must be a valid VkBlendOp value
VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecorecolorWriteMask must be a valid combination of VkColorComponentFlagBits values
VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454YNegativePortabilitySubset.ColorBlendAttachmentStateexplicitVkPipelineColorBlendAttachmentStatecoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, srcColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455YNegativePortabilitySubset.ColorBlendAttachmentStateexplicitVkPipelineColorBlendAttachmentStatecoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, dstColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611YNegativePipeline.ColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStatecoreIf the dualSrcBlend feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecoredstAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609YNegativePipeline.ColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStatecoreIf the dualSrcBlend feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecoredstColorBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610YNegativePipeline.ColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStatecoreIf the dualSrcBlend feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecoresrcAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608YNegativePipeline.ColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStatecoreIf the dualSrcBlend feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecoresrcColorBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendStateCreateInfo-flags-parameterYNoneimplicitVkPipelineColorBlendStateCreateInfocoreflags must be a valid combination of VkPipelineColorBlendStateCreateFlagBits values
VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606YNegativePipeline.ColorBlendUnsupportedLogicOpexplicitVkPipelineColorBlendStateCreateInfocoreIf the logicOp feature is not enabled, logicOpEnable must be VK_FALSE
VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607YNegativePipeline.ColorBlendInvalidLogicOpexplicitVkPipelineColorBlendStateCreateInfocoreIf logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605YNegativePipeline.DisabledIndependentBlendexplicitVkPipelineColorBlendStateCreateInfocoreIf the independentBlend feature is not enabled, all elements of pAttachments must be identical
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353YNegativeDynamicState.PipelineColorBlendStateCreateInfoArrayDynamic, NegativeDynamicState.PipelineColorBlendStateCreateInfoArrayNonDynamicexplicitVkPipelineColorBlendStateCreateInfocoreIf attachmentCount is not 0 , and any of VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT are not set, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameterNNoneimplicitVkPipelineColorBlendStateCreateInfocoreIf attachmentCount is not 0, and pAttachments is not NULL, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures
VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineColorBlendStateCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineColorBlendAdvancedStateCreateInfoEXT or VkPipelineColorWriteCreateInfoEXT
VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465YNegativePipeline.RasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineColorBlendStateCreateInfocoreIf the rasterizationOrderColorAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
VUID-VkPipelineColorBlendStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineColorBlendStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
VUID-VkPipelineColorBlendStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineColorBlendStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-06655YNegativePipeline.ColorWriteCreateInfoEXTMaxAttachmentsexplicitVkPipelineColorWriteCreateInfoEXTcoreattachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits
VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608YNegativeDynamicState.PipelineColorWriteCreateInfoEXTDynaimcState3, NegativePipeline.ColorWriteCreateInfoEXTexplicitVkPipelineColorWriteCreateInfoEXTcoreIf the pipeline is being created with VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states not set, attachmentCount must be equal to the attachmentCount member of the VkPipelineColorBlendStateCreateInfo structure specified during pipeline creation
VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801YNegativePipeline.ColorWriteCreateInfoEXTexplicitVkPipelineColorWriteCreateInfoEXTcoreIf the colorWriteEnable feature is not enabled, all elements of pColorWriteEnables must be VK_TRUE
VUID-VkPipelineColorWriteCreateInfoEXT-pColorWriteEnables-parameterNNoneimplicitVkPipelineColorWriteCreateInfoEXTcoreIf attachmentCount is not 0, pColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-VkPipelineColorWriteCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineColorWriteCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmaskYNoneimplicitVkPipelineCompilerControlCreateInfoAMDcorecompilerControlFlags must be 0
VUID-VkPipelineCompilerControlCreateInfoAMD-sType-sTypeYNoneimplicitVkPipelineCompilerControlCreateInfoAMDcoresType must be VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameterYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNVcorecoverageModulationMode must be a valid VkCoverageModulationModeNV value
VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405YNegativePipeline.FramebufferMixedSamplesNVexplicitVkPipelineCoverageModulationStateCreateInfoNVcoreIf coverageModulationTableEnable is VK_TRUE, coverageModulationTableCount must be equal to the number of rasterization samples divided by the number of color samples in the subpass
VUID-VkPipelineCoverageModulationStateCreateInfoNV-flags-zerobitmaskYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNVcoreflags must be 0
VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameterYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNVcorecoverageReductionMode must be a valid VkCoverageReductionModeNV value
VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmaskYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNVcoreflags must be 0
VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404YNegativePipeline.FragmentCoverageToColorNVexplicitVkPipelineCoverageToColorStateCreateInfoNVcoreIf coverageToColorEnable is VK_TRUE, then the render pass subpass indicated by VkGraphicsPipelineCreateInfo::renderPass and VkGraphicsPipelineCreateInfo::subpass must have a color attachment at the location selected by coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmaskYNoneimplicitVkPipelineCoverageToColorStateCreateInfoNVcoreflags must be 0
VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageToColorStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-parameterYNoneimplicitVkPipelineCreateFlags2CreateInfoKHRcoreflags must be a valid combination of VkPipelineCreateFlagBits2KHR values
VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-requiredbitmaskYNoneimplicitVkPipelineCreateFlags2CreateInfoKHRcoreflags must not be 0
VUID-VkPipelineCreateFlags2CreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineCreateFlags2CreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR
VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameterYNoneimplicitVkPipelineCreationFeedbackCreateInfocorepPipelineCreationFeedback must be a valid pointer to a VkPipelineCreationFeedback structure
VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameterYNoneimplicitVkPipelineCreationFeedbackCreateInfocoreIf pipelineStageCreationFeedbackCount is not 0, pPipelineStageCreationFeedbacks must be a valid pointer to an array of pipelineStageCreationFeedbackCount VkPipelineCreationFeedback structures
VUID-VkPipelineCreationFeedbackCreateInfo-sType-sTypeYNoneimplicitVkPipelineCreationFeedbackCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO
VUID-VkPipelineDepthStencilStateCreateInfo-back-parameterNNoneimplicitVkPipelineDepthStencilStateCreateInfocoreback must be a valid VkStencilOpState structure
VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598YNegativePipeline.PipelineMissingFeaturesexplicitVkPipelineDepthStencilStateCreateInfocoreIf the depthBounds feature is not enabled, depthBoundsTestEnable must be VK_FALSE
VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameterYNoneimplicitVkPipelineDepthStencilStateCreateInfocoredepthCompareOp must be a valid VkCompareOp value
VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameterYNoneimplicitVkPipelineDepthStencilStateCreateInfocoreflags must be a valid combination of VkPipelineDepthStencilStateCreateFlagBits values
VUID-VkPipelineDepthStencilStateCreateInfo-front-parameterNNoneimplicitVkPipelineDepthStencilStateCreateInfocorefront must be a valid VkStencilOpState structure
VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineDepthStencilStateCreateInfocorepNext must be NULL
VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463YNegativePipeline.RasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineDepthStencilStateCreateInfocoreIf the rasterizationOrderDepthAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464YNegativePipeline.RasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineDepthStencilStateCreateInfocoreIf the rasterizationOrderStencilAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
VUID-VkPipelineDepthStencilStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineDepthStencilStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453YNegativePortabilitySubset.DepthStencilStateexplicitVkPipelineDepthStencilStateCreateInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::separateStencilMaskRef is VK_FALSE, and the value of VkPipelineDepthStencilStateCreateInfo::stencilTestEnable is VK_TRUE, and the value of VkPipelineRasterizationStateCreateInfo::cullMode is VK_CULL_MODE_NONE, the value of reference in each of the VkStencilOpState structs in front and back must be the same
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleCount-00582YNegativePipeline.DiscardRectangleexplicitVkPipelineDiscardRectangleStateCreateInfoEXTcorediscardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameterYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXTcorediscardRectangleMode must be a valid VkDiscardRectangleModeEXT value
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXTcoreflags must be 0
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineDynamicStateCreateInfocoreflags must be 0
VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442YNegativeDynamicState.Duplicate, NegativeDynamicState.ExtendedDynamicState2Enabled, NegativeDynamicState.ExtendedDynamicState2LogicOpEnabled, NegativeDynamicState.ExtendedDynamicState2PatchControlPointsEnabled, NegativeDynamicState.ExtendedDynamicState3DuplicateStatePipeline, NegativeDynamicState.ExtendedDynamicStateDuplicate, NegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkPipelineDynamicStateCreateInfocoreEach element of pDynamicStates must be unique
VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameterNNoneimplicitVkPipelineDynamicStateCreateInfocoreIf dynamicStateCount is not 0, pDynamicStates must be a valid pointer to an array of dynamicStateCount valid VkDynamicState values
VUID-VkPipelineDynamicStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineDynamicStateCreateInfocorepNext must be NULL
VUID-VkPipelineDynamicStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineDynamicStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
VUID-VkPipelineExecutableInfoKHR-executableIndex-03275YNoneexplicitVkPipelineExecutableInfoKHRcoreexecutableIndex must be less than the number of pipeline executables associated with pipeline as returned in the pExecutableCount parameter of vkGetPipelineExecutablePropertiesKHR
VUID-VkPipelineExecutableInfoKHR-pNext-pNextYNoneimplicitVkPipelineExecutableInfoKHRcorepNext must be NULL
VUID-VkPipelineExecutableInfoKHR-pipeline-parameterYNoneimplicitVkPipelineExecutableInfoKHRcorepipeline must be a valid VkPipeline handle
VUID-VkPipelineExecutableInfoKHR-sType-sTypeYNoneimplicitVkPipelineExecutableInfoKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
VUID-VkPipelineExecutableInternalRepresentationKHR-pNext-pNextYNoneimplicitVkPipelineExecutableInternalRepresentationKHRcorepNext must be NULL
VUID-VkPipelineExecutableInternalRepresentationKHR-sType-sTypeYNoneimplicitVkPipelineExecutableInternalRepresentationKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
VUID-VkPipelineExecutablePropertiesKHR-pNext-pNextYNoneimplicitVkPipelineExecutablePropertiesKHRcorepNext must be NULL
VUID-VkPipelineExecutablePropertiesKHR-sType-sTypeYNoneimplicitVkPipelineExecutablePropertiesKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
VUID-VkPipelineExecutableStatisticKHR-pNext-pNextYNoneimplicitVkPipelineExecutableStatisticKHRcorepNext must be NULL
VUID-VkPipelineExecutableStatisticKHR-sType-sTypeYNoneimplicitVkPipelineExecutableStatisticKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineFragmentShadingRateEnumStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineFragmentShadingRateStateCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
VUID-VkPipelineIndirectDeviceAddressInfoNV-pNext-pNextYNoneimplicitVkPipelineIndirectDeviceAddressInfoNVcorepNext must be NULL
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09080NNoneexplicitVkPipelineIndirectDeviceAddressInfoNVcorepipeline must have been created with flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09081NNoneexplicitVkPipelineIndirectDeviceAddressInfoNVcorepipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-parameterYNoneimplicitVkPipelineIndirectDeviceAddressInfoNVcorepipeline must be a valid VkPipeline handle
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-09079NNoneexplicitVkPipelineIndirectDeviceAddressInfoNVcoreThe provided pipelineBindPoint must be of type VK_PIPELINE_BIND_POINT_COMPUTE
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameterYNoneimplicitVkPipelineIndirectDeviceAddressInfoNVcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkPipelineIndirectDeviceAddressInfoNV-sType-sTypeYNoneimplicitVkPipelineIndirectDeviceAddressInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV
VUID-VkPipelineInfoKHR-pNext-pNextYNoneimplicitVkPipelineInfoKHRcorepNext must be NULL
VUID-VkPipelineInfoKHR-pipeline-parameterYNoneimplicitVkPipelineInfoKHRcorepipeline must be a valid VkPipeline handle
VUID-VkPipelineInfoKHR-sType-sTypeYNoneimplicitVkPipelineInfoKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR
VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineInputAssemblyStateCreateInfocoreflags must be 0
VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineInputAssemblyStateCreateInfocorepNext must be NULL
VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineInputAssemblyStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429YNegativePipelineTopology.PrimitiveTopologyexplicitVkPipelineInputAssemblyStateCreateInfocoreIf the geometryShader feature is not enabled, topology must not be any of VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430YNegativeGeometryTessellation.TessellationShaderEnabled, NegativePipelineTopology.PrimitiveTopologyexplicitVkPipelineInputAssemblyStateCreateInfocoreIf the tessellationShader feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252YNegativePipelineTopology.PrimitiveTopology, NegativePipelineTopology.PrimitiveTopologyListRestartexplicitVkPipelineInputAssemblyStateCreateInfocoreIf the primitiveTopologyListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, primitiveRestartEnable must be VK_FALSE
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253YNegativePipelineTopology.PrimitiveTopology, NegativePipelineTopology.PrimitiveTopologyListRestartexplicitVkPipelineInputAssemblyStateCreateInfocoreIf the primitiveTopologyPatchListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameterYNoneimplicitVkPipelineInputAssemblyStateCreateInfocoretopology must be a valid VkPrimitiveTopology value
VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452YNegativePortabilitySubset.TriangleFansexplicitVkPipelineInputAssemblyStateCreateInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans is VK_FALSE, topology must not be VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
VUID-VkPipelineLayoutCreateInfo-descriptorType-02214YNegativeDescriptors.InlineUniformBlockEXT, NegativeDescriptors.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set and with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible to any given shader stage across all elements of pSetLayouts, must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxPerStageDescriptorInlineUniformBlocks
VUID-VkPipelineLayoutCreateInfo-descriptorType-02215YNegativeDescriptors.InlineUniformBlockEXT, NegativeDescriptors.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
VUID-VkPipelineLayoutCreateInfo-descriptorType-02216YNegativeDescriptors.InlineUniformBlockEXT, NegativeDescriptors.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxDescriptorSetInlineUniformBlocks
VUID-VkPipelineLayoutCreateInfo-descriptorType-02217YNegativeDescriptors.InlineUniformBlockEXT, NegativeDescriptors.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxDescriptorSetUpdateAfterBindInlineUniformBlocks
VUID-VkPipelineLayoutCreateInfo-descriptorType-02381YNegativeRayTracingNV.AccelerationStructureBindingsexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxDescriptorSetAccelerationStructures
VUID-VkPipelineLayoutCreateInfo-descriptorType-03016YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03017YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03018YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03020YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages
VUID-VkPipelineLayoutCreateInfo-descriptorType-03021YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments
VUID-VkPipelineLayoutCreateInfo-descriptorType-03022YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSamplers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03023YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindUniformBuffers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03024YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageBuffers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03025YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSampledImages
VUID-VkPipelineLayoutCreateInfo-descriptorType-03026YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageImages
VUID-VkPipelineLayoutCreateInfo-descriptorType-03027YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindInputAttachments
VUID-VkPipelineLayoutCreateInfo-descriptorType-03028YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03029YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03030YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-descriptorType-03031YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03032YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-descriptorType-03033YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages
VUID-VkPipelineLayoutCreateInfo-descriptorType-03034YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages
VUID-VkPipelineLayoutCreateInfo-descriptorType-03035YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments
VUID-VkPipelineLayoutCreateInfo-descriptorType-03571YNegativeRayTracing.MaxDescriptorSetAccelerationStructures, NegativeRayTracing.MaxPerStageDescriptorAccelerationStructuresexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPerStageDescriptorAccelerationStructures
VUID-VkPipelineLayoutCreateInfo-descriptorType-03572YNegativeRayTracing.MaxDescriptorSetAccelerationStructures, NegativeRayTracing.MaxDescriptorSetUpdateAfterBindAccelerationStructures, NegativeRayTracing.MaxPerStageDescriptorAccelerationStructures, NegativeRayTracing.MaxPerStageDescriptorUpdateAfterBindAccelerationStructuresexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPerStageDescriptorUpdateAfterBindAccelerationStructures
VUID-VkPipelineLayoutCreateInfo-descriptorType-03573YNegativeRayTracing.MaxDescriptorSetAccelerationStructures, NegativeRayTracing.MaxPerStageDescriptorAccelerationStructuresexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxDescriptorSetAccelerationStructures
VUID-VkPipelineLayoutCreateInfo-descriptorType-03574YNegativeRayTracing.MaxDescriptorSetAccelerationStructures, NegativeRayTracing.MaxDescriptorSetUpdateAfterBindAccelerationStructures, NegativeRayTracing.MaxPerStageDescriptorAccelerationStructures, NegativeRayTracing.MaxPerStageDescriptorUpdateAfterBindAccelerationStructuresexplicitVkPipelineLayoutCreateInfocoreThe total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxDescriptorSetUpdateAfterBindAccelerationStructures
VUID-VkPipelineLayoutCreateInfo-descriptorType-06531YNegativeDescriptors.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceVulkan13Properties::maxInlineUniformTotalSize
VUID-VkPipelineLayoutCreateInfo-descriptorType-06939YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages
VUID-VkPipelineLayoutCreateInfo-flags-parameterYNoneimplicitVkPipelineLayoutCreateInfocoreflags must be a valid combination of VkPipelineLayoutCreateFlagBits values
VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753YNegativeGraphicsLibrary.DSLs, NegativeGraphicsLibrary.GPLDSLsexplicitVkPipelineLayoutCreateInfocoreIf graphicsPipelineLibrary is not enabled, elements of pSetLayouts must be valid VkDescriptorSetLayout objects
VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566YNegativePipelineLayout.ExcessSubsampledPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of pImmutableSamplers created with flags containing VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT or VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxDescriptorSetSubsampledSamplers
VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPipelineLayoutCreateInfocoreAny two elements of pPushConstantRanges must not include the same stage in stageFlags
VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameterYNoneimplicitVkPipelineLayoutCreateInfocoreIf pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293YNegativePipelineLayout.MultiplePushDescriptorSetsexplicitVkPipelineLayoutCreateInfocorepSetLayouts must not contain more than one descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSamplers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSampledImages
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageImages
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfocoreThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindInputAttachments
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606YNegativePipelineLayout.SetLayoutFlagsexplicitVkPipelineLayoutCreateInfocoreAny element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT bit set
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-08008YNegativeDescriptorBuffer.SetLayoutexplicitVkPipelineLayoutCreateInfocoreIf any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set, all elements of pSetLayouts must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameterYNegativeDescriptors.DescriptorSetLayoutimplicitVkPipelineLayoutCreateInfocoreIf setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid or VK_NULL_HANDLE VkDescriptorSetLayout handles
VUID-VkPipelineLayoutCreateInfo-sType-sTypeYNoneimplicitVkPipelineLayoutCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286YNegativePipelineLayout.ExceedsSetLimitexplicitVkPipelineLayoutCreateInfocoresetLayoutCount must be less than or equal to VkPhysicalDeviceLimits::maxBoundDescriptorSets
VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381YNegativeRayTracingPipeline.LibraryFlagsexplicitVkPipelineLibraryCreateInfoKHRcoreEach element of pLibraries must have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-06855YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineLibraryCreateInfoKHRcoreIf any library in pLibraries was created with a shader stage with VkPipelineShaderStageModuleIdentifierCreateInfoEXT and identifierSize not equal to 0, the pipeline must be created with the VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag set
VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-08096YNegativeGraphicsLibrary.DescriptorBufferLibraryexplicitVkPipelineLibraryCreateInfoKHRcoreIf any element of pLibraries was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, all elements must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-parameterYNegativeGraphicsLibrary.BadLibrary, NegativeGraphicsLibrary.NullLibrary, NegativeRayTracingPipeline.BasicUsageimplicitVkPipelineLibraryCreateInfoKHRcoreIf libraryCount is not 0, pLibraries must be a valid pointer to an array of libraryCount valid VkPipeline handles
VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07404YNegativeProtectedMemory.PipelineProtectedAccessexplicitVkPipelineLibraryCreateInfoKHRcoreIf pipeline is being created with VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT, every element of pLibraries must have been created with VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT
VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07405YNegativeProtectedMemory.PipelineProtectedAccessexplicitVkPipelineLibraryCreateInfoKHRcoreIf pipeline is being created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT, every element of pLibraries must have been created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT
VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07406YNegativeProtectedMemory.PipelineProtectedAccessexplicitVkPipelineLibraryCreateInfoKHRcoreIf pipeline is being created with VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT, every element of pLibraries must have been created with VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07407YNegativeProtectedMemory.PipelineProtectedAccessexplicitVkPipelineLibraryCreateInfoKHRcoreIf pipeline is being created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT, every element of pLibraries must have been created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
VUID-VkPipelineLibraryCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineLibraryCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785YNegativePipeline.PipelineMissingFeaturesexplicitVkPipelineMultisampleStateCreateInfocoreIf the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE
VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineMultisampleStateCreateInfocoreflags must be 0
VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786YNegativePipeline.SampleRateFeatureEnableexplicitVkPipelineMultisampleStateCreateInfocoreminSampleShading must be in the range [0,1]
VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNextYNegativePipeline.SamplePNextUnknownimplicitVkPipelineMultisampleStateCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCoverageModulationStateCreateInfoNV, VkPipelineCoverageReductionStateCreateInfoNV, VkPipelineCoverageToColorStateCreateInfoNV, or VkPipelineSampleLocationsStateCreateInfoEXT
VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameterYNoneimplicitVkPipelineMultisampleStateCreateInfocoreIf pSampleMask is not NULL, pSampleMask must be a valid pointer to an array of (rasterizationSamples/32) VkSampleMask values
VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415YNegativePipeline.FramebufferMixedSamplesNVexplicitVkPipelineMultisampleStateCreateInfocoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if the subpass has any color attachments and rasterizationSamples is greater than the number of color samples, then sampleShadingEnable must be VK_FALSE
VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameterYNoneimplicitVkPipelineMultisampleStateCreateInfocorerasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkPipelineMultisampleStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineMultisampleStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
VUID-VkPipelineMultisampleStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineMultisampleStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784YNegativePipeline.SampleRateFeatureDisableexplicitVkPipelineMultisampleStateCreateInfocoreIf the sampleRateShading feature is not enabled, sampleShadingEnable must be VK_FALSE
VUID-VkPipelinePropertiesIdentifierEXT-pNext-pNextNNoneimplicitVkPipelinePropertiesIdentifierEXTcorepNext must be NULL
VUID-VkPipelinePropertiesIdentifierEXT-sType-sTypeNNoneimplicitVkPipelinePropertiesIdentifierEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameterYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXTcoreconservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769YNegativePipeline.RasterizationConservativeStateCreateInfoexplicitVkPipelineRasterizationConservativeStateCreateInfoEXTcoreextraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXTcoreflags must be 0
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationDepthClipStateCreateInfoEXTcoreflags must be 0
VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationDepthClipStateCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXTcoreIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXTcoreIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXTcoreIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-parameterYNoneimplicitVkPipelineRasterizationLineStateCreateInfoEXTcorelineRasterizationMode must be a valid VkLineRasterizationModeEXT value
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationLineStateCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXTcoreIf stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXTcoreIf stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXTcoreIf stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXTcoreIf stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883YNegativeVertexInput.UsingProvokingVertexModeLastVertexExtDisabledexplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXTcoreIf provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameterYNoneimplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXTcoreprovokingVertexMode must be a valid VkProvokingVertexModeEXT value
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameterNNoneimplicitVkPipelineRasterizationStateCreateInfocorecullMode must be a valid combination of VkCullModeFlagBits values
VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782YNegativePipeline.PipelineMissingFeaturesexplicitVkPipelineRasterizationStateCreateInfocoreIf the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE
VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmaskNNoneimplicitVkPipelineRasterizationStateCreateInfocoreflags must be 0
VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameterNNoneimplicitVkPipelineRasterizationStateCreateInfocorefrontFace must be a valid VkFrontFace value
VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNextNNoneimplicitVkPipelineRasterizationStateCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDepthBiasRepresentationInfoEXT, VkPipelineRasterizationConservativeStateCreateInfoEXT, VkPipelineRasterizationDepthClipStateCreateInfoEXT, VkPipelineRasterizationLineStateCreateInfoEXT, VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT
VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458YNegativePortabilitySubset.RasterizationStateexplicitVkPipelineRasterizationStateCreateInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::pointPolygons is VK_FALSE, and rasterizerDiscardEnable is VK_FALSE, polygonMode must not be VK_POLYGON_MODE_POINT
VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414YNegativePipelineTopology.PolygonModeexplicitVkPipelineRasterizationStateCreateInfocoreIf the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507YNegativePipelineTopology.FillRectangleNV, NegativePipelineTopology.PolygonModeexplicitVkPipelineRasterizationStateCreateInfocoreIf the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameterNNoneimplicitVkPipelineRasterizationStateCreateInfocorepolygonMode must be a valid VkPolygonMode value
VUID-VkPipelineRasterizationStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineRasterizationStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
VUID-VkPipelineRasterizationStateCreateInfo-sType-uniqueNNoneimplicitVkPipelineRasterizationStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameterYNoneimplicitVkPipelineRasterizationStateRasterizationOrderAMDcorerasterizationOrder must be a valid VkRasterizationOrderAMD value
VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sTypeYNoneimplicitVkPipelineRasterizationStateRasterizationOrderAMDcoresType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationStateStreamCreateInfoEXTcoreflags must be 0
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324YNegativeTransformFeedback.UsingRasterizationStateStreamExtDisabledexplicitVkPipelineRasterizationStateStreamCreateInfoEXTcoreVkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325YNegativeTransformFeedback.PipelineRasterizationStateStreamCreateInfoEXTexplicitVkPipelineRasterizationStateStreamCreateInfoEXTcorerasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326YNegativeTransformFeedback.PipelineRasterizationStateStreamCreateInfoEXTexplicitVkPipelineRasterizationStateStreamCreateInfoEXTcorerasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationStateStreamCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
VUID-VkPipelineRenderingCreateInfo-sType-sTypeYNoneimplicitVkPipelineRenderingCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO
VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineRepresentativeFragmentTestStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
VUID-VkPipelineRobustnessCreateInfoEXT-images-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXTcoreimages must be a valid VkPipelineRobustnessImageBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06926YNegativeRobustness.PipelineRobustnessDisabled, NegativeRobustness.PipelineRobustnessDisabledShaderStage, NegativeRobustness.PipelineRobustnessDisabledShaderStageWithIdentifierexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the pipelineRobustness feature is not enabled, storageBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06927YNegativeRobustness.PipelineRobustnessDisabledexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the pipelineRobustness feature is not enabled, uniformBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06928YNegativeRobustness.PipelineRobustnessDisabledexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the pipelineRobustness feature is not enabled, vertexInputs must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06929YNegativeRobustness.PipelineRobustnessDisabledexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the pipelineRobustness feature is not enabled, images must be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06931NNoneexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the robustBufferAccess2 feature is not supported, storageBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06932NNoneexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the robustBufferAccess2 feature is not supported, uniformBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06933NNoneexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the robustBufferAccess2 feature is not supported, vertexInputs must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess-06930YNegativeRobustness.PipelineRobustnessRobustImageAccessNotExposedexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the robustImageAccess feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess2-06934NNoneexplicitVkPipelineRobustnessCreateInfoEXTcoreIf the robustImageAccess2 feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRobustnessCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-storageBuffers-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXTcorestorageBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-uniformBuffers-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXTcoreuniformBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-vertexInputs-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXTcorevertexInputs must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineSampleLocationsStateCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameterNNoneimplicitVkPipelineSampleLocationsStateCreateInfoEXTcoresampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkPipelineShaderStageCreateInfo-clustercullingShader-07813NNoneexplicitVkPipelineShaderStageCreateInfocoreIf the clustercullingShader feature is not enabled, stage must not be VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
VUID-VkPipelineShaderStageCreateInfo-flags-02758YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfocoreIf flags has both the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT and VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize
VUID-VkPipelineShaderStageCreateInfo-flags-02759YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfocoreIf flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set and flags does not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set and no VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize
VUID-VkPipelineShaderStageCreateInfo-flags-02784YNegativeSubgroup.SubgroupSizeControlFeaturesNotEnabled, NegativeSubgroup.SubgroupSizeControlFeaturesWithIdentifierCompute, NegativeSubgroup.SubgroupSizeControlFeaturesWithIdentifierGraphicsexplicitVkPipelineShaderStageCreateInfocoreIf flags has the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set, the subgroupSizeControl feature must be enabled
VUID-VkPipelineShaderStageCreateInfo-flags-02785YNegativeSubgroup.SubgroupSizeControlFeaturesNotEnabledexplicitVkPipelineShaderStageCreateInfocoreIf flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the computeFullSubgroups feature must be enabled
VUID-VkPipelineShaderStageCreateInfo-flags-08988YNegativeSubgroup.SubgroupSizeControlStageexplicitVkPipelineShaderStageCreateInfocoreIf flags includes VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT, stage must be one of VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_TASK_BIT_EXT, or VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkPipelineShaderStageCreateInfo-flags-parameterYNoneimplicitVkPipelineShaderStageCreateInfocoreflags must be a valid combination of VkPipelineShaderStageCreateFlagBits values
VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708NNoneexplicitVkPipelineShaderStageCreateInfocoreIf the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistances
VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710NNoneexplicitVkPipelineShaderStageCreateInfocoreIf the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances
VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709NNoneexplicitVkPipelineShaderStageCreateInfocoreIf the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistances
VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711YNegativeShaderLimits.MaxSampleMaskWordsexplicitVkPipelineShaderStageCreateInfocoreIf the identified entry point includes any variable in its interface that is declared with the SampleMask BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxSampleMaskWords
VUID-VkPipelineShaderStageCreateInfo-module-08987YNegativeShaderCooperativeMatrix.KHRDimXMultipleSubgroupSizeexplicitVkPipelineShaderStageCreateInfocoreIf module uses the OpTypeCooperativeMatrixKHR instruction with a Scope equal to Subgroup, then the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize.
VUID-VkPipelineShaderStageCreateInfo-module-parameterYNoneimplicitVkPipelineShaderStageCreateInfocoreIf module is not VK_NULL_HANDLE, module must be a valid VkShaderModule handle
VUID-VkPipelineShaderStageCreateInfo-pName-00707YNegativePipeline.MissingEntrypoint, NegativeRayTracingPipelineNV.MissingEntrypointexplicitVkPipelineShaderStageCreateInfocorepName must be the name of an OpEntryPoint in module with an execution model that matches stage
VUID-VkPipelineShaderStageCreateInfo-pName-parameterYNegativePipeline.NullStagepNameimplicitVkPipelineShaderStageCreateInfocorepName must be a null-terminated UTF-8 string
VUID-VkPipelineShaderStageCreateInfo-pNext-02754YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfocoreIf a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, flags must not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set
VUID-VkPipelineShaderStageCreateInfo-pNext-02755YNegativeSubgroup.SubgroupSizeControlFeatureexplicitVkPipelineShaderStageCreateInfocoreIf a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, the subgroupSizeControl feature must be enabled, and stage must be a valid bit specified in requiredSubgroupSizeStages
VUID-VkPipelineShaderStageCreateInfo-pNext-02756YNegativeSubgroup.ComputeLocalWorkgroupSize, NegativeSubgroup.MeshLocalWorkgroupSizeexplicitVkPipelineShaderStageCreateInfocoreIf a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain and stage is VK_SHADER_STAGE_COMPUTE_BIT, VK_SHADER_STAGE_MESH_BIT_EXT, or VK_SHADER_STAGE_TASK_BIT_EXT, the local workgroup size of the shader must be less than or equal to the product of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize and maxComputeWorkgroupSubgroups
VUID-VkPipelineShaderStageCreateInfo-pNext-02757YNegativeSubgroup.ComputeLocalWorkgroupSizeexplicitVkPipelineShaderStageCreateInfocoreIf a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, and flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the local workgroup size in the X dimension of the pipeline must be a multiple of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize
VUID-VkPipelineShaderStageCreateInfo-pNext-pNextYNoneimplicitVkPipelineShaderStageCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDebugUtilsObjectNameInfoEXT, VkPipelineRobustnessCreateInfoEXT, VkPipelineShaderStageModuleIdentifierCreateInfoEXT, VkPipelineShaderStageNodeCreateInfoAMDX, VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, VkShaderModuleCreateInfo, or VkShaderModuleValidationCacheCreateInfoEXT
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849YNegativeShaderCooperativeMatrix.KHRSameScope, NegativeShaderCooperativeMatrix.KHRSpecInfo, NegativeShaderSpirv.SpecializationApplied, PositiveShaderCooperativeMatrix.CooperativeMatrixNVexplicitVkPipelineShaderStageCreateInfocoreIf a shader module identifier is not specified, the shader code used by the pipeline must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameterNNoneimplicitVkPipelineShaderStageCreateInfocoreIf pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure
VUID-VkPipelineShaderStageCreateInfo-sType-sTypeYNoneimplicitVkPipelineShaderStageCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
VUID-VkPipelineShaderStageCreateInfo-sType-uniqueYNoneimplicitVkPipelineShaderStageCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineShaderStageCreateInfo-stage-00704YNegativeGeometryTessellation.GeometryShaderEnabledexplicitVkPipelineShaderStageCreateInfocoreIf the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT
VUID-VkPipelineShaderStageCreateInfo-stage-00705YNegativeGeometryTessellation.TessellationShaderEnabledexplicitVkPipelineShaderStageCreateInfocoreIf the tessellationShader feature is not enabled, stage must not be VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-VkPipelineShaderStageCreateInfo-stage-00706NNoneexplicitVkPipelineShaderStageCreateInfocorestage must not be VK_SHADER_STAGE_ALL_GRAPHICS, or VK_SHADER_STAGE_ALL
VUID-VkPipelineShaderStageCreateInfo-stage-00713NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-VkPipelineShaderStageCreateInfo-stage-00714YNegativeGeometryTessellation.MaxGeometryInstanceVertexCountexplicitVkPipelineShaderStageCreateInfocoreIf stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying a maximum output vertex count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryOutputVertices
VUID-VkPipelineShaderStageCreateInfo-stage-00715YNegativeGeometryTessellation.MaxGeometryInstanceVertexCountexplicitVkPipelineShaderStageCreateInfocoreIf stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying an invocation count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryShaderInvocations
VUID-VkPipelineShaderStageCreateInfo-stage-02091YNegativeMesh.ExtensionDisabled, NegativeMesh.ExtensionDisabledNVexplicitVkPipelineShaderStageCreateInfocoreIf the meshShaders feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkPipelineShaderStageCreateInfo-stage-02092YNegativeMesh.ExtensionDisabled, NegativeMesh.ExtensionDisabledNVexplicitVkPipelineShaderStageCreateInfocoreIf the taskShaders feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT
VUID-VkPipelineShaderStageCreateInfo-stage-02596NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is either VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitive
VUID-VkPipelineShaderStageCreateInfo-stage-02597NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is either VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitive
VUID-VkPipelineShaderStageCreateInfo-stage-06685NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth
VUID-VkPipelineShaderStageCreateInfo-stage-06686NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragStencilRefEXT in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragStencilRefEXT
VUID-VkPipelineShaderStageCreateInfo-stage-06844YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfocoreIf a shader module identifier is specified for this stage, a VkShaderModuleCreateInfo structure must not be present in the pNext chain
VUID-VkPipelineShaderStageCreateInfo-stage-06845YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfocoreIf a shader module identifier is not specified for this stage, module must be a valid VkShaderModule, or there must be a valid VkShaderModuleCreateInfo structure in the pNext chain
VUID-VkPipelineShaderStageCreateInfo-stage-06848YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfocoreIf a shader module identifier is specified for this stage, module must be VK_NULL_HANDLE
VUID-VkPipelineShaderStageCreateInfo-stage-08771YNegativeGraphicsLibrary.CreateStateGPL, NegativeGraphicsLibrary.ShaderModuleIdentifierFeaturesexplicitVkPipelineShaderStageCreateInfocoreIf a shader module identifier is not specified for this stage, module must be a valid VkShaderModule if none of the following features are enabled: graphicsPipelineLibrary maintenance5
VUID-VkPipelineShaderStageCreateInfo-stage-parameterYNoneimplicitVkPipelineShaderStageCreateInfocorestage must be a valid VkShaderStageFlagBits value
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTcoreidentifierSize must be less-or-equal to VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameterYNoneimplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTcoreIf identifierSize is not 0, pIdentifier must be a valid pointer to an array of identifierSize uint8_t values
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06850YNegativeGraphicsLibrary.ShaderModuleIdentifierFeaturesexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTcoreIf this structure is included in a pNext chain and identifierSize is not equal to 0, the shaderModuleIdentifier feature must be enabled
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06851YNegativeGraphicsLibrary.ShaderModuleIdentifier, NegativeSubgroup.SubgroupSizeControlFeaturesWithIdentifierCompute, NegativeSubgroup.SubgroupSizeControlFeaturesWithIdentifierGraphicsexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTcoreIf this struct is included in a pNext chain of VkPipelineShaderStageCreateInfo and identifierSize is not equal to 0, the pipeline must be created with the VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag set
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
VUID-VkPipelineShaderStageNodeCreateInfoAMDX-pName-parameterNNoneimplicitVkPipelineShaderStageNodeCreateInfoAMDXcoreIf pName is not NULL, pName must be a null-terminated UTF-8 string
VUID-VkPipelineShaderStageNodeCreateInfoAMDX-sType-sTypeYNoneimplicitVkPipelineShaderStageNodeCreateInfoAMDXcoresType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfocorerequiredSubgroupSize must be a power-of-two integer
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfocorerequiredSubgroupSize must be greater or equal to minSubgroupSize
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfocorerequiredSubgroupSize must be less than or equal to maxSubgroupSize
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-sType-sTypeYNoneimplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO
VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameterYNoneimplicitVkPipelineTessellationDomainOriginStateCreateInfocoredomainOrigin must be a valid VkTessellationDomainOrigin value
VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineTessellationDomainOriginStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineTessellationStateCreateInfocoreflags must be 0
VUID-VkPipelineTessellationStateCreateInfo-pNext-pNextYVkLayerTest.UsePnextOnlyStructWithoutExtensionEnabledimplicitVkPipelineTessellationStateCreateInfocorepNext must be NULL or a pointer to a valid instance of VkPipelineTessellationDomainOriginStateCreateInfo
VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214YNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.TessellationexplicitVkPipelineTessellationStateCreateInfocorepatchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-VkPipelineTessellationStateCreateInfo-sType-sTypeYNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.TessellationimplicitVkPipelineTessellationStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
VUID-VkPipelineTessellationStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineTessellationStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-pVertexBindingDivisors-parameterYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoKHRcorepVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionKHR structures
VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-vertexBindingDivisorCount-arraylengthYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoKHRcorevertexBindingDivisorCount must be greater than 0
VUID-VkPipelineVertexInputStateCreateInfo-binding-00615YNegativeVertexInput.AttributeDescriptions, NegativeVertexInput.InputAttributeMaxVertexInputAttributes, NegativeVertexInput.InputAttributeMaxVertexInputBindingsexplicitVkPipelineVertexInputStateCreateInfocoreFor every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding
VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineVertexInputStateCreateInfocoreflags must be 0
VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineVertexInputStateCreateInfocorepNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoKHR
VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617YNegativeVertexInput.AttributeDescriptionsexplicitVkPipelineVertexInputStateCreateInfocoreAll elements of pVertexAttributeDescriptions must describe distinct attribute locations
VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameterYNoneimplicitVkPipelineVertexInputStateCreateInfocoreIf vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures
VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616YNegativeVertexInput.AttributeBindingConflict, NegativeVertexInput.BindingDescriptionsexplicitVkPipelineVertexInputStateCreateInfocoreAll elements of pVertexBindingDescriptions must describe distinct binding numbers
VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameterYNoneimplicitVkPipelineVertexInputStateCreateInfocoreIf vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription structures
VUID-VkPipelineVertexInputStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineVertexInputStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
VUID-VkPipelineVertexInputStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineVertexInputStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614YNegativeVertexInput.AttributeDescriptionsexplicitVkPipelineVertexInputStateCreateInfocorevertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613YNegativeVertexInput.BindingDescriptionsexplicitVkPipelineVertexInputStateCreateInfocorevertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234NNoneexplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVcoreThe array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameterYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVcoreIf customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072YNoneexplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVcoreIf sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameterYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVcoresampleOrderType must be a valid VkCoarseSampleOrderTypeNV value
VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470YNegativePipeline.DepthClipControlFeatureDisableexplicitVkPipelineViewportDepthClipControlCreateInfoEXTcoreIf depthClipControl is not enabled, negativeOneToOne must be VK_FALSE
VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineViewportDepthClipControlCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027YNegativeCommand.ExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNVcoreIf the multiViewport feature is not enabled, exclusiveScissorCount must be 0 or 1
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028YNegativeCommand.ExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNVcoreexclusiveScissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029YNegativeCommand.ExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNVcoreexclusiveScissorCount must be 0 or greater than or equal to the viewportCount member of VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportExclusiveScissorStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportShadingRateImageStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056YNegativeFragmentShadingRate.ShadingRateImageNVViewportCountexplicitVkPipelineViewportShadingRateImageStateCreateInfoNVcoreIf shadingRateImageEnable is VK_TRUE, viewportCount must be greater or equal to the viewportCount member of VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkPipelineViewportShadingRateImageStateCreateInfoNVcoreIf the multiViewport feature is not enabled, viewportCount must be 0 or 1
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055YNoneexplicitVkPipelineViewportShadingRateImageStateCreateInfoNVcoreviewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineViewportStateCreateInfocoreflags must be 0
VUID-VkPipelineViewportStateCreateInfo-offset-02822YNegativePipeline.ViewportStateScissorOverflowexplicitVkPipelineViewportStateCreateInfocoreEvaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-VkPipelineViewportStateCreateInfo-offset-02823YNegativePipeline.ViewportStateScissorOverflowexplicitVkPipelineViewportStateCreateInfocoreEvaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-VkPipelineViewportStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineViewportStateCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkPipelineViewportDepthClipControlCreateInfoEXT, VkPipelineViewportExclusiveScissorStateCreateInfoNV, VkPipelineViewportShadingRateImageStateCreateInfoNV, VkPipelineViewportSwizzleStateCreateInfoNV, or VkPipelineViewportWScalingStateCreateInfoNV
VUID-VkPipelineViewportStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineViewportStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
VUID-VkPipelineViewportStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineViewportStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217YNegativeDynamicState.Viewport, NegativeFragmentShadingRate.ShadingRateImageNVexplicitVkPipelineViewportStateCreateInfocoreIf the multiViewport feature is not enabled, scissorCount must not be greater than 1
VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219YNegativeDynamicState.MultiViewportexplicitVkPipelineViewportStateCreateInfocorescissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134YNegativeDynamicState.MultiViewport, NegativeDynamicState.Viewport, NegativeDynamicState.ViewportCountWithExtendedDynamicState, NegativePipeline.IncompatibleScissorCountAndViewportCountexplicitVkPipelineViewportStateCreateInfocoreIf scissorCount and viewportCount are both not dynamic, then scissorCount and viewportCount must be identical
VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136YNegativeDynamicState.MultiViewport, NegativeDynamicState.ScissorWithCount, NegativeDynamicState.ViewportexplicitVkPipelineViewportStateCreateInfocoreIf the graphics pipeline is being created with VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT set then scissorCount must be 0, otherwise scissorCount must be greater than 0
VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216YNegativeDynamicState.Viewport, NegativeFragmentShadingRate.ShadingRateImageNVexplicitVkPipelineViewportStateCreateInfocoreIf the multiViewport feature is not enabled, viewportCount must not be greater than 1
VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218YNegativeDynamicState.MultiViewportexplicitVkPipelineViewportStateCreateInfocoreviewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135YNegativeDynamicState.MultiViewport, NegativeDynamicState.Viewport, NegativeDynamicState.ViewportCountWithExtendedDynamicStateexplicitVkPipelineViewportStateCreateInfocoreIf the graphics pipeline is being created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT set then viewportCount must be 0, otherwise viewportCount must be greater than 0
VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726YNegativeCommand.ViewportWScalingNVexplicitVkPipelineViewportStateCreateInfocoreIf the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure included in the pNext chain is VK_TRUE, the viewportCount member of the VkPipelineViewportWScalingStateCreateInfoNV structure must be greater than or equal to VkPipelineViewportStateCreateInfo::viewportCount
VUID-VkPipelineViewportStateCreateInfo-x-02821YNegativePipeline.ViewportStateScissorNegativeexplicitVkPipelineViewportStateCreateInfocoreThe x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmaskYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNVcoreflags must be 0
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameterYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNVcorepViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215YNegativePipeline.ViewportSwizzleNVexplicitVkPipelineViewportSwizzleStateCreateInfoNVcoreviewportCount must be greater than or equal to the viewportCount set in VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylengthYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNVcoreviewportCount must be greater than 0
VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportWScalingStateCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylengthYNoneimplicitVkPipelineViewportWScalingStateCreateInfoNVcoreviewportCount must be greater than 0
VUID-VkPresentFrameTokenGGP-frameToken-02680NNoneexplicitVkPresentFrameTokenGGPcoreframeToken must be a valid GgpFrameToken
VUID-VkPresentFrameTokenGGP-sType-sTypeYNoneimplicitVkPresentFrameTokenGGPcoresType must be VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
VUID-VkPresentIdKHR-pPresentIds-parameterYNoneimplicitVkPresentIdKHRcoreIf pPresentIds is not NULL, pPresentIds must be a valid pointer to an array of swapchainCount uint64_t values
VUID-VkPresentIdKHR-presentIds-04999YNegativeWsi.PresentIdWaitexplicitVkPresentIdKHRcoreEach presentIds entry must be greater than any previous presentIds entry passed for the associated pSwapchains entry
VUID-VkPresentIdKHR-sType-sTypeYNoneimplicitVkPresentIdKHRcoresType must be VK_STRUCTURE_TYPE_PRESENT_ID_KHR
VUID-VkPresentIdKHR-swapchainCount-04998YNegativeWsi.PresentIdWaitexplicitVkPresentIdKHRcoreswapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where this VkPresentIdKHR is in the pNext chain of the VkPresentInfoKHR structure
VUID-VkPresentIdKHR-swapchainCount-arraylengthYNegativeWsi.PresentIdWaitimplicitVkPresentIdKHRcoreswapchainCount must be greater than 0
VUID-VkPresentInfoKHR-commonparentYNoneimplicitVkPresentInfoKHRcoreBoth of the elements of pSwapchains, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkPresentInfoKHR-pImageIndices-01430YNegativeWsi.DisplayPresentInfoSrcRect, NegativeWsi.GetSwapchainImagesCountButNotImages, NegativeWsi.PresentImageWithWrongLayout, NegativeWsi.SwapchainPresentShared, VkAmdBestPracticesLayerTest.NumberOfSubmissionsexplicitVkPresentInfoKHRcoreEach element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the pSwapchains array, and the presented image subresource must be in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout at the time the operation is executed on a VkDevice
VUID-VkPresentInfoKHR-pImageIndices-parameterYNoneimplicitVkPresentInfoKHRcorepImageIndices must be a valid pointer to an array of swapchainCount uint32_t values
VUID-VkPresentInfoKHR-pNext-06235YNegativeWsi.PresentIdWaitFeaturesexplicitVkPresentInfoKHRcoreIf a VkPresentIdKHR structure is included in the pNext chain, and the presentId feature is not enabled, each presentIds entry in that structure must be NULL
VUID-VkPresentInfoKHR-pNext-pNextYNoneimplicitVkPresentInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupPresentInfoKHR, VkDisplayPresentInfoKHR, VkFrameBoundaryEXT, VkPresentFrameTokenGGP, VkPresentIdKHR, VkPresentRegionsKHR, VkPresentTimesInfoGOOGLE, VkSwapchainPresentFenceInfoEXT, or VkSwapchainPresentModeInfoEXT
VUID-VkPresentInfoKHR-pResults-parameterYNoneimplicitVkPresentInfoKHRcoreIf pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values
VUID-VkPresentInfoKHR-pSwapchain-09231YNegativeWsi.PresentDuplicatedSwapchainexplicitVkPresentInfoKHRcoreElements of pSwapchain must be unique
VUID-VkPresentInfoKHR-pSwapchains-09199NNoneexplicitVkPresentInfoKHRcoreIf any element of the pSwapchains array has been created with VkSwapchainPresentModesCreateInfoEXT, all of the elements of this array must be created with VkSwapchainPresentModesCreateInfoEXT
VUID-VkPresentInfoKHR-pSwapchains-parameterYNoneimplicitVkPresentInfoKHRcorepSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles
VUID-VkPresentInfoKHR-pWaitSemaphores-parameterYNoneimplicitVkPresentInfoKHRcoreIf waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkPresentInfoKHR-sType-sTypeYNoneimplicitVkPresentInfoKHRcoresType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR
VUID-VkPresentInfoKHR-sType-uniqueYNoneimplicitVkPresentInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPresentInfoKHR-swapchainCount-arraylengthYNegativeWsi.PresentInfoParametersimplicitVkPresentInfoKHRcoreswapchainCount must be greater than 0
VUID-VkPresentRegionKHR-pRectangles-parameterNNoneimplicitVkPresentRegionKHRcoreIf rectangleCount is not 0, and pRectangles is not NULL, pRectangles must be a valid pointer to an array of rectangleCount valid VkRectLayerKHR structures
VUID-VkPresentRegionsKHR-pRegions-parameterYNoneimplicitVkPresentRegionsKHRcoreIf pRegions is not NULL, pRegions must be a valid pointer to an array of swapchainCount valid VkPresentRegionKHR structures
VUID-VkPresentRegionsKHR-sType-sTypeYNoneimplicitVkPresentRegionsKHRcoresType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR
VUID-VkPresentRegionsKHR-swapchainCount-01260YNegativeWsi.PresentRegionsKHRexplicitVkPresentRegionsKHRcoreswapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentRegionsKHR structure
VUID-VkPresentRegionsKHR-swapchainCount-arraylengthYNegativeWsi.PresentRegionsKHRimplicitVkPresentRegionsKHRcoreswapchainCount must be greater than 0
VUID-VkPresentTimesInfoGOOGLE-pTimes-parameterYNoneimplicitVkPresentTimesInfoGOOGLEcoreIf pTimes is not NULL, pTimes must be a valid pointer to an array of swapchainCount VkPresentTimeGOOGLE structures
VUID-VkPresentTimesInfoGOOGLE-sType-sTypeYNoneimplicitVkPresentTimesInfoGOOGLEcoresType must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247YNoneexplicitVkPresentTimesInfoGOOGLEcoreswapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentTimesInfoGOOGLE structure
VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylengthYNoneimplicitVkPresentTimesInfoGOOGLEcoreswapchainCount must be greater than 0
VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmaskYNoneimplicitVkPrivateDataSlotCreateInfocoreflags must be 0
VUID-VkPrivateDataSlotCreateInfo-pNext-pNextYNoneimplicitVkPrivateDataSlotCreateInfocorepNext must be NULL
VUID-VkPrivateDataSlotCreateInfo-sType-sTypeYNoneimplicitVkPrivateDataSlotCreateInfocoresType must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO
VUID-VkProtectedSubmitInfo-sType-sTypeYNoneimplicitVkProtectedSubmitInfocoresType must be VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
VUID-VkPushConstantRange-offset-00294YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangecoreoffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-VkPushConstantRange-offset-00295YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangecoreoffset must be a multiple of 4
VUID-VkPushConstantRange-size-00296YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangecoresize must be greater than 0
VUID-VkPushConstantRange-size-00297YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangecoresize must be a multiple of 4
VUID-VkPushConstantRange-size-00298YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangecoresize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset
VUID-VkPushConstantRange-stageFlags-parameterYNoneimplicitVkPushConstantRangecorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkPushConstantRange-stageFlags-requiredbitmaskYNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeimplicitVkPushConstantRangecorestageFlags must not be 0
VUID-VkPushConstantsInfoKHR-None-09495YNoneexplicitVkPushConstantsInfoKHRcoreIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkPushConstantsInfoKHR-layout-09496NNoneexplicitVkPushConstantsInfoKHRcoreIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkPushConstantsInfoKHR-layout-parameterYNoneimplicitVkPushConstantsInfoKHRcoreIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkPushConstantsInfoKHR-offset-00368YNoneexplicitVkPushConstantsInfoKHRcoreoffset must be a multiple of 4
VUID-VkPushConstantsInfoKHR-offset-00370YNoneexplicitVkPushConstantsInfoKHRcoreoffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-VkPushConstantsInfoKHR-offset-01795YNoneexplicitVkPushConstantsInfoKHRcoreFor 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-VkPushConstantsInfoKHR-offset-01796YNoneexplicitVkPushConstantsInfoKHRcoreFor 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 VkPushConstantRange::stageFlags
VUID-VkPushConstantsInfoKHR-pNext-pNextYNoneimplicitVkPushConstantsInfoKHRcorepNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkPushConstantsInfoKHR-pValues-parameterYNoneimplicitVkPushConstantsInfoKHRcorepValues must be a valid pointer to an array of size bytes
VUID-VkPushConstantsInfoKHR-sType-sTypeYNoneimplicitVkPushConstantsInfoKHRcoresType must be VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR
VUID-VkPushConstantsInfoKHR-sType-uniqueYNoneimplicitVkPushConstantsInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPushConstantsInfoKHR-size-00369YNoneexplicitVkPushConstantsInfoKHRcoresize must be a multiple of 4
VUID-VkPushConstantsInfoKHR-size-00371YNoneexplicitVkPushConstantsInfoKHRcoresize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset
VUID-VkPushConstantsInfoKHR-size-arraylengthYNoneimplicitVkPushConstantsInfoKHRcoresize must be greater than 0
VUID-VkPushConstantsInfoKHR-stageFlags-parameterYNoneimplicitVkPushConstantsInfoKHRcorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkPushConstantsInfoKHR-stageFlags-requiredbitmaskYNoneimplicitVkPushConstantsInfoKHRcorestageFlags must not be 0
VUID-VkPushDescriptorSetInfoKHR-None-09495YNoneexplicitVkPushDescriptorSetInfoKHRcoreIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetInfoKHR-descriptorWriteCount-arraylengthYNoneimplicitVkPushDescriptorSetInfoKHRcoredescriptorWriteCount must be greater than 0
VUID-VkPushDescriptorSetInfoKHR-layout-09496NNoneexplicitVkPushDescriptorSetInfoKHRcoreIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkPushDescriptorSetInfoKHR-layout-parameterNNoneimplicitVkPushDescriptorSetInfoKHRcoreIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetInfoKHR-pDescriptorWrites-06494YNoneexplicitVkPushDescriptorSetInfoKHRcoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures
VUID-VkPushDescriptorSetInfoKHR-pDescriptorWrites-parameterYNoneimplicitVkPushDescriptorSetInfoKHRcorepDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures
VUID-VkPushDescriptorSetInfoKHR-pNext-pNextYNoneimplicitVkPushDescriptorSetInfoKHRcorepNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkPushDescriptorSetInfoKHR-sType-sTypeYNoneimplicitVkPushDescriptorSetInfoKHRcoresType must be VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
VUID-VkPushDescriptorSetInfoKHR-sType-uniqueYNoneimplicitVkPushDescriptorSetInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPushDescriptorSetInfoKHR-set-00364YNoneexplicitVkPushDescriptorSetInfoKHRcoreset must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkPushDescriptorSetInfoKHR-set-00365YNoneexplicitVkPushDescriptorSetInfoKHRcoreset must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VUID-VkPushDescriptorSetInfoKHR-stageFlags-parameterYNoneimplicitVkPushDescriptorSetInfoKHRcorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkPushDescriptorSetInfoKHR-stageFlags-requiredbitmaskYNoneimplicitVkPushDescriptorSetInfoKHRcorestageFlags must not be 0
VUID-VkPushDescriptorSetWithTemplateInfoKHR-None-09495YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcoreIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetWithTemplateInfoKHR-commandBuffer-00366YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcoreThe pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-VkPushDescriptorSetWithTemplateInfoKHR-commonparentYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRcoreBoth of descriptorUpdateTemplate, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkPushDescriptorSetWithTemplateInfoKHR-descriptorUpdateTemplate-07994YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcoredescriptorUpdateTemplate must have been created with a templateType of VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
VUID-VkPushDescriptorSetWithTemplateInfoKHR-descriptorUpdateTemplate-parameterYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRcoredescriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-07993YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcorelayout must be compatible with the layout used to create descriptorUpdateTemplate
VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-09496NNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcoreIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-parameterYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRcoreIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetWithTemplateInfoKHR-pData-01686YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcorepData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate
VUID-VkPushDescriptorSetWithTemplateInfoKHR-pData-parameterYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRcorepData must be a pointer value
VUID-VkPushDescriptorSetWithTemplateInfoKHR-pNext-pNextYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRcorepNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkPushDescriptorSetWithTemplateInfoKHR-sType-sTypeYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRcoresType must be VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR
VUID-VkPushDescriptorSetWithTemplateInfoKHR-sType-uniqueYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07304YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcoreset must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07305YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcoreset must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07995YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRcoreset must be the same value used to create descriptorUpdateTemplate
VUID-VkQueryLowLatencySupportNV-pQueriedLowLatencyData-parameterYNoneimplicitVkQueryLowLatencySupportNVcorepQueriedLowLatencyData must be a pointer value
VUID-VkQueryLowLatencySupportNV-sType-sTypeYNoneimplicitVkQueryLowLatencySupportNVcoresType must be VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV
VUID-VkQueryPoolCreateInfo-flags-zerobitmaskYNoneimplicitVkQueryPoolCreateInfocoreflags must be 0
VUID-VkQueryPoolCreateInfo-meshShaderQueries-07068YNegativeQuery.MeshShaderQueriesexplicitVkQueryPoolCreateInfocoreIf the meshShaderQueries feature is not enabled, queryType must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT
VUID-VkQueryPoolCreateInfo-meshShaderQueries-07069YNegativeQuery.MeshShaderQueriesexplicitVkQueryPoolCreateInfocoreIf the meshShaderQueries feature is not enabled, and queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must not contain VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT or VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT
VUID-VkQueryPoolCreateInfo-pNext-pNextYNoneimplicitVkQueryPoolCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkQueryPoolPerformanceCreateInfoKHR, VkQueryPoolPerformanceQueryCreateInfoINTEL, VkQueryPoolVideoEncodeFeedbackCreateInfoKHR, VkVideoDecodeH264ProfileInfoKHR, VkVideoDecodeH265ProfileInfoKHR, VkVideoDecodeUsageInfoKHR, VkVideoEncodeH264ProfileInfoKHR, VkVideoEncodeH265ProfileInfoKHR, VkVideoEncodeUsageInfoKHR, or VkVideoProfileInfoKHR
VUID-VkQueryPoolCreateInfo-queryCount-02763YNegativeQuery.PoolCreateexplicitVkQueryPoolCreateInfocorequeryCount must be greater than 0
VUID-VkQueryPoolCreateInfo-queryType-00791YNegativeQuery.PoolCreateexplicitVkQueryPoolCreateInfocoreIf the pipelineStatisticsQuery feature is not enabled, queryType must not be VK_QUERY_TYPE_PIPELINE_STATISTICS
VUID-VkQueryPoolCreateInfo-queryType-00792YNoneexplicitVkQueryPoolCreateInfocoreIf queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values
VUID-VkQueryPoolCreateInfo-queryType-03222YNegativeQuery.PerformanceCreationexplicitVkQueryPoolCreateInfocoreIf queryType is VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the pNext chain must include a VkQueryPoolPerformanceCreateInfoKHR structure
VUID-VkQueryPoolCreateInfo-queryType-07133YNegativeVideo.CreateQueryPoolEncodeFeedbackProfileexplicitVkQueryPoolCreateInfocoreIf queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the pNext chain must include a VkVideoProfileInfoKHR structure with videoCodecOperation specifying an encode operation
VUID-VkQueryPoolCreateInfo-queryType-07906YNegativeVideo.CreateQueryPoolMissingEncodeFeedbackInfoexplicitVkQueryPoolCreateInfocoreIf queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the pNext chain must include a VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure
VUID-VkQueryPoolCreateInfo-queryType-07907YNegativeVideo.CreateQueryPoolUnsupportedEncodeFeedbackexplicitVkQueryPoolCreateInfocoreIf queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, and the pNext chain includes a VkVideoProfileInfoKHR structure and a VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure, then VkQueryPoolVideoEncodeFeedbackCreateInfoKHR::encodeFeedbackFlags must not contain any bits that are not set in VkVideoEncodeCapabilitiesKHR::supportedEncodeFeedbackFlags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile described by VkVideoProfileInfoKHR and its pNext chain
VUID-VkQueryPoolCreateInfo-queryType-parameterYNoneimplicitVkQueryPoolCreateInfocorequeryType must be a valid VkQueryType value
VUID-VkQueryPoolCreateInfo-sType-sTypeYNoneimplicitVkQueryPoolCreateInfocoresType must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
VUID-VkQueryPoolCreateInfo-sType-uniqueYNoneimplicitVkQueryPoolCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylengthYNoneimplicitVkQueryPoolPerformanceCreateInfoKHRcorecounterIndexCount must be greater than 0
VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321YNegativeQuery.PerformanceCreationexplicitVkQueryPoolPerformanceCreateInfoKHRcoreEach element of pCounterIndices must be in the range of counters reported by vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR for the queue family specified in queueFamilyIndex
VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameterYNoneimplicitVkQueryPoolPerformanceCreateInfoKHRcorepCounterIndices must be a valid pointer to an array of counterIndexCount uint32_t values
VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237YNoneexplicitVkQueryPoolPerformanceCreateInfoKHRcoreThe performanceCounterQueryPools feature must be enabled
VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236YNoneexplicitVkQueryPoolPerformanceCreateInfoKHRcorequeueFamilyIndex must be a valid queue family index of the device
VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sTypeYNoneimplicitVkQueryPoolPerformanceCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameterYNoneimplicitVkQueryPoolPerformanceQueryCreateInfoINTELcoreperformanceCountersSampling must be a valid VkQueryPoolSamplingModeINTEL value
VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-sType-sTypeYNoneimplicitVkQueryPoolPerformanceQueryCreateInfoINTELcoresType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-parameterYNoneimplicitVkQueryPoolVideoEncodeFeedbackCreateInfoKHRcoreencodeFeedbackFlags must be a valid combination of VkVideoEncodeFeedbackFlagBitsKHR values
VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-requiredbitmaskYNoneimplicitVkQueryPoolVideoEncodeFeedbackCreateInfoKHRcoreencodeFeedbackFlags must not be 0
VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-sType-sTypeYNoneimplicitVkQueryPoolVideoEncodeFeedbackCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR
VUID-VkQueueFamilyCheckpointProperties2NV-sType-sTypeYNoneimplicitVkQueueFamilyCheckpointProperties2NVcoresType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
VUID-VkQueueFamilyCheckpointPropertiesNV-sType-sTypeYNoneimplicitVkQueueFamilyCheckpointPropertiesNVcoresType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameterNNoneimplicitVkQueueFamilyGlobalPriorityPropertiesKHRcoreEach element of priorities must be a valid VkQueueGlobalPriorityKHR value
VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyGlobalPriorityPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
VUID-VkQueueFamilyProperties2-pNext-pNextYNoneimplicitVkQueueFamilyProperties2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkQueueFamilyCheckpointProperties2NV, VkQueueFamilyCheckpointPropertiesNV, VkQueueFamilyGlobalPriorityPropertiesKHR, VkQueueFamilyQueryResultStatusPropertiesKHR, or VkQueueFamilyVideoPropertiesKHR
VUID-VkQueueFamilyProperties2-sType-sTypeYNoneimplicitVkQueueFamilyProperties2coresType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
VUID-VkQueueFamilyProperties2-sType-uniqueYNoneimplicitVkQueueFamilyProperties2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkQueueFamilyQueryResultStatusPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyQueryResultStatusPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
VUID-VkQueueFamilyVideoPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyVideoPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-None-09497YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkRayTracingPipelineCreateInfoKHR-commonparentYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoreBoth of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkRayTracingPipelineCreateInfoKHR-flags-02904YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreflags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pLibraryInterface must not be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the anyHitShader of that element must not be VK_SHADER_UNUSED_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03471YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the closestHitShader of that element must not be VK_SHADER_UNUSED_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR bit set
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled
VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718YNegativeRayTracingPipeline.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR bit set
VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719YNegativeRayTracingPipeline.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR bit set
VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720YNegativeRayTracingPipeline.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR bit set
VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721YNegativeRayTracingPipeline.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR bit set
VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722YNegativeRayTracingPipeline.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR bit set
VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723YNegativeRayTracingPipeline.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR bit set
VUID-VkRayTracingPipelineCreateInfoKHR-flags-06546YNegativeRayTracingPipeline.PipelineFlagsexplicitVkRayTracingPipelineCreateInfoKHRcoreflags must not include both VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR and VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-flags-07403YNegativeRayTracingPipeline.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT bit set
VUID-VkRayTracingPipelineCreateInfoKHR-flags-07984YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid ray tracing VkPipeline handle
VUID-VkRayTracingPipelineCreateInfoKHR-flags-07985YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter
VUID-VkRayTracingPipelineCreateInfoKHR-flags-07986YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkRayTracingPipelineCreateInfoKHR-flags-08700YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR and either pLibraryInfo is NULL or its libraryCount is 0, groupCount must not be 0
VUID-VkRayTracingPipelineCreateInfoKHR-flags-08701NNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV, each element of pLibraryInfo->pLibraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV bit set
VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428YNegativeRayTracingPipeline.MaxResourcesexplicitVkRayTracingPipelineCreateInfoKHRcoreThe number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources
VUID-VkRayTracingPipelineCreateInfoKHR-layout-07987YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range
VUID-VkRayTracingPipelineCreateInfoKHR-layout-07988YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkRayTracingPipelineCreateInfoKHR-layout-07990YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type
VUID-VkRayTracingPipelineCreateInfoKHR-layout-07991YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRcorelayout must be a valid VkPipelineLayout handle
VUID-VkRayTracingPipelineCreateInfoKHR-maxPipelineRayRecursionDepth-03589YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoremaxPipelineRayRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayRecursionDepth
VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoreIf pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure
VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreAny element of the pDynamicStates member of pDynamicState must be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoreIf groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoKHR structures
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreEach element of pLibraryInfo->pLibraries must have been created with the value of maxPipelineRayRecursionDepth equal to that in this pipeline
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreIf pLibraryInfo is not NULL and its libraryCount member is greater than 0, pLibraryInterface must not be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592NNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03593YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf pLibraryInfo is not NULL, each element of its pLibraries member must have been created with values of the maxPipelineRayPayloadSize and maxPipelineRayHitAttributeSize members of pLibraryInterface equal to those in this pipeline
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf the VK_KHR_pipeline_library extension is not enabled, pLibraryInfo and pLibraryInterface must be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-07999YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRcoreIf pLibraryInfo is NULL or its libraryCount is 0, stageCount must not be 0
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoreIf pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoreIf pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure
VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNextYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, or VkPipelineRobustnessCreateInfoEXT
VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426NNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreThe shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoreIf stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
VUID-VkRayTracingPipelineCreateInfoKHR-pipelineStageCreationFeedbackCount-06652YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay is VK_TRUE and the pShaderGroupCaptureReplayHandle member of any element of pGroups is not NULL, flags must include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597YNoneexplicitVkRayTracingPipelineCreateInfoKHRcoreIf the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-sType-sTypeYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-sType-uniqueYNoneimplicitVkRayTracingPipelineCreateInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingPipelineCreateInfoKHRcoreIf flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the stage member of at least one element of pStages, including those implicitly added by pLibraryInfo, must be VK_SHADER_STAGE_RAYGEN_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-stage-06899YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingPipelineCreateInfoKHRcoreThe stage value in all pStages elements must be one of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-None-09497YNoneexplicitVkRayTracingPipelineCreateInfoNVcoreIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkRayTracingPipelineCreateInfoNV-commonparentYNoneimplicitVkRayTracingPipelineCreateInfoNVcoreBoth of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkRayTracingPipelineCreateInfoNV-flags-02904YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkRayTracingPipelineCreateInfoNV-flags-02957YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include both VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV and VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT at the same time
VUID-VkRayTracingPipelineCreateInfoNV-flags-03456YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03458YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03459YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03460YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03461YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03462YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03463YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03588YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-04948YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkRayTracingPipelineCreateInfoNV-flags-07402NNoneexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkRayTracingPipelineCreateInfoNV-flags-07984YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid ray tracing VkPipeline handle
VUID-VkRayTracingPipelineCreateInfoNV-flags-07985YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter
VUID-VkRayTracingPipelineCreateInfoNV-flags-07986YNoneexplicitVkRayTracingPipelineCreateInfoNVcoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkRayTracingPipelineCreateInfoNV-flags-07998NNoneexplicitVkRayTracingPipelineCreateInfoNVcoreflags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylengthYNoneimplicitVkRayTracingPipelineCreateInfoNVcoregroupCount must be greater than 0
VUID-VkRayTracingPipelineCreateInfoNV-layout-03428NNoneexplicitVkRayTracingPipelineCreateInfoNVcoreThe number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources
VUID-VkRayTracingPipelineCreateInfoNV-layout-07987YNoneexplicitVkRayTracingPipelineCreateInfoNVcoreIf a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range
VUID-VkRayTracingPipelineCreateInfoNV-layout-07988YNoneexplicitVkRayTracingPipelineCreateInfoNVcoreIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkRayTracingPipelineCreateInfoNV-layout-07990YNoneexplicitVkRayTracingPipelineCreateInfoNVcoreIf a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type
VUID-VkRayTracingPipelineCreateInfoNV-layout-07991YNoneexplicitVkRayTracingPipelineCreateInfoNVcoreIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkRayTracingPipelineCreateInfoNV-layout-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNVcorelayout must be a valid VkPipelineLayout handle
VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457YNoneexplicitVkRayTracingPipelineCreateInfoNVcoremaxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth
VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNVcorepGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures
VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNextYNoneimplicitVkRayTracingPipelineCreateInfoNVcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCreateFlags2CreateInfoKHR or VkPipelineCreationFeedbackCreateInfo
VUID-VkRayTracingPipelineCreateInfoNV-pStages-03426NNoneexplicitVkRayTracingPipelineCreateInfoNVcoreThe shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNVcorepStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905YNoneexplicitVkRayTracingPipelineCreateInfoNVcoreIf the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
VUID-VkRayTracingPipelineCreateInfoNV-pipelineStageCreationFeedbackCount-06651YNegativeRayTracingPipelineNV.StageCreationFeedbackCountexplicitVkRayTracingPipelineCreateInfoNVcoreIf VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkRayTracingPipelineCreateInfoNV-sType-sTypeYNoneimplicitVkRayTracingPipelineCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
VUID-VkRayTracingPipelineCreateInfoNV-sType-uniqueYNoneimplicitVkRayTracingPipelineCreateInfoNVcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkRayTracingPipelineCreateInfoNV-stage-06232YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingPipelineCreateInfoNVcoreThe stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-stage-06898NNoneexplicitVkRayTracingPipelineCreateInfoNVcoreThe stage value in all pStages elements must be one of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylengthYNoneimplicitVkRayTracingPipelineCreateInfoNVcorestageCount must be greater than 0
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605YNoneexplicitVkRayTracingPipelineInterfaceCreateInfoKHRcoremaxPipelineRayHitAttributeSize must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayHitAttributeSize
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkRayTracingPipelineInterfaceCreateInfoKHRcorepNext must be NULL
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkRayTracingPipelineInterfaceCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-anyHitShader-03479YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRcoreanyHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-closestHitShader-03478YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRcoreclosestHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-pNext-pNextYNoneimplicitVkRayTracingShaderGroupCreateInfoKHRcorepNext must be NULL
VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03603NNoneexplicitVkRayTracingShaderGroupCreateInfoKHRcoreIf VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_FALSE then pShaderGroupCaptureReplayHandle must not be provided if it has not been provided on a previous call to ray tracing pipeline creation
VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03604NNoneexplicitVkRayTracingShaderGroupCreateInfoKHRcoreIf VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_FALSE then the caller must guarantee that no ray tracing pipeline creation commands with pShaderGroupCaptureReplayHandle provided execute simultaneously with ray tracing pipeline creation commands without pShaderGroupCaptureReplayHandle provided
VUID-VkRayTracingShaderGroupCreateInfoKHR-sType-sTypeYNoneimplicitVkRayTracingShaderGroupCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRcoreIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then generalShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03475YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRcoreIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03476YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRcoreIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03477YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRcoreIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR then intersectionShader must be VK_SHADER_UNUSED_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-parameterYNoneimplicitVkRayTracingShaderGroupCreateInfoKHRcoretype must be a valid VkRayTracingShaderGroupTypeKHR value
VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVcoreanyHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-closestHitShader-02417YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVcoreclosestHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-pNext-pNextYNoneimplicitVkRayTracingShaderGroupCreateInfoNVcorepNext must be NULL
VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sTypeYNoneimplicitVkRayTracingShaderGroupCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVcoreIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then generalShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_NV, VK_SHADER_STAGE_MISS_BIT_NV, or VK_SHADER_STAGE_CALLABLE_BIT_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-02414YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVcoreIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVcoreIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-02416YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVcoreIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV then intersectionShader must be VK_SHADER_UNUSED_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameterYNoneimplicitVkRayTracingShaderGroupCreateInfoNVcoretype must be a valid VkRayTracingShaderGroupTypeKHR value
VUID-VkRectLayerKHR-layer-01262YNoneexplicitVkRectLayerKHRcorelayer must be less than the imageArrayLayers member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR
VUID-VkRectLayerKHR-offset-04864YNoneexplicitVkRectLayerKHRcoreThe sum of offset and extent, after being transformed according to the preTransform member of the VkSwapchainCreateInfoKHR structure, must be no greater than the imageExtent member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR
VUID-VkReleaseSwapchainImagesInfoEXT-imageIndexCount-arraylengthYNoneimplicitVkReleaseSwapchainImagesInfoEXTcoreimageIndexCount must be greater than 0
VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07785YNegativeWsi.SwapchainMaintenance1ExtensionAcquire, NegativeWsi.SwapchainMaintenance1ExtensionReleaseexplicitVkReleaseSwapchainImagesInfoEXTcoreEach element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by swapchain
VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07786YNegativeWsi.SwapchainMaintenance1ExtensionReleaseexplicitVkReleaseSwapchainImagesInfoEXTcoreAll uses of presentable images identified by elements of pImageIndices must have completed execution
VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-parameterYNoneimplicitVkReleaseSwapchainImagesInfoEXTcorepImageIndices must be a valid pointer to an array of imageIndexCount uint32_t values
VUID-VkReleaseSwapchainImagesInfoEXT-pNext-pNextYNoneimplicitVkReleaseSwapchainImagesInfoEXTcorepNext must be NULL
VUID-VkReleaseSwapchainImagesInfoEXT-sType-sTypeYNoneimplicitVkReleaseSwapchainImagesInfoEXTcoresType must be VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
VUID-VkReleaseSwapchainImagesInfoEXT-swapchain-parameterYNoneimplicitVkReleaseSwapchainImagesInfoEXTcoreswapchain must be a valid VkSwapchainKHR handle
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03218YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassAttachmentBeginInfocoreEach element of pAttachments must only specify a single mip level
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassAttachmentBeginInfocoreEach element of pAttachments must have been created with the identity swizzle
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114YNegativeImagelessFramebuffer.RenderPassBeginImageView3DexplicitVkRenderPassAttachmentBeginInfocoreEach element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkRenderPassAttachmentBeginInfocoreIf multisampled-render-to-single-sampled is enabled for any subpass, all element of pAttachments which have a sample count equal to VK_SAMPLE_COUNT_1_BIT must have a format that supports the sample count specified in VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameterYNoneimplicitVkRenderPassAttachmentBeginInfocoreIf attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles
VUID-VkRenderPassAttachmentBeginInfo-sType-sTypeYNoneimplicitVkRenderPassAttachmentBeginInfocoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
VUID-VkRenderPassBeginInfo-None-08996YNegativeRenderPass.ZeroRenderAreaexplicitVkRenderPassBeginInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.extent.width must be greater than 0
VUID-VkRenderPassBeginInfo-None-08997YNegativeRenderPass.ZeroRenderAreaexplicitVkRenderPassBeginInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.extent.height must be greater than 0
VUID-VkRenderPassBeginInfo-clearValueCount-00902YNegativeRenderPass.BeginClearOpMismatchexplicitVkRenderPassBeginInfocoreclearValueCount must be greater than the largest attachment index in renderPass specifying a loadOp (or stencilLoadOp, if the attachment has a depth/stencil format) of VK_ATTACHMENT_LOAD_OP_CLEAR
VUID-VkRenderPassBeginInfo-clearValueCount-04962YNegativeRenderPass.RenderPassBeginNullValuesexplicitVkRenderPassBeginInfocoreIf clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions
VUID-VkRenderPassBeginInfo-commonparentYNegativeParent.RenderPassCommandBufferimplicitVkRenderPassBeginInfocoreBoth of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice
VUID-VkRenderPassBeginInfo-framebuffer-02780YNegativeParent.RenderPassImagelessFramebufferexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must have been created on the same VkDevice as framebuffer and renderPass
VUID-VkRenderPassBeginInfo-framebuffer-03207YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that did not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and the pNext chain includes a VkRenderPassAttachmentBeginInfo structure, its attachmentCount must be zero
VUID-VkRenderPassBeginInfo-framebuffer-03208YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentCount of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be equal to the value of VkFramebufferAttachmentsCreateInfo::attachmentImageInfoCount used to create framebuffer
VUID-VkRenderPassBeginInfo-framebuffer-03209YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::flags equal to the flags member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer
VUID-VkRenderPassBeginInfo-framebuffer-03211YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a width equal to the width member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer
VUID-VkRenderPassBeginInfo-framebuffer-03212YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a height equal to the height member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer
VUID-VkRenderPassBeginInfo-framebuffer-03213YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::subresourceRange.layerCount equal to the layerCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer
VUID-VkRenderPassBeginInfo-framebuffer-03214YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageFormatListCreateInfo::viewFormatCount equal to the viewFormatCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer
VUID-VkRenderPassBeginInfo-framebuffer-03215YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a set of elements in VkImageFormatListCreateInfo::pViewFormats equal to the set of elements in the pViewFormats member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer
VUID-VkRenderPassBeginInfo-framebuffer-03216YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::format equal to the corresponding value of VkAttachmentDescription::format in renderPass
VUID-VkRenderPassBeginInfo-framebuffer-04627YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with an inherited usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer
VUID-VkRenderPassBeginInfo-framebuffer-09047YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::samples equal to the corresponding value of VkAttachmentDescription::samples in renderPass , or VK_SAMPLE_COUNT_1_BIT if renderPass was created with VkMultisampledRenderToSingleSampledInfoEXT structure in the pNext chain with multisampledRenderToSingleSampledEnable equal to VK_TRUE
VUID-VkRenderPassBeginInfo-framebuffer-09353YNegativeAndroidExternalResolve.ImagelessFramebufferFormatexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and the nullColorAttachmentWithExternalFormatResolve is VK_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 VkAndroidHardwareBufferFormatResolvePropertiesANDROID::colorAttachmentFormat as returned by a call to vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer that was used to create the image view use as its resolve attachment
VUID-VkRenderPassBeginInfo-framebuffer-09354YNegativeAndroidExternalResolve.ImagelessFramebufferexplicitVkRenderPassBeginInfocoreIf framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkExternalFormatANDROID::externalFormat equal to VkExternalFormatANDROID::externalFormat in the pNext chain of the corresponding VkAttachmentDescription2 structure used to create renderPass
VUID-VkRenderPassBeginInfo-framebuffer-parameterYNegativeRenderPass.BeginInfoWithoutFramebuffer, NegativeRenderPass.MissingAttachment, PositiveWsi.UseDestroyedSwapchainimplicitVkRenderPassBeginInfocoreframebuffer must be a valid VkFramebuffer handle
VUID-VkRenderPassBeginInfo-pNext-02850YNegativeRenderPass.RenderAreaexplicitVkRenderPassBeginInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0
VUID-VkRenderPassBeginInfo-pNext-02851YNegativeRenderPass.RenderAreaexplicitVkRenderPassBeginInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0
VUID-VkRenderPassBeginInfo-pNext-02852YNegativeRenderPass.BeginRenderArea, NegativeRenderPass.RenderAreaexplicitVkRenderPassBeginInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x + renderArea.extent.width must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with
VUID-VkRenderPassBeginInfo-pNext-02853YNegativeRenderPass.BeginRenderArea, NegativeRenderPass.RenderAreaexplicitVkRenderPassBeginInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y + renderArea.extent.height must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with
VUID-VkRenderPassBeginInfo-pNext-02856YNegativeRenderPass.DeviceGroupRenderAreaexplicitVkRenderPassBeginInfocoreIf the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.x + extent.width of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with
VUID-VkRenderPassBeginInfo-pNext-02857YNegativeRenderPass.DeviceGroupRenderAreaexplicitVkRenderPassBeginInfocoreIf the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.y + extent.height of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with
VUID-VkRenderPassBeginInfo-pNext-02869NNoneexplicitVkRenderPassBeginInfocoreIf the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.offset must equal (0,0)
VUID-VkRenderPassBeginInfo-pNext-02870NNoneexplicitVkRenderPassBeginInfocoreIf the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.extent transformed by VkRenderPassTransformBeginInfoQCOM::transform must equal the framebuffer dimensions
VUID-VkRenderPassBeginInfo-pNext-pNextYNoneimplicitVkRenderPassBeginInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupRenderPassBeginInfo, VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, VkRenderPassAttachmentBeginInfo, VkRenderPassSampleLocationsBeginInfoEXT, VkRenderPassStripeBeginInfoARM, or VkRenderPassTransformBeginInfoQCOM
VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07859NNoneexplicitVkRenderPassBeginInfocoreIf the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then the multiviewPerViewRenderAreas feature must be enabled.
VUID-VkRenderPassBeginInfo-perViewRenderAreaCount-07860NNoneexplicitVkRenderPassBeginInfocoreIf the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM 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. If the pNext chain contains a VkRenderPassStripeBeginInfoARM structure, the union of stripe areas defined by the elements of VkRenderPassStripeInfoARM::pStripeInfos must cover the renderArea
VUID-VkRenderPassBeginInfo-renderPass-00904YNegativeRenderPass.BeginIncompatibleFramebuffer, NegativeRenderPass.ImageSubresourceOverlapBetweenCurrentRenderPassAndDescriptorSets, NegativeRenderPass.IncompatibleRenderPass, NegativeRenderPass.IncompatibleRenderPass2, NegativeRenderPass.IncompatibleRenderPassSubpassFlagsexplicitVkRenderPassBeginInfocorerenderPass must be compatible with the renderPass member of the VkFramebufferCreateInfo structure specified when creating framebuffer
VUID-VkRenderPassBeginInfo-renderPass-parameterYNegativeRenderPass.BeginInfoWithoutRenderPassimplicitVkRenderPassBeginInfocorerenderPass must be a valid VkRenderPass handle
VUID-VkRenderPassBeginInfo-sType-sTypeYNoneimplicitVkRenderPassBeginInfocoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
VUID-VkRenderPassBeginInfo-sType-uniqueYNoneimplicitVkRenderPassBeginInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo-attachment-00834YNegativeRenderPass.AttachmentIndexOutOfRangeexplicitVkRenderPassCreateInfocoreIf the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount
VUID-VkRenderPassCreateInfo-flags-parameterYNoneimplicitVkRenderPassCreateInfocoreflags must be a valid combination of VkRenderPassCreateFlagBits values
VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471YNegativeFragmentShadingRate.FragmentDensityMapReferencesexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassFragmentDensityMapCreateInfoEXT structure and the fragmentDensityMapAttachment member is not VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount
VUID-VkRenderPassCreateInfo-pAttachments-00836YNegativeRenderPass.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfocoreFor any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderPassCreateInfo-pAttachments-01566YNegativeRenderPass.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfocoreFor any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkRenderPassCreateInfo-pAttachments-01567YNegativeRenderPass.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfocoreFor any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderPassCreateInfo-pAttachments-02511YNegativeRenderPass.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfocoreFor any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderPassCreateInfo-pAttachments-parameterYNoneimplicitVkRenderPassCreateInfocoreIf attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription structures
VUID-VkRenderPassCreateInfo-pDependencies-00837YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfocoreFor any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass
VUID-VkRenderPassCreateInfo-pDependencies-00838YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfocoreFor any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass
VUID-VkRenderPassCreateInfo-pDependencies-06866YNegativeSubpass.SubpassDependencies, NegativeSubpass.SubpassIndicesexplicitVkRenderPassCreateInfocoreFor any element of pDependencies, if its srcSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount
VUID-VkRenderPassCreateInfo-pDependencies-06867YNegativeSubpass.SubpassDependencies, NegativeSubpass.SubpassIndicesexplicitVkRenderPassCreateInfocoreFor any element of pDependencies, if its dstSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount
VUID-VkRenderPassCreateInfo-pDependencies-parameterYNoneimplicitVkRenderPassCreateInfocoreIf dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency structures
VUID-VkRenderPassCreateInfo-pNext-01926YNegativeSubpass.InputAttachmentReferencesexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the subpass member of each element of its pAspectReferences member must be less than subpassCount
VUID-VkRenderPassCreateInfo-pNext-01927YNegativeSubpass.InputAttachmentReferencesexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the inputAttachmentIndex member of each element of its pAspectReferences member must be less than the value of inputAttachmentCount in the element of pSubpasses identified by its subpass member
VUID-VkRenderPassCreateInfo-pNext-01928YNegativeMultiview.RenderPassViewMasksNotEnoughexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and its subpassCount member is not zero, that member must be equal to the value of subpassCount
VUID-VkRenderPassCreateInfo-pNext-01929YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, if its dependencyCount member is not zero, it must be equal to dependencyCount
VUID-VkRenderPassCreateInfo-pNext-01930YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for each non-zero element of pViewOffsets, the srcSubpass and dstSubpass members of pDependencies at the same index must not be equal
VUID-VkRenderPassCreateInfo-pNext-01963YNegativeSubpass.InputAttachmentReferences, VkLayerTest.VuidHashStability, VkLayerTest.VuidIdFilterStringexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, for any element of the pInputAttachments member of any element of pSubpasses where the attachment member is not VK_ATTACHMENT_UNUSED, the aspectMask member of the corresponding element of VkRenderPassInputAttachmentAspectCreateInfo::pAspectReferences must only include aspects that are present in images of the format specified by the element of pAttachments at attachment
VUID-VkRenderPassCreateInfo-pNext-02512YNegativeMultiview.RenderPassViewOffsetsexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for any element of pDependencies with a dependencyFlags member that does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, the corresponding element of the pViewOffsets member of that VkRenderPassMultiviewCreateInfo instance must be 0
VUID-VkRenderPassCreateInfo-pNext-02513YNegativeMultiview.RenderPassViewMasksZeroexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, elements of its pViewMasks member must either all be 0, or all not be 0
VUID-VkRenderPassCreateInfo-pNext-02514YNegativeRenderPass.AllViewMasksZeroexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, the dependencyFlags member of each element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-VkRenderPassCreateInfo-pNext-02515YNegativeRenderPass.AllViewMasksZeroexplicitVkRenderPassCreateInfocoreIf the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, its correlationMaskCount member must be 0
VUID-VkRenderPassCreateInfo-pNext-pNextYNoneimplicitVkRenderPassCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkRenderPassFragmentDensityMapCreateInfoEXT, VkRenderPassInputAttachmentAspectCreateInfo, or VkRenderPassMultiviewCreateInfo
VUID-VkRenderPassCreateInfo-pSubpasses-parameterYNoneimplicitVkRenderPassCreateInfocorepSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription structures
VUID-VkRenderPassCreateInfo-sType-sTypeYNoneimplicitVkRenderPassCreateInfocoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
VUID-VkRenderPassCreateInfo-sType-uniqueYNoneimplicitVkRenderPassCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo-subpassCount-arraylengthYNoneimplicitVkRenderPassCreateInfocoresubpassCount must be greater than 0
VUID-VkRenderPassCreateInfo2-None-03049NNoneexplicitVkRenderPassCreateInfo2coreIf any two subpasses operate on attachments with overlapping ranges of the same VkDeviceMemory object, and at least one subpass writes to that area of VkDeviceMemory, a subpass dependency must be included (either directly or via some intermediate subpasses) between them
VUID-VkRenderPassCreateInfo2-attachment-02525YNegativeSubpass.InputAttachmentParameters, NegativeSubpass.InputAttachmentReferences, VkLayerTest.VuidFilterHexInt, VkLayerTest.VuidFilterInt, VkLayerTest.VuidIdFilterStringexplicitVkRenderPassCreateInfo2coreIf the attachment member of any element of the pInputAttachments member of any element of pSubpasses is not VK_ATTACHMENT_UNUSED, the aspectMask member of that element of pInputAttachments must only include aspects that are present in images of the format specified by the element of pAttachments specified by attachment
VUID-VkRenderPassCreateInfo2-attachment-03050NNoneexplicitVkRenderPassCreateInfo2coreIf the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2 structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags
VUID-VkRenderPassCreateInfo2-attachment-03051YNegativeRenderPass.AttachmentIndexOutOfRangeexplicitVkRenderPassCreateInfo2coreIf the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount
VUID-VkRenderPassCreateInfo2-attachment-06244YNegativeRenderPass.AttachmentReferenceLayout, NegativeRenderPass.BeginStencilFormatexplicitVkRenderPassCreateInfo2coreIf the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED, the layout member of that same structure is either VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, and the pNext chain of that structure does not include a VkAttachmentReferenceStencilLayout structure, then the element of pAttachments with an index equal to attachment must not have a format that includes both depth and stencil components
VUID-VkRenderPassCreateInfo2-attachment-06245YNegativeRenderPass.AttachmentReferenceLayout, NegativeRenderPass.BeginStencilFormatexplicitVkRenderPassCreateInfo2coreIf the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED and the layout member of that same structure is either VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, then the element of pAttachments with an index equal to attachment must have a format that includes only a stencil component
VUID-VkRenderPassCreateInfo2-attachment-06246YNegativeRenderPass.BeginStencilFormatexplicitVkRenderPassCreateInfo2coreIf the attachment member of the pDepthStencilAttachment member of an element of pSubpasses is not VK_ATTACHMENT_UNUSED and the layout member of that same structure is either VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, then the element of pAttachments with an index equal to attachment must not have a format that includes only a stencil component
VUID-VkRenderPassCreateInfo2-dstSubpass-02527YNegativeSubpass.SubpassDependencies, NegativeSubpass.SubpassIndicesexplicitVkRenderPassCreateInfo2coreThe dstSubpass member of each element of pDependencies must be less than subpassCount
VUID-VkRenderPassCreateInfo2-flags-04521YNegativeFragmentShadingRate.AttachmentsexplicitVkRenderPassCreateInfo2coreIf flags includes VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM, an element of pSubpasses includes an instance of VkFragmentShadingRateAttachmentInfoKHR in its pNext chain, and the pFragmentShadingRateAttachment member of that structure is not equal to NULL, the attachment member of pFragmentShadingRateAttachment must be VK_ATTACHMENT_UNUSED
VUID-VkRenderPassCreateInfo2-flags-04907YNegativeRenderPass.ShaderResolveQCOMexplicitVkRenderPassCreateInfo2coreIf flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED
VUID-VkRenderPassCreateInfo2-flags-04908YNoneexplicitVkRenderPassCreateInfo2coreIf flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pDepthStencilResolveAttachment is not NULL, then the depth/stencil resolve attachment must be VK_ATTACHMENT_UNUSED
VUID-VkRenderPassCreateInfo2-flags-04909YNegativeRenderPass.ShaderResolveQCOMexplicitVkRenderPassCreateInfo2coreIf flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain
VUID-VkRenderPassCreateInfo2-flags-parameterYNoneimplicitVkRenderPassCreateInfo2coreflags must be a valid combination of VkRenderPassCreateFlagBits values
VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472YNegativeFragmentShadingRate.FragmentDensityMapAttachmentCountexplicitVkRenderPassCreateInfo2coreIf the pNext chain includes a VkRenderPassFragmentDensityMapCreateInfoEXT structure and the fragmentDensityMapAttachment member is not VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount
VUID-VkRenderPassCreateInfo2-pAttachments-02522YNegativeRenderPass.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfo2coreFor any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkRenderPassCreateInfo2-pAttachments-02523YNegativeRenderPass.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfo2coreFor any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderPassCreateInfo2-pAttachments-04585YNoneexplicitVkRenderPassCreateInfo2coreIf any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must not be used as any other attachment in the render pass
VUID-VkRenderPassCreateInfo2-pAttachments-04586YNegativeFragmentShadingRate.AttachmentsexplicitVkRenderPassCreateInfo2coreIf any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must have an image format whose potential format features contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkRenderPassCreateInfo2-pAttachments-09387NNoneexplicitVkRenderPassCreateInfo2coreIf any element of pAttachments is used as a fragment shading rate attachment, the loadOp for that attachment must not be VK_ATTACHMENT_LOAD_OP_CLEAR
VUID-VkRenderPassCreateInfo2-pAttachments-parameterYNoneimplicitVkRenderPassCreateInfo2coreIf attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2 structures
VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056YNegativeMultiview.RenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassCreateInfo2coreThe set of bits included in any element of pCorrelatedViewMasks must not overlap with the set of bits included in any other element of pCorrelatedViewMasks
VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameterYNoneimplicitVkRenderPassCreateInfo2coreIf correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values
VUID-VkRenderPassCreateInfo2-pDependencies-03054YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfo2coreFor any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass
VUID-VkRenderPassCreateInfo2-pDependencies-03055YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfo2coreFor any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass
VUID-VkRenderPassCreateInfo2-pDependencies-03060YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfo2coreFor any element of pDependencies where its srcSubpass member equals its dstSubpass member, if the viewMask member of the corresponding element of pSubpasses includes more than one bit, its dependencyFlags member must include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-VkRenderPassCreateInfo2-pDependencies-parameterYNoneimplicitVkRenderPassCreateInfo2coreIf dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2 structures
VUID-VkRenderPassCreateInfo2-pNext-pNextYNoneimplicitVkRenderPassCreateInfo2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkRenderPassCreationControlEXT, VkRenderPassCreationFeedbackCreateInfoEXT, or VkRenderPassFragmentDensityMapCreateInfoEXT
VUID-VkRenderPassCreateInfo2-pResolveAttachments-09331YNoneexplicitVkRenderPassCreateInfo2coreIf any element of pResolveAttachments of any element of pSubpasses references an attachment description with a format of VK_FORMAT_UNDEFINED, VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment->attachment must be VK_ATTACHMENT_UNUSED
VUID-VkRenderPassCreateInfo2-pSubpasses-06473YNegativeRenderPass.DepthStencilResolveModeexplicitVkRenderPassCreateInfo2coreIf the pSubpasses pNext chain includes a VkSubpassDescriptionDepthStencilResolve structure and the pDepthStencilResolveAttachment member is not NULL and does not have the value VK_ATTACHMENT_UNUSED, then attachment must be less than attachmentCount
VUID-VkRenderPassCreateInfo2-pSubpasses-parameterYNoneimplicitVkRenderPassCreateInfo2corepSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2 structures
VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905NNoneexplicitVkRenderPassCreateInfo2coreIf the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if subpass has any input attachments, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples
VUID-VkRenderPassCreateInfo2-sType-sTypeYNoneimplicitVkRenderPassCreateInfo2coresType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
VUID-VkRenderPassCreateInfo2-sType-uniqueYNoneimplicitVkRenderPassCreateInfo2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906NNoneexplicitVkRenderPassCreateInfo2coreIf the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false
VUID-VkRenderPassCreateInfo2-srcSubpass-02526YNegativeSubpass.SubpassDependencies, NegativeSubpass.SubpassIndicesexplicitVkRenderPassCreateInfo2coreThe srcSubpass member of each element of pDependencies must be less than subpassCount
VUID-VkRenderPassCreateInfo2-subpassCount-arraylengthYNoneimplicitVkRenderPassCreateInfo2coresubpassCount must be greater than 0
VUID-VkRenderPassCreateInfo2-viewMask-03057YNegativeMultiview.RenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassCreateInfo2coreIf the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0
VUID-VkRenderPassCreateInfo2-viewMask-03058YNegativeMultiview.RenderPassViewMasksNotEnoughexplicitVkRenderPassCreateInfo2coreThe VkSubpassDescription2::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0
VUID-VkRenderPassCreateInfo2-viewMask-03059YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfo2coreIf the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, the dependencyFlags member of any element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-VkRenderPassCreationControlEXT-sType-sTypeYNoneimplicitVkRenderPassCreationControlEXTcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
VUID-VkRenderPassCreationFeedbackCreateInfoEXT-pRenderPassFeedback-parameterYNoneimplicitVkRenderPassCreationFeedbackCreateInfoEXTcorepRenderPassFeedback must be a valid pointer to a VkRenderPassCreationFeedbackInfoEXT structure
VUID-VkRenderPassCreationFeedbackCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassCreationFeedbackCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548NNoneexplicitVkRenderPassFragmentDensityMapCreateInfoEXTcoreIf fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must not be an element of VkSubpassDescription::pInputAttachments, VkSubpassDescription::pColorAttachments, VkSubpassDescription::pResolveAttachments, VkSubpassDescription::pDepthStencilAttachment, or VkSubpassDescription::pPreserveAttachments for any subpass
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02549YNegativeFragmentShadingRate.FragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXTcoreIf fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, layout must be equal to VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02550YNegativeFragmentShadingRate.FragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXTcoreIf fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a loadOp equal to VK_ATTACHMENT_LOAD_OP_LOAD or VK_ATTACHMENT_LOAD_OP_DONT_CARE
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551YNegativeFragmentShadingRate.FragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXTcoreIf fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-parameterNNoneimplicitVkRenderPassFragmentDensityMapCreateInfoEXTcorefragmentDensityMapAttachment must be a valid VkAttachmentReference structure
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassFragmentDensityMapCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
VUID-VkRenderPassInputAttachmentAspectCreateInfo-aspectReferenceCount-arraylengthYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfocoreaspectReferenceCount must be greater than 0
VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameterYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfocorepAspectReferences must be a valid pointer to an array of aspectReferenceCount valid VkInputAttachmentAspectReference structures
VUID-VkRenderPassInputAttachmentAspectCreateInfo-sType-sTypeYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfocoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
VUID-VkRenderPassMultiviewCreateInfo-multiview-06555YNegativeRenderPass.ViewMaskWithoutFeatureexplicitVkRenderPassMultiviewCreateInfocoreIf the multiview feature is not enabled, each element of pViewMasks must be 0
VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-00841YNegativeMultiview.RenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassMultiviewCreateInfocoreEach view index must not be set in more than one element of pCorrelationMasks
VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-parameterYNoneimplicitVkRenderPassMultiviewCreateInfocoreIf correlationMaskCount is not 0, pCorrelationMasks must be a valid pointer to an array of correlationMaskCount uint32_t values
VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-06697YNegativeMultiview.RenderPassViewMasksLimitexplicitVkRenderPassMultiviewCreateInfocoreThe index of the most significant bit in each element of pViewMasks must be less than maxMultiviewViewCount
VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-parameterYNoneimplicitVkRenderPassMultiviewCreateInfocoreIf subpassCount is not 0, pViewMasks must be a valid pointer to an array of subpassCount uint32_t values
VUID-VkRenderPassMultiviewCreateInfo-pViewOffsets-parameterYNoneimplicitVkRenderPassMultiviewCreateInfocoreIf dependencyCount is not 0, pViewOffsets must be a valid pointer to an array of dependencyCount int32_t values
VUID-VkRenderPassMultiviewCreateInfo-sType-sTypeYNoneimplicitVkRenderPassMultiviewCreateInfocoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameterYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXTcoreIf attachmentInitialSampleLocationsCount is not 0, pAttachmentInitialSampleLocations must be a valid pointer to an array of attachmentInitialSampleLocationsCount valid VkAttachmentSampleLocationsEXT structures
VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameterYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXTcoreIf postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must be a valid pointer to an array of postSubpassSampleLocationsCount valid VkSubpassSampleLocationsEXT structures
VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sTypeYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXTcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
VUID-VkRenderPassStripeBeginInfoARM-pStripeInfos-parameterYNoneimplicitVkRenderPassStripeBeginInfoARMcorepStripeInfos must be a valid pointer to an array of stripeInfoCount valid VkRenderPassStripeInfoARM structures
VUID-VkRenderPassStripeBeginInfoARM-sType-sTypeYNoneimplicitVkRenderPassStripeBeginInfoARMcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
VUID-VkRenderPassStripeBeginInfoARM-stripeArea-09451NNoneexplicitVkRenderPassStripeBeginInfoARMcoreThe stripeArea defined by each element of pStripeInfos must not overlap the stripeArea of any other element
VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-09450NNoneexplicitVkRenderPassStripeBeginInfoARMcorestripeInfoCount must be less than or equal to VkPhysicalDeviceRenderPassStripedPropertiesARM::maxRenderPassStripes
VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-arraylengthYNoneimplicitVkRenderPassStripeBeginInfoARMcorestripeInfoCount must be greater than 0
VUID-VkRenderPassStripeInfoARM-pNext-pNextNNoneimplicitVkRenderPassStripeInfoARMcorepNext must be NULL
VUID-VkRenderPassStripeInfoARM-sType-sTypeYNoneimplicitVkRenderPassStripeInfoARMcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
VUID-VkRenderPassStripeInfoARM-stripeArea-09452NNoneexplicitVkRenderPassStripeInfoARMcorestripeArea.offset.x must be a multiple of VkPhysicalDeviceRenderPassStripedPropertiesARM::renderPassStripeGranularity.width
VUID-VkRenderPassStripeInfoARM-stripeArea-09453NNoneexplicitVkRenderPassStripeInfoARMcorestripeArea.extent.width must be a multiple of VkPhysicalDeviceRenderPassStripedPropertiesARM::renderPassStripeGranularity.width, or the sum of stripeArea.offset.x and stripeArea.extent.width must be equal to the renderArea.extent.width of the render pass instance
VUID-VkRenderPassStripeInfoARM-stripeArea-09454NNoneexplicitVkRenderPassStripeInfoARMcorestripeArea.offset.y must be a multiple of VkPhysicalDeviceRenderPassStripedPropertiesARM::renderPassStripeGranularity.height
VUID-VkRenderPassStripeInfoARM-stripeArea-09455NNoneexplicitVkRenderPassStripeInfoARMcorestripeArea.extent.height must be a multiple of VkPhysicalDeviceRenderPassStripedPropertiesARM::renderPassStripeGranularity.height, or the sum of stripeArea.offset.y and stripeArea.extent.height must be equal to the renderArea.extent.height of the render pass instance
VUID-VkRenderPassStripeSubmitInfoARM-pStripeSemaphoreInfos-parameterYNoneimplicitVkRenderPassStripeSubmitInfoARMcorepStripeSemaphoreInfos must be a valid pointer to an array of stripeSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures
VUID-VkRenderPassStripeSubmitInfoARM-sType-sTypeYNoneimplicitVkRenderPassStripeSubmitInfoARMcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
VUID-VkRenderPassStripeSubmitInfoARM-semaphore-09447NNoneexplicitVkRenderPassStripeSubmitInfoARMcoreThe semaphore member of each element of pStripeSemaphoreInfos must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkRenderPassStripeSubmitInfoARM-stripeSemaphoreInfoCount-arraylengthYNoneimplicitVkRenderPassStripeSubmitInfoARMcorestripeSemaphoreInfoCount must be greater than 0
VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-pSubpassFeedback-parameterYNoneimplicitVkRenderPassSubpassFeedbackCreateInfoEXTcorepSubpassFeedback must be a valid pointer to a VkRenderPassSubpassFeedbackInfoEXT structure
VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassSubpassFeedbackCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872NNoneexplicitVkRenderPassTransformBeginInfoQCOMcoreThe renderpass must have been created with VkRenderPassCreateInfo::flags containing VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
VUID-VkRenderPassTransformBeginInfoQCOM-sType-sTypeYNoneimplicitVkRenderPassTransformBeginInfoQCOMcoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM
VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871NNoneexplicitVkRenderPassTransformBeginInfoQCOMcoretransform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
VUID-VkRenderingAreaInfoKHR-pNext-pNextYNoneimplicitVkRenderingAreaInfoKHRcorepNext must be NULL
VUID-VkRenderingAreaInfoKHR-sType-sTypeYNoneimplicitVkRenderingAreaInfoKHRcoresType must be VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR
VUID-VkRenderingAttachmentInfo-clearValue-parameterNNoneimplicitVkRenderingAttachmentInfocoreclearValue must be a valid VkClearValue union
VUID-VkRenderingAttachmentInfo-commonparentYNoneimplicitVkRenderingAttachmentInfocoreBoth of imageView, and resolveImageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323YNoneexplicitVkRenderingAttachmentInfocoreIf externalFormatResolve is not enabled, resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
VUID-VkRenderingAttachmentInfo-imageLayout-parameterYNoneimplicitVkRenderingAttachmentInfocoreimageLayout must be a valid VkImageLayout value
VUID-VkRenderingAttachmentInfo-imageView-06129YNegativeAndroidExternalResolve.ClearAttachment, NegativeAndroidExternalResolve.DrawDynamicRasterizationSamples, NegativeAndroidExternalResolve.DynamicRendering, NegativeAndroidExternalResolve.DynamicRenderingResolveModeNonNullColor, NegativeAndroidExternalResolve.MissingImageUsage, NegativeDynamicRendering.ResolveModeWithNonIntegerColorFormat, PositiveAndroidExternalResolve.DynamicRenderingexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and has a non-integer color format, resolveMode must be VK_RESOLVE_MODE_NONE or VK_RESOLVE_MODE_AVERAGE_BIT
VUID-VkRenderingAttachmentInfo-imageView-06130YNegativeDynamicRendering.ResolveModeWithIntegerColorFormatexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and has an integer color format, resolveMode must be VK_RESOLVE_MODE_NONE or VK_RESOLVE_MODE_SAMPLE_ZERO_BIT
VUID-VkRenderingAttachmentInfo-imageView-06135YNegativeDynamicRendering.AttachmentImageViewLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkRenderingAttachmentInfo-imageView-06136YNegativeDynamicRendering.ResolveImageViewLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkRenderingAttachmentInfo-imageView-06137YNegativeDynamicRendering.ResolveImageViewLayoutSeparateDepthStencilexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingAttachmentInfo-imageView-06138YNegativeDynamicRendering.AttachmentImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV
VUID-VkRenderingAttachmentInfo-imageView-06139YNegativeDynamicRendering.ResolveImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV
VUID-VkRenderingAttachmentInfo-imageView-06140YNegativeDynamicRendering.AttachmentImageViewFragmentDensityLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
VUID-VkRenderingAttachmentInfo-imageView-06141YNegativeDynamicRendering.ResolveImageViewFragmentDensityLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
VUID-VkRenderingAttachmentInfo-imageView-06142YNegativeDynamicRendering.ResolveImageViewReadOnlyOptimalLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkRenderingAttachmentInfo-imageView-06143YNegativeDynamicRendering.AttachmentImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
VUID-VkRenderingAttachmentInfo-imageView-06144YNegativeDynamicRendering.ResolveImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
VUID-VkRenderingAttachmentInfo-imageView-06145YNegativeDynamicRendering.AttachmentInfoexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
VUID-VkRenderingAttachmentInfo-imageView-06146YNegativeDynamicRendering.AttachmentInfoexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
VUID-VkRenderingAttachmentInfo-imageView-06861YNegativeDynamicRendering.AttachmentInfo, NegativeDynamicRendering.ResolveModeSamples, NegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInfocoreimageView must not have a sample count of VK_SAMPLE_COUNT_1_BIT if all of the following hold: imageView is not VK_NULL_HANDLE resolveMode is not VK_RESOLVE_MODE_NONE the pNext chain of VkRenderingInfo does not include a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE
VUID-VkRenderingAttachmentInfo-imageView-06862YNegativeDynamicRendering.AttachmentInfo, NegativeDynamicRendering.ResolveImageViewSamples, NegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInfocoreresolveImageView must not be VK_NULL_HANDLE if all of the following hold: imageView is not VK_NULL_HANDLE resolveMode is not VK_RESOLVE_MODE_NONE the pNext chain of VkRenderingInfo does not include a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE
VUID-VkRenderingAttachmentInfo-imageView-06863YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, and imageView has a sample count of VK_SAMPLE_COUNT_1_BIT, resolveImageView must be VK_NULL_HANDLE
VUID-VkRenderingAttachmentInfo-imageView-06864YNegativeDynamicRendering.ResolveImageViewSamplesexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, resolveImageView is not VK_NULL_HANDLE, and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageView must have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkRenderingAttachmentInfo-imageView-06865YNegativeAndroidExternalResolve.ClearAttachment, NegativeAndroidExternalResolve.DrawDynamicRasterizationSamples, NegativeAndroidExternalResolve.MissingImageUsage, NegativeDynamicRendering.ResolveAttachmentUsage, NegativeDynamicRendering.ResolveImageViewFormatMatch, PositiveAndroidExternalResolve.DynamicRenderingexplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, resolveImageView is not VK_NULL_HANDLE, and resolveMode is not VK_RESOLVE_MODE_NONE, imageView and resolveImageView must have the same VkFormat
VUID-VkRenderingAttachmentInfo-imageView-parameterYNoneimplicitVkRenderingAttachmentInfocoreIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkRenderingAttachmentInfo-loadOp-parameterYNoneimplicitVkRenderingAttachmentInfocoreloadOp must be a valid VkAttachmentLoadOp value
VUID-VkRenderingAttachmentInfo-nullColorAttachmentWithExternalFormatResolve-09325YNoneexplicitVkRenderingAttachmentInfocoreIf the nullColorAttachmentWithExternalFormatResolve property is VK_TRUE and resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must have been created with an image with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkRenderingAttachmentInfo-pNext-pNextYNoneimplicitVkRenderingAttachmentInfocorepNext must be NULL
VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameterYNoneimplicitVkRenderingAttachmentInfocoreresolveImageLayout must be a valid VkImageLayout value
VUID-VkRenderingAttachmentInfo-resolveImageView-parameterYNoneimplicitVkRenderingAttachmentInfocoreIf resolveImageView is not VK_NULL_HANDLE, resolveImageView must be a valid VkImageView handle
VUID-VkRenderingAttachmentInfo-resolveMode-09324YNoneexplicitVkRenderingAttachmentInfocoreIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must be a valid image view
VUID-VkRenderingAttachmentInfo-resolveMode-09326YNegativeAndroidExternalResolve.DynamicRenderingResolveModeNonNullColorexplicitVkRenderingAttachmentInfocoreIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must have been created with an external format specified by VkExternalFormatANDROID
VUID-VkRenderingAttachmentInfo-resolveMode-09327YNegativeAndroidExternalResolve.DynamicRenderingResolveModeNonNullColorexplicitVkRenderingAttachmentInfocoreIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must have been created with a subresourceRange.layerCount of 1
VUID-VkRenderingAttachmentInfo-resolveMode-09328YNoneexplicitVkRenderingAttachmentInfocoreIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_TRUE, imageView must be VK_NULL_HANDLE
VUID-VkRenderingAttachmentInfo-resolveMode-09329YNegativeAndroidExternalResolve.DynamicRenderingResolveModeNonNullColorexplicitVkRenderingAttachmentInfocoreIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_FALSE, imageView must be a valid VkImageView
VUID-VkRenderingAttachmentInfo-resolveMode-09330YNoneexplicitVkRenderingAttachmentInfocoreIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_FALSE, imageView must have a format equal to the value of VkAndroidHardwareBufferFormatResolvePropertiesANDROID::colorAttachmentFormat as returned by a call to vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer that was used to create resolveImageView
VUID-VkRenderingAttachmentInfo-resolveMode-parameterYNoneimplicitVkRenderingAttachmentInfocoreIf resolveMode is not 0, resolveMode must be a valid VkResolveModeFlagBits value
VUID-VkRenderingAttachmentInfo-sType-sTypeYNoneimplicitVkRenderingAttachmentInfocoresType must be VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO
VUID-VkRenderingAttachmentInfo-storeOp-parameterYNoneimplicitVkRenderingAttachmentInfocorestoreOp must be a valid VkAttachmentStoreOp value
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908YNegativeDynamicRendering.FragmentDensityMapAttachmentLayerCount, NegativeDynamicRendering.RenderingFragmentDensityMapAttachmentexplicitVkRenderingFragmentDensityMapAttachmentInfoEXTcoreIf VK_KHR_multiview is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and imageView is not VK_NULL_HANDLE, it must have a layerCount equal to 1
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameterYNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXTcoreimageLayout must be a valid VkImageLayout value
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157YNegativeDynamicRendering.RenderingFragmentDensityMapAttachmentexplicitVkRenderingFragmentDensityMapAttachmentInfoEXTcoreIf imageView is not VK_NULL_HANDLE, layout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158YNegativeDynamicRendering.RenderingFragmentDensityMapAttachmentUsageexplicitVkRenderingFragmentDensityMapAttachmentInfoEXTcoreIf imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159YNegativeDynamicRendering.FragmentDensityMapAttachmentCreateFlagsexplicitVkRenderingFragmentDensityMapAttachmentInfoEXTcoreIf imageView is not VK_NULL_HANDLE, it must not have been created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameterYNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXTcoreimageView must be a valid VkImageView handle
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sTypeYNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXTcoresType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameterYNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreimageLayout must be a valid VkImageLayout value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageViewexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, layout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be a power of two value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be a power of two value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, the quotient of shadingRateAttachmentTexelSize.width and shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameterYNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoreIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sTypeYNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHRcoresType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
VUID-VkRenderingInfo-None-08994YNegativeDynamicRendering.ZeroRenderAreaexplicitVkRenderingInfocoreIf VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0
VUID-VkRenderingInfo-None-08995YNegativeDynamicRendering.ZeroRenderAreaexplicitVkRenderingInfocoreIf VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0
VUID-VkRenderingInfo-None-09044NNoneexplicitVkRenderingInfocoreValid attachments specified by this structure must not be bound to memory locations that are bound to any other valid attachments specified by this structure
VUID-VkRenderingInfo-colorAttachmentCount-06087YNegativeDynamicRendering.RenderingInfoColorAttachmentexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, that imageView must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkRenderingInfo-colorAttachmentCount-06090YNegativeDynamicRendering.RenderingInfoColorAttachmentexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-colorAttachmentCount-06091YNegativeDynamicRendering.RenderingInfoColorAttachmentexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-colorAttachmentCount-06096YNegativeDynamicRendering.RenderingInfoColorAttachmentexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-colorAttachmentCount-06097YNegativeDynamicRendering.RenderingInfoColorAttachmentexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-colorAttachmentCount-06100YNegativeDynamicRendering.RenderingInfoColorAttachmentexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-colorAttachmentCount-06101YNegativeDynamicRendering.RenderingInfoColorAttachmentexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-colorAttachmentCount-06106YNegativeDynamicRendering.RenderingInfoColorAttachmentexplicitVkRenderingInfocorecolorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkRenderingInfo-colorAttachmentCount-09320YNegativeAndroidExternalResolve.DynamicRenderingexplicitVkRenderingInfocoreIf colorAttachmentCount is not 1, the resolveMode member of any element of pColorAttachments must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
VUID-VkRenderingInfo-colorAttachmentCount-09476YNegativeAndroidExternalResolve.MissingImageUsageexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and there is an element of pColorAttachments with either its resolveMode member set to VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, or its imageView member not VK_NULL_HANDLE, and its resolveMode member not set to VK_RESOLVE_MODE_NONE, the resolveImageView member of that element of pColorAttachments must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkRenderingInfo-colorAttachmentCount-09479YNegativeDynamicRendering.IdentitySwizzleColorexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, that imageView must have been created with the identity swizzle
VUID-VkRenderingInfo-colorAttachmentCount-09480YNoneexplicitVkRenderingInfocoreIf colorAttachmentCount is not 0, and there is an element of pColorAttachments with either its resolveMode member set to VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, or its imageView member not set to VK_NULL_HANDLE and its resolveMode member not set to VK_RESOLVE_MODE_NONE, the resolveImageView member of that element of pColorAttachments must have been created with the identity swizzle
VUID-VkRenderingInfo-flags-09381YNegativeDynamicRendering.DynamicRenderingInlineContentsexplicitVkRenderingInfocoreIf flags includes VK_RENDERING_CONTENTS_INLINE_BIT_EXT then the nestedCommandBuffer feature must be enabled
VUID-VkRenderingInfo-flags-parameterYNoneimplicitVkRenderingInfocoreflags must be a valid combination of VkRenderingFlagBits values
VUID-VkRenderingInfo-imageView-06107YNegativeDynamicRendering.MissingImageCreateSubsampledexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and the fragmentDensityMapNonSubsampledImages feature is not enabled, valid imageView and resolveImageView members of pDepthAttachment, pStencilAttachment, and each element of pColorAttachments must be a VkImageView created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkRenderingInfo-imageView-06108YNegativeDynamicRendering.AttachmentInfoexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount greater than or equal to the index of the most significant bit in viewMask
VUID-VkRenderingInfo-imageView-06109YNegativeDynamicRendering.RenderingFragmentDensityMapAttachmentexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is 0, imageView must have a layerCount equal to 1
VUID-VkRenderingInfo-imageView-06116YNegativeDynamicRendering.AttachmentInfoexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments
VUID-VkRenderingInfo-imageView-06123YNegativeDynamicRendering.BeginRenderingFragmentShadingRateexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is 0, imageView must have a layerCount that is either equal to 1 or greater than or equal to layerCount
VUID-VkRenderingInfo-imageView-06124YNegativeDynamicRendering.BeginRenderingFragmentShadingRateexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, and viewMask is not 0, imageView must have a layerCount that either equal to 1 or greater than or equal to the index of the most significant bit in viewMask
VUID-VkRenderingInfo-imageView-06125YNegativeDynamicRendering.BeginRenderingFragmentShadingRateexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView or resolveImageView member of pDepthAttachment, pStencilAttachment, or any element of pColorAttachments
VUID-VkRenderingInfo-imageView-06126YNegativeDynamicRendering.PNextImageViewexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must not be equal to the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain
VUID-VkRenderingInfo-imageView-06858YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkRenderingInfocoreIf multisampled-render-to-single-sampled is enabled, then all attachments referenced by imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have a sample count that is either VK_SAMPLE_COUNT_1_BIT or equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-VkRenderingInfo-imageView-06859YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkRenderingInfocoreIf multisampled-render-to-single-sampled is enabled, then all attachments referenced by imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE and have a sample count of VK_SAMPLE_COUNT_1_BIT must have been created with VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT in their VkImageCreateInfo::flags
VUID-VkRenderingInfo-imageView-09429NNoneexplicitVkRenderingInfocoreimageView members of elements of pColorAttachments that are not VK_NULL_HANDLE must have been created with the same sampleCount , if the multisampledRenderToSingleSampled feature is not enabled
VUID-VkRenderingInfo-imageView-09485YNegativeDynamicRendering.IdentitySwizzleFragmentShadingRateexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, it must have been created with the identity swizzle
VUID-VkRenderingInfo-imageView-09486YNegativeDynamicRendering.IdentitySwizzleFragmentDensityMapexplicitVkRenderingInfocoreIf the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, it must have been created with the identity swizzle
VUID-VkRenderingInfo-layerCount-07817YNegativeDynamicRendering.MaxFramebufferLayersexplicitVkRenderingInfocorelayerCount must be less than or equal to maxFramebufferLayers
VUID-VkRenderingInfo-multisampledRenderToSingleSampled-06857YNegativeDynamicRendering.InfoMismatchedSamplesexplicitVkRenderingInfocoreimageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have been created with the same sampleCount , if none of the following are enabled: The VK_AMD_mixed_attachment_samples extension The VK_NV_framebuffer_mixed_samples extension The multisampledRenderToSingleSampled feature,
VUID-VkRenderingInfo-multiview-06127YNegativeDynamicRendering.AttachmentInfoexplicitVkRenderingInfocoreIf the multiview feature is not enabled, viewMask must be 0
VUID-VkRenderingInfo-pColorAttachments-parameterYNoneimplicitVkRenderingInfocoreIf colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkRenderingAttachmentInfo structures
VUID-VkRenderingInfo-pDepthAttachment-06085YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf neither pDepthAttachment or pStencilAttachment are NULL and the imageView member of either structure is not VK_NULL_HANDLE, the imageView member of each structure must be the same
VUID-VkRenderingInfo-pDepthAttachment-06086YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf neither pDepthAttachment or pStencilAttachment are NULL, and the resolveMode member of each is not VK_RESOLVE_MODE_NONE, the resolveImageView member of each structure must be the same
VUID-VkRenderingInfo-pDepthAttachment-06088YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->imageView must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkRenderingInfo-pDepthAttachment-06092YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkRenderingInfo-pDepthAttachment-06093YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkRenderingInfo-pDepthAttachment-06098YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkRenderingInfo-pDepthAttachment-06102YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->resolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes
VUID-VkRenderingInfo-pDepthAttachment-06104YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment->imageView and pStencilAttachment->imageView are both not VK_NULL_HANDLE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, the resolveMode of both structures must be the same value
VUID-VkRenderingInfo-pDepthAttachment-06105YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment or pStencilAttachment are both not NULL, pDepthAttachment->imageView and pStencilAttachment->imageView are both not VK_NULL_HANDLE, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and the resolveMode of neither structure is VK_RESOLVE_MODE_NONE, the resolveMode of both structures must be the same value
VUID-VkRenderingInfo-pDepthAttachment-06547YNegativeDynamicRendering.BeginRenderingDepthAttachmentFormatexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->imageView must have been created with a format that includes a depth component
VUID-VkRenderingInfo-pDepthAttachment-07732YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->layout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-pDepthAttachment-07733YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-pDepthAttachment-09318YNegativeAndroidExternalResolve.DynamicRenderingexplicitVkRenderingInfocorepDepthAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
VUID-VkRenderingInfo-pDepthAttachment-09477YNegativeDynamicRendering.ResolveAttachmentUsageexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageView must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkRenderingInfo-pDepthAttachment-09481YNegativeDynamicRendering.IdentitySwizzleDepthStencilexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL and pDepthAttachment->imageView is not VK_NULL_HANDLE, pDepthAttachment->imageView must have been created with the identity swizzle
VUID-VkRenderingInfo-pDepthAttachment-09482YNoneexplicitVkRenderingInfocoreIf pDepthAttachment is not NULL, pDepthAttachment->imageView is not VK_NULL_HANDLE, and pDepthAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pDepthAttachment->resolveImageView must have been created with the identity swizzle
VUID-VkRenderingInfo-pDepthAttachment-parameterYNoneimplicitVkRenderingInfocoreIf pDepthAttachment is not NULL, pDepthAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure
VUID-VkRenderingInfo-pNext-06077YNegativeDynamicRendering.RenderArea, NegativeDynamicRendering.RenderAreaNegativeOffsetexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0
VUID-VkRenderingInfo-pNext-06078YNegativeDynamicRendering.RenderArea, NegativeDynamicRendering.RenderAreaNegativeOffsetexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0
VUID-VkRenderingInfo-pNext-06079YNegativeDynamicRendering.AreaGreaterThanAttachmentExtent, NegativeDynamicRendering.DeviceGroupAreaGreaterThanAttachmentExtentexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the width of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to renderArea.offset.x + renderArea.extent.width
VUID-VkRenderingInfo-pNext-06080YNegativeDynamicRendering.AreaGreaterThanAttachmentExtent, NegativeDynamicRendering.DeviceGroupAreaGreaterThanAttachmentExtentexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the height of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to renderArea.offset.y + renderArea.extent.height
VUID-VkRenderingInfo-pNext-06083YNegativeDynamicRendering.DeviceGroupRenderPassBeginInfoexplicitVkRenderingInfocoreIf the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the width of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to the sum of the offset.x and extent.width members of each element of pDeviceRenderAreas
VUID-VkRenderingInfo-pNext-06084YNegativeDynamicRendering.DeviceGroupRenderPassBeginInfoexplicitVkRenderingInfocoreIf the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the height of the imageView member of any element of pColorAttachments, pDepthAttachment, or pStencilAttachment that is not VK_NULL_HANDLE must be greater than or equal to the sum of the offset.y and extent.height members of each element of pDeviceRenderAreas
VUID-VkRenderingInfo-pNext-06112YNegativeDynamicRendering.FragmentDensityMapRenderAreaWithoutDeviceGroupExt, NegativeDynamicRendering.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)
VUID-VkRenderingInfo-pNext-06113YNegativeDynamicRendering.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfocoreIf the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_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
VUID-VkRenderingInfo-pNext-06114YNegativeDynamicRendering.FragmentDensityMapRenderAreaWithoutDeviceGroupExt, NegativeDynamicRendering.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)
VUID-VkRenderingInfo-pNext-06115YNegativeDynamicRendering.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfocoreIf the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentDensityMapAttachmentInfoEXT structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\) for each element of pDeviceRenderAreas
VUID-VkRenderingInfo-pNext-06119YNegativeDynamicRendering.BeginRenderingFragmentShadingRateAttachmentSize, NegativeDynamicRendering.FragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\)
VUID-VkRenderingInfo-pNext-06120YNegativeDynamicRendering.FragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfocoreIf the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a width greater than or equal to \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\) for each element of pDeviceRenderAreas
VUID-VkRenderingInfo-pNext-06121YNegativeDynamicRendering.BeginRenderingFragmentShadingRateAttachmentSizeexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0 and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\)
VUID-VkRenderingInfo-pNext-06122YNegativeDynamicRendering.FragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfocoreIf the pNext chain contains a VkDeviceGroupRenderPassBeginInfo structure, its deviceRenderAreaCount member is not 0, and the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure included in the pNext chain is not VK_NULL_HANDLE, imageView must have a height greater than or equal to \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\) for each element of pDeviceRenderAreas
VUID-VkRenderingInfo-pNext-07815YNegativeDynamicRendering.AreaGreaterThanAttachmentExtent, NegativeDynamicRendering.DeviceGroupAreaGreaterThanAttachmentExtent, NegativeDynamicRendering.FragmentShadingRateAttachmentSizeWithDeviceGroupExt, NegativeDynamicRendering.RenderArea, NegativeDynamicRendering.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the sum of renderArea.extent.width and renderArea.offset.x must be less than or equal to maxFramebufferWidth
VUID-VkRenderingInfo-pNext-07816YNegativeDynamicRendering.AreaGreaterThanAttachmentExtent, NegativeDynamicRendering.DeviceGroupAreaGreaterThanAttachmentExtent, NegativeDynamicRendering.RenderArea, NegativeDynamicRendering.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfocoreIf the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, the sum of renderArea.extent.height and renderArea.offset.y must be less than or equal to maxFramebufferHeight
VUID-VkRenderingInfo-pNext-pNextYNoneimplicitVkRenderingInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupRenderPassBeginInfo, VkMultisampledRenderToSingleSampledInfoEXT, VkMultiviewPerViewAttributesInfoNVX, VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, VkRenderPassStripeBeginInfoARM, VkRenderingFragmentDensityMapAttachmentInfoEXT, or VkRenderingFragmentShadingRateAttachmentInfoKHR
VUID-VkRenderingInfo-pStencilAttachment-06089YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->imageView must have been created with a stencil usage including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkRenderingInfo-pStencilAttachment-06094YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->layout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkRenderingInfo-pStencilAttachment-06095YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkRenderingInfo-pStencilAttachment-06099YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-pStencilAttachment-06103YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->resolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes
VUID-VkRenderingInfo-pStencilAttachment-06548YNegativeDynamicRendering.BeginRenderingStencilAttachmentFormatexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->imageView must have been created with a format that includes a stencil aspect
VUID-VkRenderingInfo-pStencilAttachment-07734YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-pStencilAttachment-07735YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkRenderingInfo-pStencilAttachment-09319YNegativeAndroidExternalResolve.DynamicRenderingexplicitVkRenderingInfocorepStencilAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
VUID-VkRenderingInfo-pStencilAttachment-09478YNegativeDynamicRendering.ResolveAttachmentUsageexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageView must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkRenderingInfo-pStencilAttachment-09483YNegativeDynamicRendering.IdentitySwizzleDepthStencilexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL and pStencilAttachment->imageView is not VK_NULL_HANDLE, pStencilAttachment->imageView must have been created with the identity swizzle
VUID-VkRenderingInfo-pStencilAttachment-09484YNoneexplicitVkRenderingInfocoreIf pStencilAttachment is not NULL, pStencilAttachment->imageView is not VK_NULL_HANDLE, and pStencilAttachment->resolveMode is not VK_RESOLVE_MODE_NONE, pStencilAttachment->resolveImageView must have been created with the identity swizzle
VUID-VkRenderingInfo-pStencilAttachment-parameterYNoneimplicitVkRenderingInfocoreIf pStencilAttachment is not NULL, pStencilAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure
VUID-VkRenderingInfo-perViewRenderAreaCount-07857NNoneexplicitVkRenderingInfocoreIf the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then the multiviewPerViewRenderAreas feature must be enabled.
VUID-VkRenderingInfo-perViewRenderAreaCount-07858NNoneexplicitVkRenderingInfocoreIf the perViewRenderAreaCount member of a VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM structure included in the pNext chain is not 0, then renderArea must specify a render area that includes the union of all per view render areas.
VUID-VkRenderingInfo-resolveMode-09321YNoneexplicitVkRenderingInfocoreIf the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView must be VK_NULL_HANDLE
VUID-VkRenderingInfo-resolveMode-09322YNoneexplicitVkRenderingInfocoreIf the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView must be VK_NULL_HANDLE If the pNext chain contains a VkRenderPassStripeBeginInfoARM structure, the union of stripe areas defined by the elements of VkRenderPassStripeInfoARM::pStripeInfos must cover the renderArea
VUID-VkRenderingInfo-sType-sTypeYNoneimplicitVkRenderingInfocoresType must be VK_STRUCTURE_TYPE_RENDERING_INFO
VUID-VkRenderingInfo-sType-uniqueYNoneimplicitVkRenderingInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderingInfo-viewMask-06069YNegativeDynamicRendering.LayerCountexplicitVkRenderingInfocoreIf viewMask is 0, layerCount must not be 0
VUID-VkRenderingInfo-viewMask-06128YNegativeDynamicRendering.InfoViewMaskexplicitVkRenderingInfocoreThe index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkResolveImageInfo2-commonparentYNoneimplicitVkResolveImageInfo2coreBoth of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkResolveImageInfo2-dstImage-00258YNoneexplicitVkResolveImageInfo2coreIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkResolveImageInfo2-dstImage-00259YNoneexplicitVkResolveImageInfo2coredstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkResolveImageInfo2-dstImage-00276YNoneexplicitVkResolveImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1
VUID-VkResolveImageInfo2-dstImage-00278YNoneexplicitVkResolveImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1
VUID-VkResolveImageInfo2-dstImage-02003YNoneexplicitVkResolveImageInfo2coreThe format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkResolveImageInfo2-dstImage-02546YNoneexplicitVkResolveImageInfo2coredstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkResolveImageInfo2-dstImage-06764YNoneexplicitVkResolveImageInfo2coredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkResolveImageInfo2-dstImage-06765YNoneexplicitVkResolveImageInfo2coreThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkResolveImageInfo2-dstImage-parameterYNoneimplicitVkResolveImageInfo2coredstImage must be a valid VkImage handle
VUID-VkResolveImageInfo2-dstImageLayout-00262YNoneexplicitVkResolveImageInfo2coredstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkResolveImageInfo2-dstImageLayout-01401YNoneexplicitVkResolveImageInfo2coredstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-dstImageLayout-parameterYNoneimplicitVkResolveImageInfo2coredstImageLayout must be a valid VkImageLayout value
VUID-VkResolveImageInfo2-dstOffset-00274YNoneexplicitVkResolveImageInfo2coreFor 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-VkResolveImageInfo2-dstOffset-00275YNoneexplicitVkResolveImageInfo2coreFor 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-VkResolveImageInfo2-dstOffset-00277YNoneexplicitVkResolveImageInfo2coreFor 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-VkResolveImageInfo2-dstSubresource-01710YNegativeCommand.ResolveInvalidSubresourceexplicitVkResolveImageInfo2coreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkResolveImageInfo2-dstSubresource-01712YNegativeCommand.ResolveInvalidSubresourceexplicitVkResolveImageInfo2coreIf dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkResolveImageInfo2-linearColorAttachment-06519NNoneexplicitVkResolveImageInfo2coreIf the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, the format features of dstImage must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkResolveImageInfo2-pNext-pNextYNoneimplicitVkResolveImageInfo2corepNext must be NULL
VUID-VkResolveImageInfo2-pRegions-00255NNoneexplicitVkResolveImageInfo2coreThe union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkResolveImageInfo2-pRegions-parameterYNoneimplicitVkResolveImageInfo2corepRegions must be a valid pointer to an array of regionCount valid VkImageResolve2 structures
VUID-VkResolveImageInfo2-regionCount-arraylengthYNoneimplicitVkResolveImageInfo2coreregionCount must be greater than 0
VUID-VkResolveImageInfo2-sType-sTypeYNoneimplicitVkResolveImageInfo2coresType must be VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2
VUID-VkResolveImageInfo2-srcImage-00256YNoneexplicitVkResolveImageInfo2coreIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkResolveImageInfo2-srcImage-00257YNegativeCommand.CopyCommands2V13explicitVkResolveImageInfo2coresrcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT
VUID-VkResolveImageInfo2-srcImage-00271YNoneexplicitVkResolveImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
VUID-VkResolveImageInfo2-srcImage-00273YNoneexplicitVkResolveImageInfo2coreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
VUID-VkResolveImageInfo2-srcImage-01386YNoneexplicitVkResolveImageInfo2coresrcImage and dstImage must have been created with the same image format
VUID-VkResolveImageInfo2-srcImage-04446YNoneexplicitVkResolveImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.layerCount must be 1
VUID-VkResolveImageInfo2-srcImage-04447YNoneexplicitVkResolveImageInfo2coreIf dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1
VUID-VkResolveImageInfo2-srcImage-06762YNoneexplicitVkResolveImageInfo2coresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkResolveImageInfo2-srcImage-06763YNoneexplicitVkResolveImageInfo2coreThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkResolveImageInfo2-srcImage-parameterYNoneimplicitVkResolveImageInfo2coresrcImage must be a valid VkImage handle
VUID-VkResolveImageInfo2-srcImageLayout-00260YNoneexplicitVkResolveImageInfo2coresrcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkResolveImageInfo2-srcImageLayout-01400YNoneexplicitVkResolveImageInfo2coresrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-srcImageLayout-parameterYNoneimplicitVkResolveImageInfo2coresrcImageLayout must be a valid VkImageLayout value
VUID-VkResolveImageInfo2-srcOffset-00269YNoneexplicitVkResolveImageInfo2coreFor 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-VkResolveImageInfo2-srcOffset-00270YNoneexplicitVkResolveImageInfo2coreFor 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-VkResolveImageInfo2-srcOffset-00272YNoneexplicitVkResolveImageInfo2coreFor 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-VkResolveImageInfo2-srcSubresource-01709YNegativeCommand.ResolveInvalidSubresourceexplicitVkResolveImageInfo2coreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkResolveImageInfo2-srcSubresource-01711YNegativeCommand.ResolveInvalidSubresourceexplicitVkResolveImageInfo2coreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameterYNoneimplicitVkSampleLocationsInfoEXTcoreIf sampleLocationsCount is not 0, pSampleLocations must be a valid pointer to an array of sampleLocationsCount VkSampleLocationEXT structures
VUID-VkSampleLocationsInfoEXT-sType-sTypeYNoneimplicitVkSampleLocationsInfoEXTcoresType must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527YNegativeDynamicState.SampleLocationsexplicitVkSampleLocationsInfoEXTcoresampleLocationsCount must equal sampleLocationsPerPixel × sampleLocationGridSize.width × sampleLocationGridSize.height
VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526YNegativeDynamicState.SampleLocationsexplicitVkSampleLocationsInfoEXTcoresampleLocationsPerPixel must be a valid VkSampleCountFlagBits value that is set in VkPhysicalDeviceSampleLocationsPropertiesEXT::sampleLocationSampleCounts
VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-WindowExtent-09210NNoneexplicitVkSamplerBlockMatchWindowCreateInfoQCOMcoreWindowExtent must not be larger than VkPhysicalDeviceImageProcessing2PropertiesQCOM::maxBlockMatchWindow.
VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-sType-sTypeYNoneimplicitVkSamplerBlockMatchWindowCreateInfoQCOMcoresType must be VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM
VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-windowCompareMode-parameterYNoneimplicitVkSamplerBlockMatchWindowCreateInfoQCOMcorewindowCompareMode must be a valid VkBlockMatchWindowCompareModeQCOM value
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437YNegativeSampler.BorderColorSwizzleexplicitVkSamplerBorderColorComponentMappingCreateInfoEXTcoreThe borderColorSwizzle feature must be enabled
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-components-parameterNNoneimplicitVkSamplerBorderColorComponentMappingCreateInfoEXTcorecomponents must be a valid VkComponentMapping structure
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-sType-sTypeYNoneimplicitVkSamplerBorderColorComponentMappingCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
VUID-VkSamplerCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXTcorepNext must be NULL
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXTcoresType must be VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-08087YNegativeDescriptorBuffer.NotEnabledexplicitVkSamplerCaptureDescriptorDataInfoEXTcoresampler must have been created with VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkSamplerCreateInfo::flags
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-parameterYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXTcoresampler must be a valid VkSampler handle
VUID-VkSamplerCreateInfo-None-01647YNegativeSampler.FilterMinmaxexplicitVkSamplerCreateInfocoreIf sampler Y'CBCR conversion is enabled and the pNext chain includes a VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
VUID-VkSamplerCreateInfo-None-04012YNegativeSampler.CustomBorderColorexplicitVkSamplerCreateInfocoreThe maximum number of samplers with custom border colors which can be simultaneously created on a device is implementation-dependent and specified by the maxCustomBorderColorSamplers member of the VkPhysicalDeviceCustomBorderColorPropertiesEXT structure
VUID-VkSamplerCreateInfo-addressModeU-01078YNegativeSampler.BorderColorValueexplicitVkSamplerCreateInfocoreIf any of addressModeU, addressModeV or addressModeW are VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, borderColor must be a valid VkBorderColor value
VUID-VkSamplerCreateInfo-addressModeU-01079YNegativeSampler.MirrorClampToEdgeNotEnabled12explicitVkSamplerCreateInfocoreIf samplerMirrorClampToEdge is not enabled, and if the VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled, addressModeU, addressModeV and addressModeW must not be VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
VUID-VkSamplerCreateInfo-addressModeU-01646YNegativeSampler.MultiplaneImageSamplerConversionMismatchexplicitVkSamplerCreateInfocoreIf sampler Y'CBCR conversion is enabled, addressModeU, addressModeV, and addressModeW must be VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, anisotropyEnable must be VK_FALSE, and unnormalizedCoordinates must be VK_FALSE
VUID-VkSamplerCreateInfo-addressModeU-parameterYNegativeSampler.MirrorClampToEdgeNotEnabledimplicitVkSamplerCreateInfocoreaddressModeU must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-addressModeV-parameterYNoneimplicitVkSamplerCreateInfocoreaddressModeV must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-addressModeW-parameterYNoneimplicitVkSamplerCreateInfocoreaddressModeW must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-anisotropyEnable-01070YNegativeSampler.AnisotropyFeatureDisabledexplicitVkSamplerCreateInfocoreIf the samplerAnisotropy feature is not enabled, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-anisotropyEnable-01071YNegativeSampler.AnisotropyFeatureEnabledexplicitVkSamplerCreateInfocoreIf anisotropyEnable is VK_TRUE, maxAnisotropy must be between 1.0 and VkPhysicalDeviceLimits::maxSamplerAnisotropy, inclusive
VUID-VkSamplerCreateInfo-borderColor-04011YNegativeSampler.CustomBorderColorexplicitVkSamplerCreateInfocoreIf borderColor is one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, then a VkSamplerCustomBorderColorCreateInfoEXT must be included in the pNext chain
VUID-VkSamplerCreateInfo-borderColor-04442NNoneexplicitVkSamplerCreateInfocoreIf borderColor is one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, and VkSamplerCustomBorderColorCreateInfoEXT::format is not VK_FORMAT_UNDEFINED, VkSamplerCustomBorderColorCreateInfoEXT::customBorderColor must be within the range of values representable in format
VUID-VkSamplerCreateInfo-compareEnable-01080YNegativeSampler.CompareOpValueexplicitVkSamplerCreateInfocoreIf compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value
VUID-VkSamplerCreateInfo-compareEnable-01423YNegativeSampler.FilterMinmaxexplicitVkSamplerCreateInfocoreIf compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
VUID-VkSamplerCreateInfo-customBorderColors-04085YNegativeSampler.CustomBorderColorsFeatureexplicitVkSamplerCreateInfocoreIf the customBorderColors feature is not enabled, borderColor must not be VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT
VUID-VkSamplerCreateInfo-flags-02574YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minFilter and magFilter must be equal
VUID-VkSamplerCreateInfo-flags-02575YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-flags-02576YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-flags-02577YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
VUID-VkSamplerCreateInfo-flags-02578YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-02579YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then compareEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-02580YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then unnormalizedCoordinates must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-06964YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minFilter and magFilter must be VK_FILTER_NEAREST
VUID-VkSamplerCreateInfo-flags-06965YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-flags-06966YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfocore[If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-flags-06967YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
VUID-VkSamplerCreateInfo-flags-06968YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, and if addressModeU or addressModeV is VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, then borderColor must be VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
VUID-VkSamplerCreateInfo-flags-06969YNoneexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-06970YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then compareEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-08110YNegativeDescriptorBuffer.NotEnabledexplicitVkSamplerCreateInfocoreIf flags includes VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkSamplerCreateInfo-flags-parameterYNoneimplicitVkSamplerCreateInfocoreflags must be a valid combination of VkSamplerCreateFlagBits values
VUID-VkSamplerCreateInfo-magFilter-01081YNegativeSampler.AnisotropyFeatureEnabledexplicitVkSamplerCreateInfocoreIf either magFilter or minFilter is VK_FILTER_CUBIC_EXT, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-magFilter-07911YNoneexplicitVkSamplerCreateInfocoreIf the VK_EXT_filter_cubic extension is not enabled and either magFilter or minFilter is VK_FILTER_CUBIC_EXT, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
VUID-VkSamplerCreateInfo-magFilter-parameterYVkLayerTest.InvalidExtEnumimplicitVkSamplerCreateInfocoremagFilter must be a valid VkFilter value
VUID-VkSamplerCreateInfo-maxLod-01973YNegativeSampler.BasicUsageexplicitVkSamplerCreateInfocoremaxLod must be greater than or equal to minLod
VUID-VkSamplerCreateInfo-minFilter-01645YNegativeYcbcr.SamplerexplicitVkSamplerCreateInfocoreIf sampler Y'CBCR conversion is enabled and the potential format features of the sampler Y'CBCR conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, minFilter and magFilter must be equal to the sampler Y'CBCR conversion's chromaFilter
VUID-VkSamplerCreateInfo-minFilter-parameterYNoneimplicitVkSamplerCreateInfocoreminFilter must be a valid VkFilter value
VUID-VkSamplerCreateInfo-mipLodBias-01069YNegativeSampler.BasicUsageexplicitVkSamplerCreateInfocoreThe absolute value of mipLodBias must be less than or equal to VkPhysicalDeviceLimits::maxSamplerLodBias
VUID-VkSamplerCreateInfo-mipmapMode-parameterYNoneimplicitVkSamplerCreateInfocoremipmapMode must be a valid VkSamplerMipmapMode value
VUID-VkSamplerCreateInfo-nonSeamlessCubeMap-06788YNegativeSampler.NonSeamlessCubeMapNotEnabledexplicitVkSamplerCreateInfocoreIf the nonSeamlessCubeMap feature is not enabled, flags must not include VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT
VUID-VkSamplerCreateInfo-pNext-06726YNegativeSampler.ReductionModeFeatureexplicitVkSamplerCreateInfocoreIf samplerFilterMinmax is not enabled and the pNext chain includes a VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
VUID-VkSamplerCreateInfo-pNext-08111YNegativeDescriptorBuffer.NotEnabledexplicitVkSamplerCreateInfocoreIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkSamplerCreateInfo-pNext-pNextYNoneimplicitVkSamplerCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkSamplerBlockMatchWindowCreateInfoQCOM, VkSamplerBorderColorComponentMappingCreateInfoEXT, VkSamplerCubicWeightsCreateInfoQCOM, VkSamplerCustomBorderColorCreateInfoEXT, VkSamplerReductionModeCreateInfo, or VkSamplerYcbcrConversionInfo
VUID-VkSamplerCreateInfo-sType-sTypeYNoneimplicitVkSamplerCreateInfocoresType must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
VUID-VkSamplerCreateInfo-sType-uniqueYNoneimplicitVkSamplerCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSamplerCreateInfo-samplerMipLodBias-04467YNegativePortabilitySubset.SamplerexplicitVkSamplerCreateInfocoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias is VK_FALSE, mipLodBias must be zero
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, minFilter and magFilter must be equal
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01076YNegativeSampler.AnisotropyFeatureEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, compareEnable must be VK_FALSE
VUID-VkSamplerCubicWeightsCreateInfoQCOM-cubicWeights-parameterYNoneimplicitVkSamplerCubicWeightsCreateInfoQCOMcorecubicWeights must be a valid VkCubicFilterWeightsQCOM value
VUID-VkSamplerCubicWeightsCreateInfoQCOM-sType-sTypeYNoneimplicitVkSamplerCubicWeightsCreateInfoQCOMcoresType must be VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014YNegativeSampler.CustomBorderColorexplicitVkSamplerCustomBorderColorCreateInfoEXTcoreIf the customBorderColorWithoutFormat feature is not enabled then format must not be VK_FORMAT_UNDEFINED
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015YNegativeSampler.CustomBorderColorFormatUndefinedexplicitVkSamplerCustomBorderColorCreateInfoEXTcoreIf the sampler is used to sample an image view of VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR, or VK_FORMAT_B5G5R5A1_UNORM_PACK16 format then format must not be VK_FORMAT_UNDEFINED
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-07605YNegativeSampler.CustomBorderColorexplicitVkSamplerCustomBorderColorCreateInfoEXTcoreIf format is not VK_FORMAT_UNDEFINED and format is not a depth/stencil format then the VkSamplerCreateInfo::borderColor type must match the sampled type of the provided format, as shown in the SPIR-V Type column of the Interpretation of Numeric Format table
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-parameterYNoneimplicitVkSamplerCustomBorderColorCreateInfoEXTcoreformat must be a valid VkFormat value
VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sTypeYNoneimplicitVkSamplerCustomBorderColorCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameterYNoneimplicitVkSamplerReductionModeCreateInfocorereductionMode must be a valid VkSamplerReductionMode value
VUID-VkSamplerReductionModeCreateInfo-sType-sTypeYNoneimplicitVkSamplerReductionModeCreateInfocoresType must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657YNegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfocoreIf the potential format features of the sampler Y'CBCR conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, chromaFilter must not be VK_FILTER_LINEAR
VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfocorechromaFilter must be a valid VkFilter value
VUID-VkSamplerYcbcrConversionCreateInfo-components-02581YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfocoreIf the format has a _422 or _420 suffix, then components.g must be the identity swizzle
VUID-VkSamplerYcbcrConversionCreateInfo-components-02582YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfocoreIf the format has a _422 or _420 suffix, then components.a must be the identity swizzle, VK_COMPONENT_SWIZZLE_ONE, or VK_COMPONENT_SWIZZLE_ZERO
VUID-VkSamplerYcbcrConversionCreateInfo-components-02583YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfocoreIf the format has a _422 or _420 suffix, then components.r must be the identity swizzle or VK_COMPONENT_SWIZZLE_B
VUID-VkSamplerYcbcrConversionCreateInfo-components-02584YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfocoreIf the format has a _422 or _420 suffix, then components.b must be the identity swizzle or VK_COMPONENT_SWIZZLE_R
VUID-VkSamplerYcbcrConversionCreateInfo-components-02585YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfocoreIf the format has a _422 or _420 suffix, and if either components.r or components.b is the identity swizzle, both values must be the identity swizzle
VUID-VkSamplerYcbcrConversionCreateInfo-components-parameterNNoneimplicitVkSamplerYcbcrConversionCreateInfocorecomponents must be a valid VkComponentMapping structure
VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656YNegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfocoreIf the potential format features of the sampler Y'CBCR conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT forceExplicitReconstruction must be VK_FALSE
VUID-VkSamplerYcbcrConversionCreateInfo-format-01650YNegativeAndroidExternalResolve.ClearAttachment, NegativeAndroidExternalResolve.DrawDynamicRasterizationSamples, NegativeAndroidExternalResolve.DynamicRendering, NegativeAndroidExternalResolve.DynamicRenderingResolveModeNonNullColor, NegativeAndroidExternalResolve.Framebuffer, NegativeAndroidExternalResolve.ImagelessFramebuffer, NegativeAndroidExternalResolve.ImagelessFramebufferFormat, NegativeAndroidExternalResolve.MissingImageUsage, NegativeAndroidExternalResolve.PipelineBarrierUnused, NegativeAndroidExternalResolve.RenderPassAndFramebuffer, NegativeYcbcr.Sampler, PositiveAndroidExternalResolve.DynamicRendering, PositiveAndroidExternalResolve.ImagelessFramebuffer, PositiveAndroidExternalResolve.PipelineBarrier, PositiveAndroidExternalResolve.RenderPassAndFramebufferexplicitVkSamplerYcbcrConversionCreateInfocoreThe potential format features of the sampler Y'CBCR conversion must support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT or VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
VUID-VkSamplerYcbcrConversionCreateInfo-format-01904YNegativeAndroidHardwareBuffer.CreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfocoreIf an external format conversion is being created, format must be VK_FORMAT_UNDEFINED
VUID-VkSamplerYcbcrConversionCreateInfo-format-04061YNegativeAndroidHardwareBuffer.CreateYCbCrSampler, NegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfocoreIf an external format conversion is not being created, format must represent unsigned normalized values (i.e. the format must be a UNORM format)
VUID-VkSamplerYcbcrConversionCreateInfo-format-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfocoreformat must be a valid VkFormat value
VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09207NNoneexplicitVkSamplerYcbcrConversionCreateInfocoreIf the pNext chain includes a VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM structure, and if the ycbcrDegamma feature is not enabled, then VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM::enableYDegamma must be VK_FALSE
VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09208NNoneexplicitVkSamplerYcbcrConversionCreateInfocoreIf the pNext chain includes a VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM structure, and if the ycbcrDegamma feature is not enabled, then VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM::enableCbCrDegamma must be VK_FALSE
VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09209NNoneexplicitVkSamplerYcbcrConversionCreateInfocoreIf the pNext chain includes a VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM structure, format must be a format with 8-bit R, G, and B components.
VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNextYNoneimplicitVkSamplerYcbcrConversionCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExternalFormatANDROID, VkExternalFormatQNX, or VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
VUID-VkSamplerYcbcrConversionCreateInfo-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionCreateInfocoresType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
VUID-VkSamplerYcbcrConversionCreateInfo-sType-uniqueYNoneimplicitVkSamplerYcbcrConversionCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651YNegativeAndroidHardwareBuffer.CreateYCbCrSampler, NegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfocoreIf the potential format features of the sampler Y'CBCR conversion do not support VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_COSITED_EVEN if the corresponding components are downsampled
VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652YNegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfocoreIf the potential format features of the sampler Y'CBCR conversion do not support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_MIDPOINT if the corresponding components are downsampled
VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfocorexChromaOffset must be a valid VkChromaLocation value
VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfocoreyChromaOffset must be a valid VkChromaLocation value
VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfocoreIf ycbcrModel is not VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, then components.r, components.g, and components.b must correspond to components of the format; that is, components.r, components.g, and components.b must not be VK_COMPONENT_SWIZZLE_ZERO or VK_COMPONENT_SWIZZLE_ONE, and must not correspond to a component containing zero or one as a consequence of conversion to RGBA
VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfocoreycbcrModel must be a valid VkSamplerYcbcrModelConversion value
VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748NNoneexplicitVkSamplerYcbcrConversionCreateInfocoreIf ycbcrRange is VK_SAMPLER_YCBCR_RANGE_ITU_NARROW then the R, G and B components obtained by applying the component swizzle to format must each have a bit-depth greater than or equal to 8
VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfocoreycbcrRange must be a valid VkSamplerYcbcrRange value
VUID-VkSamplerYcbcrConversionImageFormatProperties-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionImageFormatPropertiescoresType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
VUID-VkSamplerYcbcrConversionInfo-conversion-parameterYNoneimplicitVkSamplerYcbcrConversionInfocoreconversion must be a valid VkSamplerYcbcrConversion handle
VUID-VkSamplerYcbcrConversionInfo-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionInfocoresType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
VUID-VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMcoresType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM
VUID-VkScreenBufferFormatPropertiesQNX-sType-sTypeYNoneimplicitVkScreenBufferFormatPropertiesQNXcoresType must be VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX
VUID-VkScreenBufferPropertiesQNX-pNext-pNextYNoneimplicitVkScreenBufferPropertiesQNXcorepNext must be NULL or a pointer to a valid instance of VkScreenBufferFormatPropertiesQNX
VUID-VkScreenBufferPropertiesQNX-sType-sTypeYNoneimplicitVkScreenBufferPropertiesQNXcoresType must be VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
VUID-VkScreenBufferPropertiesQNX-sType-uniqueYNoneimplicitVkScreenBufferPropertiesQNXcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkScreenSurfaceCreateInfoQNX-context-04741NNoneexplicitVkScreenSurfaceCreateInfoQNXcorecontext must point to a valid QNX Screen struct _screen_context
VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmaskYNoneimplicitVkScreenSurfaceCreateInfoQNXcoreflags must be 0
VUID-VkScreenSurfaceCreateInfoQNX-pNext-pNextYNoneimplicitVkScreenSurfaceCreateInfoQNXcorepNext must be NULL
VUID-VkScreenSurfaceCreateInfoQNX-sType-sTypeYNoneimplicitVkScreenSurfaceCreateInfoQNXcoresType must be VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
VUID-VkScreenSurfaceCreateInfoQNX-window-04742NNoneexplicitVkScreenSurfaceCreateInfoQNXcorewindow must point to a valid QNX Screen struct _screen_window
VUID-VkSemaphoreCreateInfo-flags-zerobitmaskYVkLayerTest.ZeroBitmaskimplicitVkSemaphoreCreateInfocoreflags must be 0
VUID-VkSemaphoreCreateInfo-pNext-06789YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkSemaphoreCreateInfocoreIf the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT
VUID-VkSemaphoreCreateInfo-pNext-pNextYNoneimplicitVkSemaphoreCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalObjectCreateInfoEXT, VkExportSemaphoreCreateInfo, VkExportSemaphoreWin32HandleInfoKHR, VkImportMetalSharedEventInfoEXT, VkQueryLowLatencySupportNV, or VkSemaphoreTypeCreateInfo
VUID-VkSemaphoreCreateInfo-sType-sTypeYNoneimplicitVkSemaphoreCreateInfocoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
VUID-VkSemaphoreCreateInfo-sType-uniqueYNoneimplicitVkSemaphoreCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkSemaphoreGetFdInfoKHR-handleType-01132YNegativeExternalMemorySync.Semaphore, NegativeExternalMemorySync.SyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHRcorehandleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore's current payload was created
VUID-VkSemaphoreGetFdInfoKHR-handleType-01134NNoneexplicitVkSemaphoreGetFdInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore
VUID-VkSemaphoreGetFdInfoKHR-handleType-01135NNoneexplicitVkSemaphoreGetFdInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution
VUID-VkSemaphoreGetFdInfoKHR-handleType-01136YNegativeExternalMemorySync.SemaphoreexplicitVkSemaphoreGetFdInfoKHRcorehandleType must be defined as a POSIX file descriptor handle
VUID-VkSemaphoreGetFdInfoKHR-handleType-03253YNegativeExternalMemorySync.SyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkSemaphoreGetFdInfoKHR-handleType-03254YNegativeExternalMemorySync.Semaphore, NegativeExternalMemorySync.SyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, semaphore must have an associated semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution
VUID-VkSemaphoreGetFdInfoKHR-handleType-parameterYNoneimplicitVkSemaphoreGetFdInfoKHRcorehandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetFdInfoKHR-pNext-pNextYNoneimplicitVkSemaphoreGetFdInfoKHRcorepNext must be NULL
VUID-VkSemaphoreGetFdInfoKHR-sType-sTypeYNoneimplicitVkSemaphoreGetFdInfoKHRcoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133YNegativeExternalMemorySync.SyncFdExportFromImportedSemaphoreexplicitVkSemaphoreGetFdInfoKHRcoresemaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload's handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType
VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameterYNoneimplicitVkSemaphoreGetFdInfoKHRcoresemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126YNegativeExternalMemorySync.SemaphoreexplicitVkSemaphoreGetWin32HandleInfoKHRcorehandleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore's current payload was created
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127NNoneexplicitVkSemaphoreGetWin32HandleInfoKHRcoreIf handleType is defined as an NT handle, vkGetSemaphoreWin32HandleKHR must be called no more than once for each valid unique combination of semaphore and handleType
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129NNoneexplicitVkSemaphoreGetWin32HandleInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130NNoneexplicitVkSemaphoreGetWin32HandleInfoKHRcoreIf handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131YNegativeExternalMemorySync.SemaphoreexplicitVkSemaphoreGetWin32HandleInfoKHRcorehandleType must be defined as an NT handle or a global share handle
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkSemaphoreGetWin32HandleInfoKHRcorehandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkSemaphoreGetWin32HandleInfoKHRcorepNext must be NULL
VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkSemaphoreGetWin32HandleInfoKHRcoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128YNegativeExternalMemorySync.Win32ExportFromImportedSemaphoreexplicitVkSemaphoreGetWin32HandleInfoKHRcoresemaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload's handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType
VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameterYNoneimplicitVkSemaphoreGetWin32HandleInfoKHRcoresemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcorehandleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore's current payload was created
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcoreIf handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcoreIf handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcorehandleType must be defined as a Zircon event handle
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcorehandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcorepNext must be NULL
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcoresemaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload's handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04763NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcoresemaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameterYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIAcoresemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSignalInfo-pNext-pNextYNoneimplicitVkSemaphoreSignalInfocorepNext must be NULL
VUID-VkSemaphoreSignalInfo-sType-sTypeYNoneimplicitVkSemaphoreSignalInfocoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
VUID-VkSemaphoreSignalInfo-semaphore-03257YNegativeSyncObject.SignalSemaphoreTypeexplicitVkSemaphoreSignalInfocoresemaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreSignalInfo-semaphore-parameterYNoneimplicitVkSemaphoreSignalInfocoresemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSignalInfo-value-03258YNegativeSyncObject.SignalSemaphoreValueexplicitVkSemaphoreSignalInfocorevalue must have a value greater than the current value of the semaphore
VUID-VkSemaphoreSignalInfo-value-03259YNegativeSyncObject.SignalSemaphoreValue, NegativeSyncObject.Sync2SignalSemaphoreValueexplicitVkSemaphoreSignalInfocorevalue must be less than the value of any pending semaphore signal operations
VUID-VkSemaphoreSignalInfo-value-03260YNegativeSyncObject.SignalSemaphoreValueexplicitVkSemaphoreSignalInfocorevalue must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkSemaphoreSubmitInfo-device-03888NNoneexplicitVkSemaphoreSubmitInfocoreIf the device that semaphore was created on is not a device group, deviceIndex must be 0
VUID-VkSemaphoreSubmitInfo-device-03889NNoneexplicitVkSemaphoreSubmitInfocoreIf the device that semaphore was created on is a device group, deviceIndex must be a valid device index
VUID-VkSemaphoreSubmitInfo-pNext-pNextYNoneimplicitVkSemaphoreSubmitInfocorepNext must be NULL
VUID-VkSemaphoreSubmitInfo-sType-sTypeYNoneimplicitVkSemaphoreSubmitInfocoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO
VUID-VkSemaphoreSubmitInfo-semaphore-parameterYNoneimplicitVkSemaphoreSubmitInfocoresemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSubmitInfo-stageMask-03929YNoneexplicitVkSemaphoreSubmitInfocoreIf the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkSemaphoreSubmitInfo-stageMask-03930YNoneexplicitVkSemaphoreSubmitInfocoreIf the tessellationShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSemaphoreSubmitInfo-stageMask-03931YNoneexplicitVkSemaphoreSubmitInfocoreIf the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03932YNoneexplicitVkSemaphoreSubmitInfocoreIf the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03933YNoneexplicitVkSemaphoreSubmitInfocoreIf the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03934YNoneexplicitVkSemaphoreSubmitInfocoreIf the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03935YNoneexplicitVkSemaphoreSubmitInfocoreIf the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-04957NNoneexplicitVkSemaphoreSubmitInfocoreIf the subpassShading feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkSemaphoreSubmitInfo-stageMask-04995NNoneexplicitVkSemaphoreSubmitInfocoreIf the invocationMask feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkSemaphoreSubmitInfo-stageMask-07316YNoneexplicitVkSemaphoreSubmitInfocoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSemaphoreSubmitInfo-stageMask-07946YNoneexplicitVkSemaphoreSubmitInfocoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkSemaphoreSubmitInfo-stageMask-parameterYNoneimplicitVkSemaphoreSubmitInfocorestageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkSemaphoreTypeCreateInfo-sType-sTypeYNoneimplicitVkSemaphoreTypeCreateInfocoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279YNegativeSyncObject.SemaphoreTypeCreateInfoCore, NegativeSyncObject.SemaphoreTypeCreateInfoExtensionexplicitVkSemaphoreTypeCreateInfocoreIf semaphoreType is VK_SEMAPHORE_TYPE_BINARY, initialValue must be zero
VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameterYNoneimplicitVkSemaphoreTypeCreateInfocoresemaphoreType must be a valid VkSemaphoreType value
VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252YNegativeSyncObject.SemaphoreTypeCreateInfoCore, NegativeSyncObject.SemaphoreTypeCreateInfoExtensionexplicitVkSemaphoreTypeCreateInfocoreIf the timelineSemaphore feature is not enabled, semaphoreType must not equal VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreWaitInfo-flags-parameterYNoneimplicitVkSemaphoreWaitInfocoreflags must be a valid combination of VkSemaphoreWaitFlagBits values
VUID-VkSemaphoreWaitInfo-pNext-pNextYNoneimplicitVkSemaphoreWaitInfocorepNext must be NULL
VUID-VkSemaphoreWaitInfo-pSemaphores-03256YNegativeSyncObject.WaitSemaphoresTypeexplicitVkSemaphoreWaitInfocoreAll of the elements of pSemaphores must reference a semaphore that was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreWaitInfo-pSemaphores-parameterYNoneimplicitVkSemaphoreWaitInfocorepSemaphores must be a valid pointer to an array of semaphoreCount valid VkSemaphore handles
VUID-VkSemaphoreWaitInfo-pValues-parameterYNoneimplicitVkSemaphoreWaitInfocorepValues must be a valid pointer to an array of semaphoreCount uint64_t values
VUID-VkSemaphoreWaitInfo-sType-sTypeYNoneimplicitVkSemaphoreWaitInfocoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylengthYNoneimplicitVkSemaphoreWaitInfocoresemaphoreCount must be greater than 0
VUID-VkSetDescriptorBufferOffsetsInfoEXT-None-09495YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkSetDescriptorBufferOffsetsInfoEXT-firstSet-08066YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreThe sum of firstSet and setCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkSetDescriptorBufferOffsetsInfoEXT-firstSet-09006YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreThe VkDescriptorSetLayout for each set from firstSet to firstSet + setCount when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set
VUID-VkSetDescriptorBufferOffsetsInfoEXT-layout-09496NNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkSetDescriptorBufferOffsetsInfoEXT-layout-parameterYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcoreIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-08064YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreEach element of pBufferIndices must be less than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-08065YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreEach element of pBufferIndices must reference a valid descriptor buffer binding set by a previous call to vkCmdBindDescriptorBuffersEXT in commandBuffer
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-parameterYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcorepBufferIndices must be a valid pointer to an array of setCount uint32_t values
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pNext-pNextYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcorepNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08061YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreThe offsets in pOffsets must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08063YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreThe offsets in pOffsets must be small enough such that any descriptor binding referenced by layout without the VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT flag computes a valid address inside the underlying VkBuffer
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08126NNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreThe offsets in pOffsets must be small enough such that any location accessed by a shader as a sampler descriptor must be within VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferRange of the sampler descriptor buffer binding
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08127NNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTcoreThe offsets in pOffsets must be small enough such that any location accessed by a shader as a resource descriptor must be within VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferRange of the resource descriptor buffer binding
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-parameterYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcorepOffsets must be a valid pointer to an array of setCount VkDeviceSize values
VUID-VkSetDescriptorBufferOffsetsInfoEXT-sType-sTypeYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcoresType must be VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT
VUID-VkSetDescriptorBufferOffsetsInfoEXT-sType-uniqueYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSetDescriptorBufferOffsetsInfoEXT-setCount-arraylengthYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcoresetCount must be greater than 0
VUID-VkSetDescriptorBufferOffsetsInfoEXT-stageFlags-parameterYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkSetDescriptorBufferOffsetsInfoEXT-stageFlags-requiredbitmaskYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTcorestageFlags must not be 0
VUID-VkSetLatencyMarkerInfoNV-marker-parameterYNoneimplicitVkSetLatencyMarkerInfoNVcoremarker must be a valid VkLatencyMarkerNV value
VUID-VkSetLatencyMarkerInfoNV-sType-sTypeYNoneimplicitVkSetLatencyMarkerInfoNVcoresType must be VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV
VUID-VkShaderCreateInfoEXT-codeSize-08735YNegativeShaderObject.SpirvCodeSizeexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, codeSize must be a multiple of 4
VUID-VkShaderCreateInfoEXT-codeSize-arraylengthYNoneimplicitVkShaderCreateInfoEXTcorecodeSize must be greater than 0
VUID-VkShaderCreateInfoEXT-codeType-08872YNegativeShaderObject.MissingTessellationEvaluationSubdivisionexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the type of subdivision
VUID-VkShaderCreateInfoEXT-codeType-08873YNegativeShaderObject.MissingTessellationEvaluationOrientationexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the orientation of triangles generated by the tessellator
VUID-VkShaderCreateInfoEXT-codeType-08874YNegativeShaderObject.MissingTessellationEvaluationSpacingexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives
VUID-VkShaderCreateInfoEXT-codeType-08875YNegativeShaderObject.MissingTessellationEvaluationPatchSizeexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the output patch size
VUID-VkShaderCreateInfoEXT-codeType-parameterYNoneimplicitVkShaderCreateInfoEXTcorecodeType must be a valid VkShaderCodeTypeEXT value
VUID-VkShaderCreateInfoEXT-flags-08412YNegativeShaderObject.LinkedComputeShaderexplicitVkShaderCreateInfoEXTcoreIf stage is not VK_SHADER_STAGE_TASK_BIT_EXT, VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08414YNegativeShaderObject.InvalidMeshShaderExtFlagsexplicitVkShaderCreateInfoEXTcoreIf stage is not VK_SHADER_STAGE_MESH_BIT_EXT, flags must not include VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08416YNegativeShaderObject.ComputeVaryingAndFullSubgroupsexplicitVkShaderCreateInfoEXTcoreIf flags includes both VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, the local workgroup size in the X dimension of the shader must be a multiple of maxSubgroupSize
VUID-VkShaderCreateInfoEXT-flags-08417YNegativeShaderObject.ComputeVaryingSubgroupsexplicitVkShaderCreateInfoEXTcoreIf flags includes VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT but not VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and no VkShaderRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, the local workgroup size in the X dimension of the shader must be a multiple of subgroupSize
VUID-VkShaderCreateInfoEXT-flags-08485YNegativeShaderObject.InvalidFlagsexplicitVkShaderCreateInfoEXTcoreIf stage is not VK_SHADER_STAGE_COMPUTE_BIT, flags must not include VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08486YNegativeShaderObject.InvalidFlagsexplicitVkShaderCreateInfoEXTcoreIf stage is not VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08487YNegativeShaderObject.InvalidShaderCreateInfoFlagsexplicitVkShaderCreateInfoEXTcoreIf the attachmentFragmentShadingRate feature is not enabled, flags must not include VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08488YNegativeShaderObject.InvalidFlagsexplicitVkShaderCreateInfoEXTcoreIf stage is not VK_SHADER_STAGE_FRAGMENT_BIT, flags must not include VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08489YNegativeShaderObject.InvalidShaderCreateInfoFlagsexplicitVkShaderCreateInfoEXTcoreIf the fragmentDensityMap feature is not enabled, flags must not include VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08992YNegativeShaderObject.InvalidFlags, NegativeShaderObject.InvalidRequireFullSubgroupsFlagexplicitVkShaderCreateInfoEXTcoreIf flags includes VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, stage must be one of VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_TASK_BIT_EXT, or VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkShaderCreateInfoEXT-flags-09404YNegativeShaderObject.MissingSubgroupSizeControlFeatureexplicitVkShaderCreateInfoEXTcoreIf flags includes VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, the subgroupSizeControl feature must be enabled
VUID-VkShaderCreateInfoEXT-flags-09405YNegativeShaderObject.MissingComputeFullSubgroupsexplicitVkShaderCreateInfoEXTcoreIf flags includes VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, the computeFullSubgroups feature must be enabled
VUID-VkShaderCreateInfoEXT-flags-parameterYNoneimplicitVkShaderCreateInfoEXTcoreflags must be a valid combination of VkShaderCreateFlagBitsEXT values
VUID-VkShaderCreateInfoEXT-nextStage-08427YNegativeShaderObject.VertexNextStageexplicitVkShaderCreateInfoEXTcoreIf stage is VK_SHADER_STAGE_VERTEX_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, and VK_SHADER_STAGE_FRAGMENT_BIT
VUID-VkShaderCreateInfoEXT-nextStage-08428YNegativeShaderObject.UnsupportedNextStageexplicitVkShaderCreateInfoEXTcoreIf the tessellationShader feature is not enabled, nextStage must not include VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-VkShaderCreateInfoEXT-nextStage-08429YNegativeShaderObject.UnsupportedNextStageexplicitVkShaderCreateInfoEXTcoreIf the geometryShader feature is not enabled, nextStage must not include VK_SHADER_STAGE_GEOMETRY_BIT
VUID-VkShaderCreateInfoEXT-nextStage-08430YNegativeShaderObject.InvalidTessellationControlNextStage, NegativeShaderObject.TessellationControlNextStageexplicitVkShaderCreateInfoEXTcoreIf stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-VkShaderCreateInfoEXT-nextStage-08431YNegativeShaderObject.InvalidTessellationEvaluationNextStage, NegativeShaderObject.TessellationEvaluationNextStageexplicitVkShaderCreateInfoEXTcoreIf stage is VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_GEOMETRY_BIT and VK_SHADER_STAGE_FRAGMENT_BIT
VUID-VkShaderCreateInfoEXT-nextStage-08433YNegativeShaderObject.GeometryNextStage, NegativeShaderObject.InvalidGeometryNextStageexplicitVkShaderCreateInfoEXTcoreIf stage is VK_SHADER_STAGE_GEOMETRY_BIT, nextStage must not include any bits other than VK_SHADER_STAGE_FRAGMENT_BIT
VUID-VkShaderCreateInfoEXT-nextStage-08434YNegativeShaderObject.FragmentNextStage, NegativeShaderObject.InvalidFragmentNextStageexplicitVkShaderCreateInfoEXTcoreIf stage is VK_SHADER_STAGE_FRAGMENT_BIT or VK_SHADER_STAGE_COMPUTE_BIT, nextStage must be 0
VUID-VkShaderCreateInfoEXT-nextStage-08435YNegativeShaderObject.InvalidTaskNextStage, NegativeShaderObject.TaskNVNextStage, NegativeShaderObject.TaskNextStageexplicitVkShaderCreateInfoEXTcoreIf stage is VK_SHADER_STAGE_TASK_BIT_EXT, nextStage must not include any bits other than VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkShaderCreateInfoEXT-nextStage-08436YNegativeShaderObject.InvalidMeshNextStage, NegativeShaderObject.MeshNVNextStage, NegativeShaderObject.MeshNextStageexplicitVkShaderCreateInfoEXTcoreIf stage is VK_SHADER_STAGE_MESH_BIT_EXT, nextStage must not include any bits other than VK_SHADER_STAGE_FRAGMENT_BIT
VUID-VkShaderCreateInfoEXT-nextStage-parameterYNoneimplicitVkShaderCreateInfoEXTcorenextStage must be a valid combination of VkShaderStageFlagBits values
VUID-VkShaderCreateInfoEXT-pCode-08448NNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistances
VUID-VkShaderCreateInfoEXT-pCode-08449NNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistances
VUID-VkShaderCreateInfoEXT-pCode-08450NNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances
VUID-VkShaderCreateInfoEXT-pCode-08451YNegativeShaderObject.MaxSampleMaskWordsexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the SampleMask BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxSampleMaskWords
VUID-VkShaderCreateInfoEXT-pCode-08452NNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated with CullDistance
VUID-VkShaderCreateInfoEXT-pCode-08453YNegativeShaderObject.TessellationPatchSizeexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-VkShaderCreateInfoEXT-pCode-08454YNegativeShaderObject.GeometryShaderMaxOutputVerticesexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying a maximum output vertex count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryOutputVertices
VUID-VkShaderCreateInfoEXT-pCode-08455YNegativeShaderObject.GeometryShaderMaxInvocationsexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying an invocation count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryShaderInvocations
VUID-VkShaderCreateInfoEXT-pCode-08456NNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is a pre-rasterization shader stage, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitive
VUID-VkShaderCreateInfoEXT-pCode-08457NNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is a pre-rasterization shader stage, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitive
VUID-VkShaderCreateInfoEXT-pCode-08458NNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated with CullDistance
VUID-VkShaderCreateInfoEXT-pCode-08459NNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth
VUID-VkShaderCreateInfoEXT-pCode-08460YNegativeShaderObject.SpecializationAppliedexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, the shader code in pCode must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants
VUID-VkShaderCreateInfoEXT-pCode-08492YNegativeShaderObject.BinaryCodeAlignmentexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_BINARY_EXT, pCode must be aligned to 16 bytes
VUID-VkShaderCreateInfoEXT-pCode-08493YNegativeShaderObject.SpirvCodeAlignmentexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must be aligned to 4 bytes
VUID-VkShaderCreateInfoEXT-pCode-08736YNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification
VUID-VkShaderCreateInfoEXT-pCode-08737YNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix
VUID-VkShaderCreateInfoEXT-pCode-08738YNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must declare the Shader capability for SPIR-V code
VUID-VkShaderCreateInfoEXT-pCode-08739YNoneexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix
VUID-VkShaderCreateInfoEXT-pCode-08740YNegativeShaderObject.Atomics, NegativeShaderObject.CreateShadersWithoutEnabledFeatures, NegativeShaderObject.UnsupportedSpirvCapabilityexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied
VUID-VkShaderCreateInfoEXT-pCode-08741YNegativeShaderObject.UnsupportedSpirvExtensionexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix
VUID-VkShaderCreateInfoEXT-pCode-08742YNegativeShaderObject.SpirvExtensionRequirementsNotMetexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied
VUID-VkShaderCreateInfoEXT-pCode-parameterYNoneimplicitVkShaderCreateInfoEXTcorepCode must be a valid pointer to an array of codeSize bytes
VUID-VkShaderCreateInfoEXT-pName-08440YNegativeShaderObject.MissingEntrypointexplicitVkShaderCreateInfoEXTcoreIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pName must be the name of an OpEntryPoint in pCode with an execution model that matches stage
VUID-VkShaderCreateInfoEXT-pName-parameterNNoneimplicitVkShaderCreateInfoEXTcoreIf pName is not NULL, pName must be a null-terminated UTF-8 string
VUID-VkShaderCreateInfoEXT-pNext-pNextYPositiveGpuAVShaderObject.SelectInstrumentedShadersimplicitVkShaderCreateInfoEXTcorepNext must be NULL or a pointer to a valid instance of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo
VUID-VkShaderCreateInfoEXT-pPushConstantRanges-parameterNNoneimplicitVkShaderCreateInfoEXTcoreIf pushConstantRangeCount is not 0, and pPushConstantRanges is not NULL, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures
VUID-VkShaderCreateInfoEXT-pSetLayouts-parameterYNoneimplicitVkShaderCreateInfoEXTcoreIf setLayoutCount is not 0, and pSetLayouts is not NULL, pSetLayouts must be a valid pointer to an array of setLayoutCount valid VkDescriptorSetLayout handles
VUID-VkShaderCreateInfoEXT-pSpecializationInfo-parameterNNoneimplicitVkShaderCreateInfoEXTcoreIf pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure
VUID-VkShaderCreateInfoEXT-sType-sTypeYNoneimplicitVkShaderCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT
VUID-VkShaderCreateInfoEXT-sType-uniqueYNoneimplicitVkShaderCreateInfoEXTcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkShaderCreateInfoEXT-stage-08418YNoneexplicitVkShaderCreateInfoEXTcorestage must not be VK_SHADER_STAGE_ALL_GRAPHICS or VK_SHADER_STAGE_ALL
VUID-VkShaderCreateInfoEXT-stage-08419YNegativeShaderObject.CreateShadersWithoutEnabledFeaturesexplicitVkShaderCreateInfoEXTcoreIf the tessellationShader feature is not enabled, stage must not be VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-VkShaderCreateInfoEXT-stage-08420YNegativeShaderObject.CreateShadersWithoutEnabledFeaturesexplicitVkShaderCreateInfoEXTcoreIf the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT
VUID-VkShaderCreateInfoEXT-stage-08421YNegativeShaderObject.CreateMeshShadersWithoutEnabledFeaturesexplicitVkShaderCreateInfoEXTcoreIf the taskShader feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT
VUID-VkShaderCreateInfoEXT-stage-08422YNegativeShaderObject.CreateMeshShadersWithoutEnabledFeaturesexplicitVkShaderCreateInfoEXTcoreIf the meshShader feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkShaderCreateInfoEXT-stage-08425YNegativeShaderObject.InvalidStageexplicitVkShaderCreateInfoEXTcorestage must not be VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkShaderCreateInfoEXT-stage-08426YNegativeShaderObject.InvalidStageexplicitVkShaderCreateInfoEXTcorestage must not be VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
VUID-VkShaderCreateInfoEXT-stage-parameterYNoneimplicitVkShaderCreateInfoEXTcorestage must be a valid VkShaderStageFlagBits value
VUID-VkShaderModuleCreateInfo-codeSize-01085YNegativeShaderSpirv.CodeSizeexplicitVkShaderModuleCreateInfocorecodeSize must be greater than 0
VUID-VkShaderModuleCreateInfo-codeSize-08735YNegativeShaderSpirv.CodeSizeexplicitVkShaderModuleCreateInfocoreIf pCode is a pointer to SPIR-V code, codeSize must be a multiple of 4
VUID-VkShaderModuleCreateInfo-flags-zerobitmaskYNoneimplicitVkShaderModuleCreateInfocoreflags must be 0
VUID-VkShaderModuleCreateInfo-pCode-01379NNoneexplicitVkShaderModuleCreateInfocoreIf pCode is a pointer to GLSL code, it must be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification
VUID-VkShaderModuleCreateInfo-pCode-07912YNegativeShaderSpirv.MagicexplicitVkShaderModuleCreateInfocoreIf the VK_NV_glsl_shader extension is not enabled, pCode must be a pointer to SPIR-V code
VUID-VkShaderModuleCreateInfo-pCode-08736YNoneexplicitVkShaderModuleCreateInfocoreIf pCode is a pointer to SPIR-V code, pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification
VUID-VkShaderModuleCreateInfo-pCode-08737YNegativeAtomic.ImageInt64, NegativeShaderCompute.WorkgroupMemoryExplicitLayout, NegativeShaderInterface.InvalidStaticSpirv, NegativeShaderSpirv.InvalidExtension, NegativeShaderSpirv.NoScalarBlockLayout10, NegativeShaderSpirv.NoScalarBlockLayout12, NegativeShaderSpirv.NoUniformBufferStandardLayout10, NegativeShaderSpirv.NoUniformBufferStandardLayout12, NegativeShaderSpirv.Storage8and16bitCapabilityexplicitVkShaderModuleCreateInfocoreIf pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix
VUID-VkShaderModuleCreateInfo-pCode-08738YNoneexplicitVkShaderModuleCreateInfocoreIf pCode is a pointer to SPIR-V code, pCode must declare the Shader capability for SPIR-V code
VUID-VkShaderModuleCreateInfo-pCode-08739YNegativeShaderCooperativeMatrix.KHRUnsupportedStageexplicitVkShaderModuleCreateInfocoreIf pCode is a pointer to SPIR-V code, pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix
VUID-VkShaderModuleCreateInfo-pCode-08740YNegativeAtomic.Float, NegativeAtomic.Float2, NegativeAtomic.ImageInt64, NegativeAtomic.Int64, NegativeGeometryTessellation.GeometryShaderEnabled, NegativeGeometryTessellation.GeometryStreamsCapability, NegativeGeometryTessellation.PipelineTessellationPointSize, NegativeGeometryTessellation.TessellationShaderEnabled, NegativePipeline.ShaderDrawParametersNotEnabled10, NegativePipeline.ShaderDrawParametersNotEnabled11, NegativeShaderCompute.WorkgroupMemoryExplicitLayout, NegativeShaderSpirv.ComputeShaderDerivativesEnabled, NegativeShaderSpirv.DemoteToHelperInvocation, NegativeShaderSpirv.DynamicUniformIndex, NegativeShaderSpirv.FragmentShaderBarycentricEnabled, NegativeShaderSpirv.FragmentShaderInterlockEnabled, NegativeShaderSpirv.QueueFamilyMemoryScope, NegativeShaderSpirv.ShaderFloatControl, NegativeShaderSpirv.ShaderImageFootprintEnabled, NegativeShaderSpirv.ShaderNotEnabled, NegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderStorageImage.MissingFormatRead, NegativeShaderStorageImage.MissingFormatWrite, NegativeSubgroup.Properties, NegativeSubpass.SubpassInputWithoutFormat, PositiveAtomic.Float2explicitVkShaderModuleCreateInfocoreIf pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied
VUID-VkShaderModuleCreateInfo-pCode-08741YNegativeShaderSpirv.InvalidExtensionexplicitVkShaderModuleCreateInfocoreIf pCode is a pointer to SPIR-V code, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix
VUID-VkShaderModuleCreateInfo-pCode-08742YNegativeAtomic.Float, NegativeAtomic.Float2, NegativeAtomic.ImageInt64, NegativePipeline.ShaderDrawParametersNotEnabled10, NegativeShaderCompute.WorkgroupMemoryExplicitLayout, NegativeShaderSpirv.ComputeShaderDerivativesEnabled, NegativeShaderSpirv.FragmentShaderInterlockEnabled, NegativeShaderSpirv.NonSemanticInfoEnabled, NegativeShaderSpirv.ShaderImageFootprintEnabled, NegativeSubgroup.PropertiesexplicitVkShaderModuleCreateInfocoreIf pCode is a pointer to SPIR-V code, and pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied
VUID-VkShaderModuleCreateInfo-pCode-parameterYNoneimplicitVkShaderModuleCreateInfocorepCode must be a valid pointer to an array of (codeSize/4) uint32_t values
VUID-VkShaderModuleCreateInfo-sType-sTypeYNoneimplicitVkShaderModuleCreateInfocoresType must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
VUID-VkShaderModuleIdentifierEXT-pNext-pNextYNoneimplicitVkShaderModuleIdentifierEXTcorepNext must be NULL
VUID-VkShaderModuleIdentifierEXT-sType-sTypeYNoneimplicitVkShaderModuleIdentifierEXTcoresType must be VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
VUID-VkShaderModuleValidationCacheCreateInfoEXT-sType-sTypeYNoneimplicitVkShaderModuleValidationCacheCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameterYNoneimplicitVkShaderModuleValidationCacheCreateInfoEXTcorevalidationCache must be a valid VkValidationCacheEXT handle
VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameterNNoneimplicitVkShadingRatePaletteNVcorepShadingRatePaletteEntries must be a valid pointer to an array of shadingRatePaletteEntryCount valid VkShadingRatePaletteEntryNV values
VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkShadingRatePaletteNVcoreshadingRatePaletteEntryCount must be between 1 and VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRatePaletteSize, inclusive
VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylengthNNoneimplicitVkShadingRatePaletteNVcoreshadingRatePaletteEntryCount must be greater than 0
VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sTypeYNoneimplicitVkSharedPresentSurfaceCapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseBufferMemoryBindInfocorebindCount must be greater than 0
VUID-VkSparseBufferMemoryBindInfo-buffer-parameterYNoneimplicitVkSparseBufferMemoryBindInfocorebuffer must be a valid VkBuffer handle
VUID-VkSparseBufferMemoryBindInfo-pBinds-parameterYNoneimplicitVkSparseBufferMemoryBindInfocorepBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures
VUID-VkSparseImageFormatProperties2-pNext-pNextYNoneimplicitVkSparseImageFormatProperties2corepNext must be NULL
VUID-VkSparseImageFormatProperties2-sType-sTypeYNoneimplicitVkSparseImageFormatProperties2coresType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
VUID-VkSparseImageMemoryBind-extent-01108YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindcoreextent.width must either be a multiple of the sparse image block width of the image, or else (extent.width + offset.x) must equal the width of the image subresource
VUID-VkSparseImageMemoryBind-extent-01110YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindcoreextent.height must either be a multiple of the sparse image block height of the image, or else (extent.height + offset.y) must equal the height of the image subresource
VUID-VkSparseImageMemoryBind-extent-01112YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindcoreextent.depth must either be a multiple of the sparse image block depth of the image, or else (extent.depth + offset.z) must equal the depth of the image subresource
VUID-VkSparseImageMemoryBind-extent-09388YNegativeSparseImage.ImageMemoryBindInvalidExtentexplicitVkSparseImageMemoryBindcoreextent.width must be greater than 0
VUID-VkSparseImageMemoryBind-extent-09389YNegativeSparseImage.ImageMemoryBindInvalidExtentexplicitVkSparseImageMemoryBindcoreextent.height must be greater than 0
VUID-VkSparseImageMemoryBind-extent-09390YNegativeSparseImage.ImageMemoryBindInvalidExtentexplicitVkSparseImageMemoryBindcoreextent.depth must be greater than 0
VUID-VkSparseImageMemoryBind-flags-parameterYNoneimplicitVkSparseImageMemoryBindcoreflags must be a valid combination of VkSparseMemoryBindFlagBits values
VUID-VkSparseImageMemoryBind-memory-01104NNoneexplicitVkSparseImageMemoryBindcoreIf the sparseResidencyAliased feature is not enabled, and if any other resources are bound to ranges of memory, the range of memory being bound must not overlap with those bound ranges
VUID-VkSparseImageMemoryBind-memory-01105NNoneexplicitVkSparseImageMemoryBindcorememory and memoryOffset must match the memory requirements of the calling command's image, as described in section Resource Memory Association
VUID-VkSparseImageMemoryBind-memory-02732YNegativeSparseImage.QueueBindSparseMemoryType3explicitVkSparseImageMemoryBindcoreIf memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when the image was created
VUID-VkSparseImageMemoryBind-memory-02733YNoneexplicitVkSparseImageMemoryBindcoreIf memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created
VUID-VkSparseImageMemoryBind-memory-parameterYNoneimplicitVkSparseImageMemoryBindcoreIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-VkSparseImageMemoryBind-offset-01107YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindcoreoffset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image
VUID-VkSparseImageMemoryBind-offset-01109YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindcoreoffset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image
VUID-VkSparseImageMemoryBind-offset-01111YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindcoreoffset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image
VUID-VkSparseImageMemoryBind-subresource-01106YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindcoresubresource must be a valid image subresource for image (see Image Views)
VUID-VkSparseImageMemoryBind-subresource-parameterNNoneimplicitVkSparseImageMemoryBindcoresubresource must be a valid VkImageSubresource structure
VUID-VkSparseImageMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseImageMemoryBindInfocorebindCount must be greater than 0
VUID-VkSparseImageMemoryBindInfo-image-02901YNegativeSparseImage.ResidencyFlagexplicitVkSparseImageMemoryBindInfocoreimage must have been created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set
VUID-VkSparseImageMemoryBindInfo-image-parameterYNoneimplicitVkSparseImageMemoryBindInfocoreimage must be a valid VkImage handle
VUID-VkSparseImageMemoryBindInfo-pBinds-parameterYNoneimplicitVkSparseImageMemoryBindInfocorepBinds must be a valid pointer to an array of bindCount valid VkSparseImageMemoryBind structures
VUID-VkSparseImageMemoryBindInfo-subresource-01722YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindInfocoreThe subresource.mipLevel member of each element of pBinds must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkSparseImageMemoryBindInfo-subresource-01723YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindInfocoreThe subresource.arrayLayer member of each element of pBinds must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkSparseImageMemoryRequirements2-pNext-pNextYNoneimplicitVkSparseImageMemoryRequirements2corepNext must be NULL
VUID-VkSparseImageMemoryRequirements2-sType-sTypeYNoneimplicitVkSparseImageMemoryRequirements2coresType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseImageOpaqueMemoryBindInfocorebindCount must be greater than 0
VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameterYNoneimplicitVkSparseImageOpaqueMemoryBindInfocoreimage must be a valid VkImage handle
VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103NNoneexplicitVkSparseImageOpaqueMemoryBindInfocoreIf the flags member of any element of pBinds contains VK_SPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect of image
VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameterYNoneimplicitVkSparseImageOpaqueMemoryBindInfocorepBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures
VUID-VkSparseMemoryBind-flags-parameterYNegativeSparseBuffer.VkSparseMemoryBindFlagsimplicitVkSparseMemoryBindcoreflags must be a valid combination of VkSparseMemoryBindFlagBits values
VUID-VkSparseMemoryBind-memory-01096YNegativeSparseBuffer.QueueBindSparseMemoryBindSizeMemoryOffset, NegativeSparseImage.QueueBindSparseMemoryType, NegativeSparseImage.QueueBindSparseMemoryType2explicitVkSparseMemoryBindcoreIf memory is not VK_NULL_HANDLE, memory and memoryOffset must match the memory requirements of the resource, as described in section Resource Memory Association
VUID-VkSparseMemoryBind-memory-01097YNegativeSparseImage.QueueBindSparseMemoryType, NegativeSparseImage.QueueBindSparseMemoryType2explicitVkSparseMemoryBindcoreIf memory is not VK_NULL_HANDLE, memory must not have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT bit set
VUID-VkSparseMemoryBind-memory-02730YNegativeSparseImage.QueueBindSparseMemoryType3explicitVkSparseMemoryBindcoreIf memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created
VUID-VkSparseMemoryBind-memory-02731YNoneexplicitVkSparseMemoryBindcoreIf memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created
VUID-VkSparseMemoryBind-memory-parameterYNegativeSparseBuffer.VkSparseMemoryBindMemoryimplicitVkSparseMemoryBindcoreIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-VkSparseMemoryBind-memoryOffset-01101YNegativeSparseImage.MemoryBindOffsetexplicitVkSparseMemoryBindcorememoryOffset must be less than the size of memory
VUID-VkSparseMemoryBind-resourceOffset-01099YNegativeSparseBuffer.QueueBindSparseMemoryBindResourceOffsetexplicitVkSparseMemoryBindcoreresourceOffset must be less than the size of the resource
VUID-VkSparseMemoryBind-resourceOffset-09491NNoneexplicitVkSparseMemoryBindcoreIf the resource being bound is a VkBuffer, resourceOffset and memoryOffset must be an integer multiple of the alignment of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with the buffer resource
VUID-VkSparseMemoryBind-resourceOffset-09492NNoneexplicitVkSparseMemoryBindcoreIf the resource being bound is a VkImage, resourceOffset and memoryOffset must be an integer multiple of the alignment of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the image resource
VUID-VkSparseMemoryBind-size-01098YNegativeSparseBuffer.QueueBindSparseMemoryBindSizeexplicitVkSparseMemoryBindcoresize must be greater than 0
VUID-VkSparseMemoryBind-size-01100YNegativeSparseBuffer.QueueBindSparseMemoryBindSizeResourceOffsetexplicitVkSparseMemoryBindcoresize must be less than or equal to the size of the resource minus resourceOffset
VUID-VkSparseMemoryBind-size-01102YNegativeSparseBuffer.QueueBindSparseMemoryBindSizeMemoryOffset, NegativeSparseImage.MemoryBindOffsetexplicitVkSparseMemoryBindcoresize must be less than or equal to the size of memory minus memoryOffset
VUID-VkSpecializationInfo-constantID-04911YNegativeShaderObject.SpecializationSameConstantId, NegativeShaderSpirv.DuplicatedSpecializationConstantIDexplicitVkSpecializationInfocoreThe constantID value of each element of pMapEntries must be unique within pMapEntries
VUID-VkSpecializationInfo-offset-00773YNegativeShaderObject.SpecializationMapEntryOffset, NegativeShaderSpirv.SpecializationOffsetOutOfBounds, NegativeShaderSpirv.SpecializationOffsetOutOfBoundsWithIdentifierexplicitVkSpecializationInfocoreThe offset member of each element of pMapEntries must be less than dataSize
VUID-VkSpecializationInfo-pData-parameterYNoneimplicitVkSpecializationInfocoreIf dataSize is not 0, pData must be a valid pointer to an array of dataSize bytes
VUID-VkSpecializationInfo-pMapEntries-00774YNegativeShaderObject.SpecializationMapEntrySize, NegativeShaderSpirv.SpecializationSizeOutOfBoundsexplicitVkSpecializationInfocoreThe size member of each element of pMapEntries must be less than or equal to dataSize minus offset
VUID-VkSpecializationInfo-pMapEntries-parameterYNoneimplicitVkSpecializationInfocoreIf mapEntryCount is not 0, pMapEntries must be a valid pointer to an array of mapEntryCount valid VkSpecializationMapEntry structures
VUID-VkSpecializationMapEntry-constantID-00776YNegativeShaderObject.SpecializationMismatch, NegativeShaderSpirv.SpecializationSizeMismatch, NegativeShaderSpirv.SpecializationSizeZeroexplicitVkSpecializationMapEntrycoreFor a constantID specialization constant declared in a shader, size must match the byte size of the constantID. If the specialization constant is of type boolean, size must be the byte size of VkBool32
VUID-VkStencilOpState-compareOp-parameterYNoneimplicitVkStencilOpStatecorecompareOp must be a valid VkCompareOp value
VUID-VkStencilOpState-depthFailOp-parameterYNoneimplicitVkStencilOpStatecoredepthFailOp must be a valid VkStencilOp value
VUID-VkStencilOpState-failOp-parameterYNoneimplicitVkStencilOpStatecorefailOp must be a valid VkStencilOp value
VUID-VkStencilOpState-passOp-parameterYNoneimplicitVkStencilOpStatecorepassOp must be a valid VkStencilOp value
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmaskYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGPcoreflags must be 0
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-pNext-pNextYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGPcorepNext must be NULL
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-sType-sTypeYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGPcoresType must be VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681NNoneexplicitVkStreamDescriptorSurfaceCreateInfoGGPcorestreamDescriptor must be a valid GgpStreamDescriptor
VUID-VkStridedDeviceAddressRegionKHR-size-04631YNegativeRayTracing.CmdTraceRaysKHRexplicitVkStridedDeviceAddressRegionKHRcoreIf size is not zero, all addresses between deviceAddress and deviceAddress + size - 1 must be in the buffer device address range of the same buffer
VUID-VkStridedDeviceAddressRegionKHR-size-04632YNegativeRayTracing.CmdTraceRaysKHRexplicitVkStridedDeviceAddressRegionKHRcoreIf size is not zero, stride must be less than or equal to the size of the buffer from which deviceAddress was queried
VUID-VkSubmitInfo-commonparentYNoneimplicitVkSubmitInfocoreEach of the elements of pCommandBuffers, the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkSubmitInfo-pCommandBuffers-00075YNegativeCommand.SecondaryCommandbufferAsPrimaryexplicitVkSubmitInfocoreEach element of pCommandBuffers must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-VkSubmitInfo-pCommandBuffers-06014YNegativeDynamicRendering.SuspendingRenderPassInstanceexplicitVkSubmitInfocoreIf pCommandBuffers contains any suspended render pass instances, they must be resumed by a render pass instance later in submission order within pCommandBuffers
VUID-VkSubmitInfo-pCommandBuffers-06015NNoneexplicitVkSubmitInfocoreIf pCommandBuffers contains any suspended render pass instances, there must be no action or synchronization commands executed in a primary or secondary command buffer between that render pass instance and the render pass instance that resumes it
VUID-VkSubmitInfo-pCommandBuffers-06016YNegativeDynamicRendering.SuspendingRenderPassInstanceexplicitVkSubmitInfocoreIf pCommandBuffers contains any suspended render pass instances, there must be no render pass instances between that render pass instance and the render pass instance that resumes it
VUID-VkSubmitInfo-pCommandBuffers-06193YNegativeDynamicRendering.SuspendingRenderPassInstanceexplicitVkSubmitInfocoreIf pCommandBuffers contains any resumed render pass instances, they must be suspended by a render pass instance earlier in submission order within pCommandBuffers
VUID-VkSubmitInfo-pCommandBuffers-parameterYNoneimplicitVkSubmitInfocoreIf commandBufferCount is not 0, pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles
VUID-VkSubmitInfo-pNext-03240YNegativeSyncObject.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfocoreIf the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its waitSemaphoreValueCount member must equal waitSemaphoreCount
VUID-VkSubmitInfo-pNext-03241YNegativeSyncObject.MixedTimelineAndBinarySemaphores, NegativeSyncObject.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfocoreIf the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its signalSemaphoreValueCount member must equal signalSemaphoreCount
VUID-VkSubmitInfo-pNext-04120YNegativeProtectedMemory.MixingProtectedResourcesexplicitVkSubmitInfocoreIf the pNext chain of this structure does not include a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be an unprotected command buffer
VUID-VkSubmitInfo-pNext-04148YNegativeProtectedMemory.MixingProtectedResources, NegativeProtectedMemory.SubmitexplicitVkSubmitInfocoreIf the pNext chain of this structure includes a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be a protected command buffer
VUID-VkSubmitInfo-pNext-pNextYNoneimplicitVkSubmitInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAmigoProfilingSubmitInfoSEC, VkD3D12FenceSubmitInfoKHR, VkDeviceGroupSubmitInfo, VkFrameBoundaryEXT, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkProtectedSubmitInfo, VkTimelineSemaphoreSubmitInfo, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV
VUID-VkSubmitInfo-pSignalSemaphores-03242YNegativeSyncObject.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfocoreFor each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value greater than the current value of the semaphore when the semaphore signal operation is executed
VUID-VkSubmitInfo-pSignalSemaphores-03244YNegativeSyncObject.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfocoreFor each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkSubmitInfo-pSignalSemaphores-parameterYNoneimplicitVkSubmitInfocoreIf signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles
VUID-VkSubmitInfo-pWaitDstStageMask-00078YNegativeSyncObject.StageMaskHostexplicitVkSubmitInfocoreEach element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-VkSubmitInfo-pWaitDstStageMask-03937YNoneexplicitVkSubmitInfocoreIf the synchronization2 feature is not enabled, pWaitDstStageMask must not be 0
VUID-VkSubmitInfo-pWaitDstStageMask-04090YNoneexplicitVkSubmitInfocoreIf the geometryShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubmitInfo-pWaitDstStageMask-04091YNoneexplicitVkSubmitInfocoreIf the tessellationShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubmitInfo-pWaitDstStageMask-04092YNoneexplicitVkSubmitInfocoreIf the conditionalRendering feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04093YNoneexplicitVkSubmitInfocoreIf the fragmentDensityMap feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04094YNoneexplicitVkSubmitInfocoreIf the transformFeedback feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitVkSubmitInfocoreIf the meshShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitVkSubmitInfocoreIf the taskShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-07318YNoneexplicitVkSubmitInfocoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubmitInfo-pWaitDstStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitVkSubmitInfocoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-VkSubmitInfo-pWaitDstStageMask-parameterYVkLayerTest.RequiredParameterimplicitVkSubmitInfocoreIf waitSemaphoreCount is not 0, pWaitDstStageMask must be a valid pointer to an array of waitSemaphoreCount valid combinations of VkPipelineStageFlagBits values
VUID-VkSubmitInfo-pWaitSemaphores-03239YNegativeSyncObject.QueueSubmitNoTimelineSemaphoreInfoexplicitVkSubmitInfocoreIf any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure
VUID-VkSubmitInfo-pWaitSemaphores-03243YNegativeSyncObject.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfocoreFor each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkSubmitInfo-pWaitSemaphores-parameterYVkLayerTest.RequiredParameterimplicitVkSubmitInfocoreIf waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkSubmitInfo-sType-sTypeYVkLayerTest.InvalidStructSType, VkLayerTest.RequiredParameterimplicitVkSubmitInfocoresType must be VK_STRUCTURE_TYPE_SUBMIT_INFO
VUID-VkSubmitInfo-sType-uniqueYNoneimplicitVkSubmitInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSubmitInfo-variableSampleLocations-06017NNoneexplicitVkSubmitInfocoreIf the variableSampleLocations limit is not supported, and any element of pCommandBuffers contains any 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-VkSubmitInfo2-flags-03886YNoneexplicitVkSubmitInfo2coreIf flags includes VK_SUBMIT_PROTECTED_BIT, all elements of pCommandBuffers must be protected command buffers
VUID-VkSubmitInfo2-flags-03887YNoneexplicitVkSubmitInfo2coreIf flags does not include VK_SUBMIT_PROTECTED_BIT, each element of pCommandBuffers must not be a protected command buffer
VUID-VkSubmitInfo2-flags-parameterYNoneimplicitVkSubmitInfo2coreflags must be a valid combination of VkSubmitFlagBits values
VUID-VkSubmitInfo2-pCommandBufferInfos-parameterYNoneimplicitVkSubmitInfo2coreIf commandBufferInfoCount is not 0, pCommandBufferInfos must be a valid pointer to an array of commandBufferInfoCount valid VkCommandBufferSubmitInfo structures
VUID-VkSubmitInfo2-pNext-pNextYNoneimplicitVkSubmitInfo2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkFrameBoundaryEXT, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV
VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameterYNoneimplicitVkSubmitInfo2coreIf signalSemaphoreInfoCount is not 0, pSignalSemaphoreInfos must be a valid pointer to an array of signalSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures
VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameterYNoneimplicitVkSubmitInfo2coreIf waitSemaphoreInfoCount is not 0, pWaitSemaphoreInfos must be a valid pointer to an array of waitSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures
VUID-VkSubmitInfo2-sType-sTypeYNoneimplicitVkSubmitInfo2coresType must be VK_STRUCTURE_TYPE_SUBMIT_INFO_2
VUID-VkSubmitInfo2-sType-uniqueYNoneimplicitVkSubmitInfo2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkSubmitInfo2-semaphore-03881YNegativeSyncObject.Sync2SignalSemaphoreValueexplicitVkSubmitInfo2coreIf the same semaphore is used as the semaphore member of both an element of pSignalSemaphoreInfos and pWaitSemaphoreInfos, and that semaphore is a timeline semaphore, the value member of the pSignalSemaphoreInfos element must be greater than the value member of the pWaitSemaphoreInfos element
VUID-VkSubmitInfo2-semaphore-03882YNegativeSyncObject.Sync2QueueSubmitTimelineSemaphoreValue, NegativeSyncObject.Sync2SignalSemaphoreValueexplicitVkSubmitInfo2coreIf the semaphore member of any element of pSignalSemaphoreInfos is a timeline semaphore, the value member of that element must have a value greater than the current value of the semaphore when the semaphore signal operation is executed
VUID-VkSubmitInfo2-semaphore-03883YNegativeSyncObject.Sync2QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfo2coreIf the semaphore member of any element of pSignalSemaphoreInfos is a timeline semaphore, the value member of that element must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkSubmitInfo2-semaphore-03884YNegativeSyncObject.Sync2QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfo2coreIf the semaphore member of any element of pWaitSemaphoreInfos is a timeline semaphore, the value member of that element must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkSubmitInfo2KHR-commandBuffer-06010YNegativeDynamicRendering.SuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2coreIf any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, they must be resumed by a render pass instance later in submission order within pCommandBufferInfos
VUID-VkSubmitInfo2KHR-commandBuffer-06011NNoneexplicitVkSubmitInfo2coreIf any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, there must be no action or synchronization commands between that render pass instance and the render pass instance that resumes it
VUID-VkSubmitInfo2KHR-commandBuffer-06012YNegativeDynamicRendering.SuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2coreIf any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, there must be no render pass instances between that render pass instance and the render pass instance that resumes it
VUID-VkSubmitInfo2KHR-commandBuffer-06192YNegativeDynamicRendering.SuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2coreIf any commandBuffer member of an element of pCommandBufferInfos contains any resumed render pass instances, they must be suspended by a render pass instance earlier in submission order within pCommandBufferInfos
VUID-VkSubmitInfo2KHR-variableSampleLocations-06013NNoneexplicitVkSubmitInfo2coreIf the variableSampleLocations limit is not supported, and any commandBuffer member of an element of pCommandBufferInfos contains any 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-VkSubpassBeginInfo-contents-09382NNoneexplicitVkSubpassBeginInfocoreIf contents is VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT, then nestedCommandBuffer must be enabled
VUID-VkSubpassBeginInfo-contents-parameterYNoneimplicitVkSubpassBeginInfocorecontents must be a valid VkSubpassContents value
VUID-VkSubpassBeginInfo-pNext-pNextYNoneimplicitVkSubpassBeginInfocorepNext must be NULL
VUID-VkSubpassBeginInfo-sType-sTypeYNoneimplicitVkSubpassBeginInfocoresType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
VUID-VkSubpassDependency-dependencyFlags-02520YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-dependencyFlags-02521YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-dependencyFlags-parameterYNoneimplicitVkSubpassDependencycoredependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkSubpassDependency-dstAccessMask-00869YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreAny access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types
VUID-VkSubpassDependency-dstAccessMask-parameterYNoneimplicitVkSubpassDependencycoredstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency-dstStageMask-03937YNoneexplicitVkSubpassDependencycoreIf the synchronization2 feature is not enabled, dstStageMask must not be 0
VUID-VkSubpassDependency-dstStageMask-04090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency-dstStageMask-04091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubpassDependency-dstStageMask-04092YNoneexplicitVkSubpassDependencycoreIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04093YNoneexplicitVkSubpassDependencycoreIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04094YNoneexplicitVkSubpassDependencycoreIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04095YNoneexplicitVkSubpassDependencycoreIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04096YNoneexplicitVkSubpassDependencycoreIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-07318YNoneexplicitVkSubpassDependencycoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency-dstStageMask-07949YNoneexplicitVkSubpassDependencycoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-VkSubpassDependency-dstStageMask-parameterYNoneimplicitVkSubpassDependencycoredstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency-srcAccessMask-00868YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreAny access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types
VUID-VkSubpassDependency-srcAccessMask-parameterYNoneimplicitVkSubpassDependencycoresrcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency-srcStageMask-03937YNoneexplicitVkSubpassDependencycoreIf the synchronization2 feature is not enabled, srcStageMask must not be 0
VUID-VkSubpassDependency-srcStageMask-04090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency-srcStageMask-04091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubpassDependency-srcStageMask-04092YNoneexplicitVkSubpassDependencycoreIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04093YNoneexplicitVkSubpassDependencycoreIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04094YNoneexplicitVkSubpassDependencycoreIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04095YNoneexplicitVkSubpassDependencycoreIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04096YNoneexplicitVkSubpassDependencycoreIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-07318YNoneexplicitVkSubpassDependencycoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency-srcStageMask-07949YNoneexplicitVkSubpassDependencycoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-VkSubpassDependency-srcStageMask-parameterYNoneimplicitVkSubpassDependencycoresrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency-srcSubpass-00864YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoresrcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order
VUID-VkSubpassDependency-srcSubpass-00865YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoresrcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-srcSubpass-00872YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf srcSubpass equals dstSubpass and that subpass has more than one bit set in the view mask, then dependencyFlags must include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-VkSubpassDependency-srcSubpass-02243YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT
VUID-VkSubpassDependency-srcSubpass-06809YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencycoreIf srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages
VUID-VkSubpassDependency2-dependencyFlags-03090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-dependencyFlags-03091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-dependencyFlags-03092YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf dependencyFlags does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, viewOffset must be 0
VUID-VkSubpassDependency2-dependencyFlags-parameterYNoneimplicitVkSubpassDependency2coredependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkSubpassDependency2-dstAccessMask-03089YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreAny access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types
VUID-VkSubpassDependency2-dstAccessMask-parameterYNoneimplicitVkSubpassDependency2coredstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency2-dstStageMask-03937YNoneexplicitVkSubpassDependency2coreIf the synchronization2 feature is not enabled, dstStageMask must not be 0
VUID-VkSubpassDependency2-dstStageMask-04090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency2-dstStageMask-04091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubpassDependency2-dstStageMask-04092YNoneexplicitVkSubpassDependency2coreIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04093YNoneexplicitVkSubpassDependency2coreIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04094YNoneexplicitVkSubpassDependency2coreIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04095YNoneexplicitVkSubpassDependency2coreIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04096YNoneexplicitVkSubpassDependency2coreIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-07318YNoneexplicitVkSubpassDependency2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency2-dstStageMask-07949YNoneexplicitVkSubpassDependency2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-VkSubpassDependency2-dstStageMask-parameterYNoneimplicitVkSubpassDependency2coredstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency2-pNext-pNextYNoneimplicitVkSubpassDependency2corepNext must be NULL or a pointer to a valid instance of VkMemoryBarrier2
VUID-VkSubpassDependency2-sType-sTypeYNoneimplicitVkSubpassDependency2coresType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
VUID-VkSubpassDependency2-sType-uniqueYNoneimplicitVkSubpassDependency2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkSubpassDependency2-srcAccessMask-03088YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreAny access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types
VUID-VkSubpassDependency2-srcAccessMask-parameterYNoneimplicitVkSubpassDependency2coresrcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency2-srcStageMask-03937YNoneexplicitVkSubpassDependency2coreIf the synchronization2 feature is not enabled, srcStageMask must not be 0
VUID-VkSubpassDependency2-srcStageMask-04090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency2-srcStageMask-04091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubpassDependency2-srcStageMask-04092YNoneexplicitVkSubpassDependency2coreIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04093YNoneexplicitVkSubpassDependency2coreIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04094YNoneexplicitVkSubpassDependency2coreIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04095YNoneexplicitVkSubpassDependency2coreIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04096YNoneexplicitVkSubpassDependency2coreIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-07318YNoneexplicitVkSubpassDependency2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency2-srcStageMask-07949YNoneexplicitVkSubpassDependency2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-VkSubpassDependency2-srcStageMask-parameterYNegativeSubpass.SubpassDependencyMasksSync2implicitVkSubpassDependency2coresrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency2-srcSubpass-02245YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT
VUID-VkSubpassDependency2-srcSubpass-03084YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coresrcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order
VUID-VkSubpassDependency2-srcSubpass-03085YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coresrcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-srcSubpass-06810YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages
VUID-VkSubpassDependency2-viewOffset-02530YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2coreIf viewOffset is not equal to 0, srcSubpass must not be equal to dstSubpass
VUID-VkSubpassDescription-None-09431YNegativeRenderPass.MixedAttachmentSamplesAMDexplicitVkSubpassDescriptioncoreIf either of the following is enabled: The VK_AMD_mixed_attachment_samples extension The VK_NV_framebuffer_mixed_samples extension all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription-attachment-00853YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncoreEach element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription-attachment-06912YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescriptioncoreIf the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkSubpassDescription-attachment-06913YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescriptioncoreIf the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription-attachment-06914YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescriptioncoreIf the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription-attachment-06915YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescriptioncoreIf the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, ts layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription-attachment-06916YNegativeRenderPass.SubpassAttachmentImageLayoutMaintenance2explicitVkSubpassDescriptioncoreIf the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkSubpassDescription-attachment-06917YNegativeRenderPass.SubpassAttachmentImageLayoutMaintenance2explicitVkSubpassDescriptioncoreIf the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkSubpassDescription-attachment-06918YNegativeRenderPass.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescriptioncoreIf the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkSubpassDescription-attachment-06919YNegativeRenderPass.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescriptioncoreIf the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription-attachment-06920YNegativeRenderPass.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescriptioncoreIf the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription-attachment-06921YNegativeRenderPass.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescriptioncoreIf the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR
VUID-VkSubpassDescription-attachment-06922YNegativeRenderPass.AttachmentReferenceSync2Layout, NegativeRenderPass.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescriptioncoreIf the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkSubpassDescription-attachment-06923YNegativeRenderPass.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescriptioncoreIf the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkSubpassDescription-colorAttachmentCount-00845YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncorecolorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkSubpassDescription-flags-00856YNegativeMultiview.RenderPassCreateSubpassMissingAttributesBitNVXexplicitVkSubpassDescriptioncoreIf flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX
VUID-VkSubpassDescription-flags-03341YNegativeRenderPass.ShaderResolveQCOMexplicitVkSubpassDescriptioncoreIf flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription-flags-03343YNegativeRenderPass.ShaderResolveQCOMexplicitVkSubpassDescriptioncoreIf flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain
VUID-VkSubpassDescription-flags-parameterYNoneimplicitVkSubpassDescriptioncoreflags must be a valid combination of VkSubpassDescriptionFlagBits values
VUID-VkSubpassDescription-layout-02519YNegativeRenderPass.AttachmentMismatchingLayoutsColorexplicitVkSubpassDescriptioncoreIf any attachment is used by more than one VkAttachmentReference member, then each use must use the same layout
VUID-VkSubpassDescription-linearColorAttachment-06496YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptioncoreIf the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkSubpassDescription-linearColorAttachment-06497YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptioncoreIf the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkSubpassDescription-linearColorAttachment-06498YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptioncoreIf the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkSubpassDescription-loadOp-00846YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncoreIf the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR
VUID-VkSubpassDescription-pColorAttachments-02648YNegativeRenderPass.AttachmentsMisc, NegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptioncoreAll attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkSubpassDescription-pColorAttachments-09430YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncoreAll attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count
VUID-VkSubpassDescription-pColorAttachments-parameterYNoneimplicitVkSubpassDescriptioncoreIf colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures
VUID-VkSubpassDescription-pDepthStencilAttachment-01418YNegativePipeline.FramebufferMixedSamples, NegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncoreIf pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and any attachments in pColorAttachments are not VK_ATTACHMENT_UNUSED, they must have the same sample count , if none of the following are enabled: The VK_AMD_mixed_attachment_samples extension The VK_NV_framebuffer_mixed_samples extension
VUID-VkSubpassDescription-pDepthStencilAttachment-02650YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptioncoreIf pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkSubpassDescription-pDepthStencilAttachment-04438YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncorepDepthStencilAttachment and pColorAttachments must not contain references to the same attachment
VUID-VkSubpassDescription-pDepthStencilAttachment-parameterNNoneimplicitVkSubpassDescriptioncoreIf pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference structure
VUID-VkSubpassDescription-pInputAttachments-02647YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptioncoreAll attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkSubpassDescription-pInputAttachments-02868NNoneexplicitVkSubpassDescriptioncoreIf the render pass is created with VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM each of the elements of pInputAttachments must be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription-pInputAttachments-parameterYNoneimplicitVkSubpassDescriptioncoreIf inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference structures
VUID-VkSubpassDescription-pPreserveAttachments-00854YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncoreEach element of pPreserveAttachments must not also be an element of any other member of the subpass description
VUID-VkSubpassDescription-pPreserveAttachments-parameterYNoneimplicitVkSubpassDescriptioncoreIf preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values
VUID-VkSubpassDescription-pResolveAttachments-00847YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncoreIf pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription-pResolveAttachments-00848YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncoreIf pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkSubpassDescription-pResolveAttachments-00849YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptioncoreIf pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkSubpassDescription-pResolveAttachments-00850YNegativeRenderPass.AttachmentsMisc, NegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptioncoreIf pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have the same VkFormat as its corresponding color attachment
VUID-VkSubpassDescription-pResolveAttachments-02649YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptioncoreAll attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkSubpassDescription-pResolveAttachments-parameterNNoneimplicitVkSubpassDescriptioncoreIf colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures
VUID-VkSubpassDescription-pipelineBindPoint-04952YNegativeSubpass.NonGraphicsPipelineexplicitVkSubpassDescriptioncorepipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
VUID-VkSubpassDescription-pipelineBindPoint-parameterYNoneimplicitVkSubpassDescriptioncorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkSubpassDescription2-None-09456YNegativeRenderPass.MixedAttachmentSamplesAMDexplicitVkSubpassDescription2coreIf either of the following is enabled: The VK_AMD_mixed_attachment_samples extension The VK_NV_framebuffer_mixed_samples extension all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-attachment-02799YNegativeSubpass.InputAttachmentParametersexplicitVkSubpassDescription2coreIf the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must be a valid combination of VkImageAspectFlagBits
VUID-VkSubpassDescription2-attachment-02800YNegativeSubpass.InputAttachmentParametersexplicitVkSubpassDescription2coreIf the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not be 0
VUID-VkSubpassDescription2-attachment-02801YNegativeSubpass.InputAttachmentParametersexplicitVkSubpassDescription2coreIf the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkSubpassDescription2-attachment-03073YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2coreEach element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-attachment-04563YNoneexplicitVkSubpassDescription2coreIf the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkSubpassDescription2-attachment-06251YNegativeRenderPass.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescription2coreIf the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and its pNext chain includes a VkAttachmentReferenceStencilLayout structure, the layout member of pDepthStencilAttachment must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription2-attachment-06912YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescription2coreIf the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkSubpassDescription2-attachment-06913YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescription2coreIf the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription2-attachment-06914YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescription2coreIf the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription2-attachment-06915YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescription2coreIf the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, ts layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription2-attachment-06916YNegativeRenderPass.SubpassAttachmentImageLayoutMaintenance2explicitVkSubpassDescription2coreIf the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkSubpassDescription2-attachment-06917YNegativeRenderPass.SubpassAttachmentImageLayoutMaintenance2explicitVkSubpassDescription2coreIf the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkSubpassDescription2-attachment-06918YNegativeRenderPass.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescription2coreIf the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkSubpassDescription2-attachment-06919YNegativeRenderPass.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescription2coreIf the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription2-attachment-06920YNegativeRenderPass.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescription2coreIf the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkSubpassDescription2-attachment-06921YNegativeRenderPass.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescription2coreIf the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR
VUID-VkSubpassDescription2-attachment-06922YNegativeRenderPass.AttachmentReferenceSync2Layout, NegativeRenderPass.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescription2coreIf the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkSubpassDescription2-attachment-06923YNegativeRenderPass.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescription2coreIf the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
VUID-VkSubpassDescription2-colorAttachmentCount-03063YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2corecolorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkSubpassDescription2-externalFormatResolve-09335YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2coreIf externalFormatResolve is not enabled and pResolveAttachments is not NULL, for each resolve attachment that does not have the value VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-externalFormatResolve-09338YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2coreIf externalFormatResolve is not enabled and pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkSubpassDescription2-externalFormatResolve-09339YNegativeRenderPass.AttachmentsMisc, NegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2coreIf externalFormatResolve is not enabled, each element of pResolveAttachments must have the same VkFormat as its corresponding color attachment
VUID-VkSubpassDescription2-externalFormatResolve-09344YNegativeAndroidExternalResolve.SubpassDescriptionColorAttachmentCountexplicitVkSubpassDescription2coreIf externalFormatResolve is enabled, pResolveAttachments is not NULL, and colorAttachmentCount is not 1, any element of pResolveAttachments that is not VK_ATTACHMENT_UNUSED, must not have a format of VK_FORMAT_UNDEFINED
VUID-VkSubpassDescription2-externalFormatResolve-09345YNegativeAndroidExternalResolve.SubpassDescriptionSampleexplicitVkSubpassDescription2coreIf externalFormatResolve is enabled, pResolveAttachments is not NULL, any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, and the corresponding element of pColorAttachments is not VK_ATTACHMENT_UNUSED, the color attachment must have a samples value of 1
VUID-VkSubpassDescription2-externalFormatResolve-09346YNegativeAndroidExternalResolve.SubpassDescriptionViewMaskexplicitVkSubpassDescription2coreIf externalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, viewMask must be 0
VUID-VkSubpassDescription2-externalFormatResolve-09347YNoneexplicitVkSubpassDescription2coreIf externalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, VkFragmentShadingRateAttachmentInfoKHR::pFragmentShadingRateAttachment must either be NULL or a VkAttachmentReference2 structure with a attachment value of VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-externalFormatResolve-09348YNegativeAndroidExternalResolve.SubpassDescriptionMultiPlaneInputexplicitVkSubpassDescription2coreIf externalFormatResolve is enabled, pResolveAttachments is not NULL, and any element of pResolveAttachments is not VK_ATTACHMENT_UNUSED and has a format of VK_FORMAT_UNDEFINED, elements of pInputAttachments referencing either a color attachment or resolve attachment used in this subpass must not include VK_IMAGE_ASPECT_PLANE_i_BIT for any index i in its aspectMask
VUID-VkSubpassDescription2-flags-03076YNegativeMultiview.RenderPassCreateSubpassMissingAttributesBitNVXexplicitVkSubpassDescription2coreIf flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX
VUID-VkSubpassDescription2-flags-parameterYNoneimplicitVkSubpassDescription2coreflags must be a valid combination of VkSubpassDescriptionFlagBits values
VUID-VkSubpassDescription2-layout-02528YNegativeRenderPass.AttachmentMismatchingLayoutsColorexplicitVkSubpassDescription2coreIf any attachment is used by more than one VkAttachmentReference2 member, then each use must use the same layout
VUID-VkSubpassDescription2-linearColorAttachment-06499YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2coreIf the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkSubpassDescription2-linearColorAttachment-06500YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2coreIf the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkSubpassDescription2-linearColorAttachment-06501YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2coreIf the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, all attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkSubpassDescription2-loadOp-03064YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2coreIf the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR
VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06869YNoneexplicitVkSubpassDescription2coreIf the multisampledRenderToSingleSampled feature is not enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count
VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06872YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2coreAll attachments in pDepthStencilAttachment or pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count , if none of the following are enabled: The VK_AMD_mixed_attachment_samples extension The VK_NV_framebuffer_mixed_samples extension The multisampledRenderToSingleSampled feature,
VUID-VkSubpassDescription2-multiview-06558YNegativeRenderPass.ViewMaskexplicitVkSubpassDescription2coreIf the multiview feature is not enabled, viewMask must be 0
VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336YNegativeAndroidExternalResolve.SubpassDescriptionNullColorPropertyexplicitVkSubpassDescription2coreIf the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE and pResolveAttachments is not NULL, for each resolve attachment that has a format of VK_FORMAT_UNDEFINED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337YNegativeAndroidExternalResolve.SubpassDescriptionNullColorPropertyexplicitVkSubpassDescription2coreIf the nullColorAttachmentWithExternalFormatResolve property is VK_TRUE and pResolveAttachments is not NULL, for each resolve attachment that has a format of VK_FORMAT_UNDEFINED, the corresponding color attachment must have the value VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-pColorAttachments-02898YNegativeRenderPass.AttachmentsMisc, NegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2coreAll attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkSubpassDescription2-pColorAttachments-parameterYNoneimplicitVkSubpassDescription2coreIf colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures
VUID-VkSubpassDescription2-pDepthStencilAttachment-02900YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2coreIf pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkSubpassDescription2-pDepthStencilAttachment-04440YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2coreAn attachment must not be used in both pDepthStencilAttachment and pColorAttachments
VUID-VkSubpassDescription2-pDepthStencilAttachment-parameterYNoneimplicitVkSubpassDescription2coreIf pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkSubpassDescription2-pInputAttachments-02897YNegativeRenderPass.MissingAttachment, NegativeSubpass.InputAttachmentParametersexplicitVkSubpassDescription2coreAll attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED and any of the following is true: the externalFormatResolve feature is not enabled the nullColorAttachmentWithExternalFormatResolve property is VK_FALSE does not have a non-zero value of VkExternalFormatANDROID::externalFormat must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkSubpassDescription2-pInputAttachments-parameterYNoneimplicitVkSubpassDescription2coreIf inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2 structures
VUID-VkSubpassDescription2-pNext-06870YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescription2coreIf the pNext chain includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then all attachments in pColorAttachments and pDepthStencilAttachment that are not VK_ATTACHMENT_UNUSED must have a sample count that is either VK_SAMPLE_COUNT_1_BIT or equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-VkSubpassDescription2-pNext-06871YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescription2coreIf the pNext chain includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a sample count of VK_SAMPLE_COUNT_1_BIT, the pNext chain must also include a VkSubpassDescriptionDepthStencilResolve structure with pDepthStencilResolveAttachment that is either NULL or has the value VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-pNext-pNextYNoneimplicitVkSubpassDescription2coreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkFragmentShadingRateAttachmentInfoKHR, VkMultisampledRenderToSingleSampledInfoEXT, VkRenderPassCreationControlEXT, VkRenderPassSubpassFeedbackCreateInfoEXT, or VkSubpassDescriptionDepthStencilResolve
VUID-VkSubpassDescription2-pPreserveAttachments-03074YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2coreEach element of pPreserveAttachments must not also be an element of any other member of the subpass description
VUID-VkSubpassDescription2-pPreserveAttachments-parameterYNoneimplicitVkSubpassDescription2coreIf preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values
VUID-VkSubpassDescription2-pResolveAttachments-03067YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2coreIf pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkSubpassDescription2-pResolveAttachments-09343YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2coreAll attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED and do not have an image format of VK_FORMAT_UNDEFINED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkSubpassDescription2-pResolveAttachments-parameterYNoneimplicitVkSubpassDescription2coreIf colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures
VUID-VkSubpassDescription2-pipelineBindPoint-04953YNegativeSubpass.NonGraphicsPipelineexplicitVkSubpassDescription2corepipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
VUID-VkSubpassDescription2-pipelineBindPoint-parameterYNoneimplicitVkSubpassDescription2corepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkSubpassDescription2-sType-sTypeYNoneimplicitVkSubpassDescription2coresType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
VUID-VkSubpassDescription2-sType-uniqueYNoneimplicitVkSubpassDescription2coreThe sType value of each struct in the pNext chain must be unique
VUID-VkSubpassDescription2-viewMask-06706YNegativeSubpass.SubpassDescriptionViewMaskexplicitVkSubpassDescription2coreThe index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and the VkFormat of pDepthStencilResolveAttachment has a depth component, then the value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-02651YNegativeRenderPass.DepthStencilResolveAttachmentFormatexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED then it must have an image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not be NULL or have the value VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03180YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilResolveAttachment must have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and VkFormat of pDepthStencilResolveAttachment has a depth component, then the VkFormat of pDepthStencilAttachment must have a depth component with the same number of bits and numeric format
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, and VkFormat of pDepthStencilResolveAttachment has a stencil component, then the VkFormat of pDepthStencilAttachment must have a stencil component with the same number of bits and numeric format
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameterYNoneimplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06873YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolvecoreIf the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure, the multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06874YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolvecoreIf the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat that has a depth component, then the value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06875YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolvecoreIf the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, and pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with a stencil component, then the value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06876YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolvecoreIf the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with both depth and stencil components, and both VkPhysicalDeviceDepthStencilResolveProperties::independentResolve and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone are VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06877YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolvecoreIf the pNext chain of VkSubpassDescription2 includes a VkMultisampledRenderToSingleSampledInfoEXT structure whose multisampledRenderToSingleSampledEnable field is VK_TRUE, pDepthStencilAttachment is not NULL, does not have the value VK_ATTACHMENT_UNUSED, and has a VkFormat with both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE
VUID-VkSubpassDescriptionDepthStencilResolve-sType-sTypeYNoneimplicitVkSubpassDescriptionDepthStencilResolvecoresType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolvecoreIf pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED and the VkFormat of pDepthStencilResolveAttachment has a stencil component, then the value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE
VUID-VkSubpassEndInfo-pNext-pNextYNoneimplicitVkSubpassEndInfocorepNext must be NULL or a pointer to a valid instance of VkSubpassFragmentDensityMapOffsetEndInfoQCOM
VUID-VkSubpassEndInfo-sType-sTypeYNoneimplicitVkSubpassEndInfocoresType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO
VUID-VkSubpassEndInfo-sType-uniqueYNoneimplicitVkSubpassEndInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf VkSubpassDescription::fragmentDensityMapAttachment is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf the fragmentDensityMapOffsets feature is not enabled or fragment density map is not enabled in the render pass, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06510YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf fragmentDensityOffsetCount is not 0 and multiview is enabled for the render pass, fragmentDensityOffsetCount must equal the layerCount that was specified in creating the fragment density map attachment view
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06511YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf fragmentDensityOffsetCount is not 0 and multiview is not enabled for the render pass, fragmentDensityOffsetCount must equal 1
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf any element of VkSubpassDescription::pColorAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pDepthStencilAttachment-06505YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf VkSubpassDescription::pDepthStencilAttachment is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pFragmentDensityOffsets-parameterYNoneimplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf fragmentDensityOffsetCount is not 0, pFragmentDensityOffsets must be a valid pointer to an array of fragmentDensityOffsetCount VkOffset2D structures
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf any element of VkSubpassDescription::pInputAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pPreserveAttachments-06509YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf any element of VkSubpassDescription::pPreserveAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pResolveAttachments-06508YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreIf any element of VkSubpassDescription::pResolveAttachments is not is not VK_ATTACHMENT_UNUSED and was not created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-sType-sTypeYNoneimplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoresType must be VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreThe x component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.width
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMcoreThe y component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.height
VUID-VkSubpassResolvePerformanceQueryEXT-sType-sTypeYNoneimplicitVkSubpassResolvePerformanceQueryEXTcoresType must be VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameterNNoneimplicitVkSubpassSampleLocationsEXTcoresampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532YNegativeRenderPass.BeginSampleLocationsIndicesEXTexplicitVkSubpassSampleLocationsEXTcoresubpassIndex must be less than the subpassCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with
VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-sType-sTypeYNoneimplicitVkSubpassShadingPipelineCreateInfoHUAWEIcoresType must be VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-subpass-04946NNoneexplicitVkSubpassShadingPipelineCreateInfoHUAWEIcoresubpass must be created with VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI bind point
VUID-VkSubresourceHostMemcpySizeEXT-sType-sTypeYNoneimplicitVkSubresourceHostMemcpySizeEXTcoresType must be VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT
VUID-VkSubresourceLayout2KHR-pNext-pNextYNoneimplicitVkSubresourceLayout2KHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT or VkSubresourceHostMemcpySizeEXT
VUID-VkSubresourceLayout2KHR-sType-sTypeYNoneimplicitVkSubresourceLayout2KHRcoresType must be VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
VUID-VkSubresourceLayout2KHR-sType-uniqueYNoneimplicitVkSubresourceLayout2KHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceCapabilities2EXT-pNext-pNextYNoneimplicitVkSurfaceCapabilities2EXTcorepNext must be NULL
VUID-VkSurfaceCapabilities2EXT-sType-sTypeYNoneimplicitVkSurfaceCapabilities2EXTcoresType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246NNoneexplicitVkSurfaceCapabilities2EXTcoresupportedSurfaceCounters must not include VK_SURFACE_COUNTER_VBLANK_BIT_EXT unless the surface queried is a display surface
VUID-VkSurfaceCapabilities2KHR-pNext-pNextYNoneimplicitVkSurfaceCapabilities2KHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDisplayNativeHdrSurfaceCapabilitiesAMD, VkLatencySurfaceCapabilitiesNV, VkSharedPresentSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesFullScreenExclusiveEXT, VkSurfaceCapabilitiesPresentBarrierNV, VkSurfacePresentModeCompatibilityEXT, VkSurfacePresentScalingCapabilitiesEXT, or VkSurfaceProtectedCapabilitiesKHR
VUID-VkSurfaceCapabilities2KHR-sType-sTypeYNoneimplicitVkSurfaceCapabilities2KHRcoresType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
VUID-VkSurfaceCapabilities2KHR-sType-uniqueYNoneimplicitVkSurfaceCapabilities2KHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sTypeYNoneimplicitVkSurfaceCapabilitiesFullScreenExclusiveEXTcoresType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
VUID-VkSurfaceCapabilitiesPresentBarrierNV-sType-sTypeYNoneimplicitVkSurfaceCapabilitiesPresentBarrierNVcoresType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
VUID-VkSurfaceFormat2KHR-pNext-06750NNoneexplicitVkSurfaceFormat2KHRcoreIf the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionPropertiesEXT structure
VUID-VkSurfaceFormat2KHR-pNext-pNextYNoneimplicitVkSurfaceFormat2KHRcorepNext must be NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT
VUID-VkSurfaceFormat2KHR-sType-sTypeYNoneimplicitVkSurfaceFormat2KHRcoresType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
VUID-VkSurfaceFormat2KHR-sType-uniqueYNoneimplicitVkSurfaceFormat2KHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceFullScreenExclusiveInfoEXT-fullScreenExclusive-parameterYNoneimplicitVkSurfaceFullScreenExclusiveInfoEXTcorefullScreenExclusive must be a valid VkFullScreenExclusiveEXT value
VUID-VkSurfaceFullScreenExclusiveInfoEXT-sType-sTypeYNoneimplicitVkSurfaceFullScreenExclusiveInfoEXTcoresType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-hmonitor-02673NNoneexplicitVkSurfaceFullScreenExclusiveWin32InfoEXTcorehmonitor must be a valid HMONITOR
VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-sType-sTypeYNoneimplicitVkSurfaceFullScreenExclusiveWin32InfoEXTcoresType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
VUID-VkSurfacePresentModeCompatibilityEXT-pPresentModes-parameterNNoneimplicitVkSurfacePresentModeCompatibilityEXTcoreIf presentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of presentModeCount VkPresentModeKHR values
VUID-VkSurfacePresentModeCompatibilityEXT-sType-sTypeYNoneimplicitVkSurfacePresentModeCompatibilityEXTcoresType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT
VUID-VkSurfacePresentModeEXT-presentMode-07780YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSurfacePresentModeEXTcorepresentMode must be a value reported by vkGetPhysicalDeviceSurfacePresentModesKHR for the specified surface.
VUID-VkSurfacePresentModeEXT-presentMode-parameterYNegativeWsi.SwapchainMaintenance1ExtensionAcquireimplicitVkSurfacePresentModeEXTcorepresentMode must be a valid VkPresentModeKHR value
VUID-VkSurfacePresentModeEXT-sType-sTypeYNoneimplicitVkSurfacePresentModeEXTcoresType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT
VUID-VkSurfacePresentScalingCapabilitiesEXT-sType-sTypeYNoneimplicitVkSurfacePresentScalingCapabilitiesEXTcoresType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT
VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityX-parameterYNoneimplicitVkSurfacePresentScalingCapabilitiesEXTcoresupportedPresentGravityX must be a valid combination of VkPresentGravityFlagBitsEXT values
VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityY-parameterYNoneimplicitVkSurfacePresentScalingCapabilitiesEXTcoresupportedPresentGravityY must be a valid combination of VkPresentGravityFlagBitsEXT values
VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentScaling-parameterYNoneimplicitVkSurfacePresentScalingCapabilitiesEXTcoresupportedPresentScaling must be a valid combination of VkPresentScalingFlagBitsEXT values
VUID-VkSurfaceProtectedCapabilitiesKHR-sType-sTypeYNoneimplicitVkSurfaceProtectedCapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
VUID-VkSwapchainCounterCreateInfoEXT-sType-sTypeYNoneimplicitVkSwapchainCounterCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244NNoneexplicitVkSwapchainCounterCreateInfoEXTcoreThe bits in surfaceCounters must be supported by VkSwapchainCreateInfoKHR::surface, as reported by vkGetPhysicalDeviceSurfaceCapabilities2EXT
VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameterYNoneimplicitVkSwapchainCounterCreateInfoEXTcoresurfaceCounters must be a valid combination of VkSurfaceCounterFlagBitsEXT values
VUID-VkSwapchainCreateInfoKHR-commonparentYNegativeParent.Device_OldSwapchain, NegativeParent.Instance_SurfaceimplicitVkSwapchainCreateInfoKHRcoreBoth of oldSwapchain, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance
VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280YNoneexplicitVkSwapchainCreateInfoKHRcorecompositeAlpha must be one of the bits present in the supportedCompositeAlpha member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameterYNoneimplicitVkSwapchainCreateInfoKHRcorecompositeAlpha must be a valid VkCompositeAlphaFlagBitsKHR value
VUID-VkSwapchainCreateInfoKHR-flags-03168YNegativeWsi.SwapchainImageFormatListexplicitVkSwapchainCreateInfoKHRcoreIf flags contains VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR then the pNext chain must include a VkImageFormatListCreateInfo structure with a viewFormatCount greater than zero and pViewFormats must have an element equal to imageFormat
VUID-VkSwapchainCreateInfoKHR-flags-03187YNegativeWsi.InitSwapchainPotentiallyIncompatibleFlagexplicitVkSwapchainCreateInfoKHRcoreIf flags contains VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, then VkSurfaceProtectedCapabilitiesKHR::supportsProtected must be VK_TRUE in the VkSurfaceProtectedCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface
VUID-VkSwapchainCreateInfoKHR-flags-04100YNegativeWsi.SwapchainImageFormatListexplicitVkSwapchainCreateInfoKHRcoreIf flags does not contain VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR and the pNext chain include a VkImageFormatListCreateInfo structure then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1
VUID-VkSwapchainCreateInfoKHR-flags-parameterYNoneimplicitVkSwapchainCreateInfoKHRcoreflags must be a valid combination of VkSwapchainCreateFlagBitsKHR values
VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275YNoneexplicitVkSwapchainCreateInfoKHRcoreimageArrayLayers must be greater than 0 and less than or equal to the maxImageArrayLayers member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameterYNoneimplicitVkSwapchainCreateInfoKHRcoreimageColorSpace must be a valid VkColorSpaceKHR value
VUID-VkSwapchainCreateInfoKHR-imageExtent-01689YNoneexplicitVkSwapchainCreateInfoKHRcoreimageExtent members width and height must both be non-zero
VUID-VkSwapchainCreateInfoKHR-imageFormat-01273YNoneexplicitVkSwapchainCreateInfoKHRcoreimageFormat and imageColorSpace must match the format and colorSpace members, respectively, of one of the VkSurfaceFormatKHR structures returned by vkGetPhysicalDeviceSurfaceFormatsKHR for the surface
VUID-VkSwapchainCreateInfoKHR-imageFormat-01778YNegativeWsi.CreatingSwapchainWithExtent, NegativeWsi.SwapchainImageParamsexplicitVkSwapchainCreateInfoKHRcoreThe implied image creation parameters of the swapchain must be supported as reported by vkGetPhysicalDeviceImageFormatProperties
VUID-VkSwapchainCreateInfoKHR-imageFormat-parameterYNoneimplicitVkSwapchainCreateInfoKHRcoreimageFormat must be a valid VkFormat value
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277YNoneexplicitVkSwapchainCreateInfoKHRcoreIf imageSharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278YNoneexplicitVkSwapchainCreateInfoKHRcoreIf imageSharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428YNoneexplicitVkSwapchainCreateInfoKHRcoreIf imageSharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameterYNoneimplicitVkSwapchainCreateInfoKHRcoreimageSharingMode must be a valid VkSharingMode value
VUID-VkSwapchainCreateInfoKHR-imageUsage-01384YNegativeWsi.SwapchainUsageSharedexplicitVkSwapchainCreateInfoKHRcoreIf presentMode is VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, imageUsage must be a subset of the supported usage flags present in the sharedPresentSupportedUsageFlags member of the VkSharedPresentSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface
VUID-VkSwapchainCreateInfoKHR-imageUsage-parameterYNoneimplicitVkSwapchainCreateInfoKHRcoreimageUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmaskYNoneimplicitVkSwapchainCreateInfoKHRcoreimageUsage must not be 0
VUID-VkSwapchainCreateInfoKHR-minImageCount-01272YNoneexplicitVkSwapchainCreateInfoKHRcoreminImageCount must be less than or equal to the value returned in the maxImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface if the returned maxImageCount is not zero
VUID-VkSwapchainCreateInfoKHR-minImageCount-01383YNegativeWsi.SwapchainMinImageCountSharedexplicitVkSwapchainCreateInfoKHRcoreminImageCount must be 1 if presentMode is either VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933YNoneexplicitVkSwapchainCreateInfoKHRcoreIf oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a non-retired swapchain associated with native window referred to by surface
VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameterYNoneimplicitVkSwapchainCreateInfoKHRcoreIf oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle
VUID-VkSwapchainCreateInfoKHR-pNext-02679YNegativeWsi.CreateSwapchainFullscreenExclusiveexplicitVkSwapchainCreateInfoKHRcoreIf the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain
VUID-VkSwapchainCreateInfoKHR-pNext-04099YNegativeWsi.SwapchainImageFormatListexplicitVkSwapchainCreateInfoKHRcoreIf a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero then all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table
VUID-VkSwapchainCreateInfoKHR-pNext-06752YNegativeWsi.ImageCompressionControlSwapchainWithoutFeatureexplicitVkSwapchainCreateInfoKHRcoreIf the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionControlEXT structure
VUID-VkSwapchainCreateInfoKHR-pNext-07781YNegativeWsi.CreatingSwapchainWithExtentexplicitVkSwapchainCreateInfoKHRcoreIf a VkSwapchainPresentScalingCreateInfoEXT structure was not included in the pNext chain, or it is included and VkSwapchainPresentScalingCreateInfoEXT::scalingBehavior is zero then imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-pNext-07782YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainCreateInfoKHRcoreIf a VkSwapchainPresentScalingCreateInfoEXT structure was included in the pNext chain and VkSwapchainPresentScalingCreateInfoEXT::scalingBehavior is not zero then imageExtent must be between minScaledImageExtent and maxScaledImageExtent, inclusive, where minScaledImageExtent and maxScaledImageExtent are members of the VkSurfacePresentScalingCapabilitiesEXT structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for the surface and presentMode
VUID-VkSwapchainCreateInfoKHR-pNext-pNextYNoneimplicitVkSwapchainCreateInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupSwapchainCreateInfoKHR, VkImageCompressionControlEXT, VkImageFormatListCreateInfo, VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, VkSwapchainCounterCreateInfoEXT, VkSwapchainDisplayNativeHdrCreateInfoAMD, VkSwapchainLatencyCreateInfoNV, VkSwapchainPresentBarrierCreateInfoNV, VkSwapchainPresentModesCreateInfoEXT, or VkSwapchainPresentScalingCreateInfoEXT
VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429YNegativeWsi.InitSwapchainPotentiallyIncompatibleFlag, NegativeWsi.SwapchainImageParamsexplicitVkSwapchainCreateInfoKHRcoreIf the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
VUID-VkSwapchainCreateInfoKHR-preTransform-01279YNegativeWsi.WarningSwapchainCreateInfoPreTransformexplicitVkSwapchainCreateInfoKHRcorepreTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-preTransform-parameterYNoneimplicitVkSwapchainCreateInfoKHRcorepreTransform must be a valid VkSurfaceTransformFlagBitsKHR value
VUID-VkSwapchainCreateInfoKHR-presentMode-01281YNoneexplicitVkSwapchainCreateInfoKHRcorepresentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-presentMode-01427YNegativeWsi.SwapchainUsageNonSharedexplicitVkSwapchainCreateInfoKHRcoreIf presentMode is VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHR, imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for surface
VUID-VkSwapchainCreateInfoKHR-presentMode-02839YNegativeWsi.SwapchainMinImageCountNonSharedexplicitVkSwapchainCreateInfoKHRcoreIf presentMode is not VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-presentMode-parameterYNoneimplicitVkSwapchainCreateInfoKHRcorepresentMode must be a valid VkPresentModeKHR value
VUID-VkSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkSwapchainCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkSwapchainCreateInfoKHR-sType-uniqueYNoneimplicitVkSwapchainCreateInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSwapchainCreateInfoKHR-surface-01270YNegativeWsi.SwapchainNotSupportedexplicitVkSwapchainCreateInfoKHRcoresurface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR
VUID-VkSwapchainCreateInfoKHR-surface-parameterYNoneimplicitVkSwapchainCreateInfoKHRcoresurface must be a valid VkSurfaceKHR handle
VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-04449NNoneexplicitVkSwapchainDisplayNativeHdrCreateInfoAMDcoreIt is only valid to set localDimmingEnable to VK_TRUE if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported
VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sTypeYNoneimplicitVkSwapchainDisplayNativeHdrCreateInfoAMDcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
VUID-VkSwapchainLatencyCreateInfoNV-sType-sTypeYNoneimplicitVkSwapchainLatencyCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV
VUID-VkSwapchainPresentBarrierCreateInfoNV-sType-sTypeYNoneimplicitVkSwapchainPresentBarrierCreateInfoNVcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
VUID-VkSwapchainPresentFenceInfoEXT-pFences-07758YNoneexplicitVkSwapchainPresentFenceInfoEXTcoreEach element of pFences must be unsignaled
VUID-VkSwapchainPresentFenceInfoEXT-pFences-07759YNoneexplicitVkSwapchainPresentFenceInfoEXTcoreEach element of pFences must not be associated with any other queue command that has not yet completed execution on that queue
VUID-VkSwapchainPresentFenceInfoEXT-pFences-parameterYNoneimplicitVkSwapchainPresentFenceInfoEXTcorepFences must be a valid pointer to an array of swapchainCount valid VkFence handles
VUID-VkSwapchainPresentFenceInfoEXT-sType-sTypeYNoneimplicitVkSwapchainPresentFenceInfoEXTcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-07757YNegativeWsi.SwapchainMaintenance1ExtensionReleaseexplicitVkSwapchainPresentFenceInfoEXTcoreswapchainCount must be equal to VkPresentInfoKHR::swapchainCount
VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-arraylengthNNoneimplicitVkSwapchainPresentFenceInfoEXTcoreswapchainCount must be greater than 0
VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761YNegativeWsi.SwapchainMaintenance1ExtensionReleaseexplicitVkSwapchainPresentModeInfoEXTcoreEach entry in pPresentModes must be a presentation mode specified in VkSwapchainPresentModesCreateInfoEXT::pPresentModes when creating the entry's corresponding swapchain
VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-parameterNNoneimplicitVkSwapchainPresentModeInfoEXTcorepPresentModes must be a valid pointer to an array of swapchainCount valid VkPresentModeKHR values
VUID-VkSwapchainPresentModeInfoEXT-sType-sTypeYNoneimplicitVkSwapchainPresentModeInfoEXTcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-07760YNoneexplicitVkSwapchainPresentModeInfoEXTcoreswapchainCount must be equal to VkPresentInfoKHR::swapchainCount
VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-arraylengthNNoneimplicitVkSwapchainPresentModeInfoEXTcoreswapchainCount must be greater than 0
VUID-VkSwapchainPresentModesCreateInfoEXT-None-07762YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentModesCreateInfoEXTcoreEach entry in pPresentModes must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface
VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-07763YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentModesCreateInfoEXTcoreThe entries in pPresentModes must be a subset of the present modes returned in VkSurfacePresentModeCompatibilityEXT::pPresentModes, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-parameterNNoneimplicitVkSwapchainPresentModesCreateInfoEXTcorepPresentModes must be a valid pointer to an array of presentModeCount valid VkPresentModeKHR values
VUID-VkSwapchainPresentModesCreateInfoEXT-presentMode-07764YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentModesCreateInfoEXTcoreVkSwapchainCreateInfoKHR::presentMode must be included in pPresentModes
VUID-VkSwapchainPresentModesCreateInfoEXT-presentModeCount-arraylengthNNoneimplicitVkSwapchainPresentModesCreateInfoEXTcorepresentModeCount must be greater than 0
VUID-VkSwapchainPresentModesCreateInfoEXT-sType-sTypeYNoneimplicitVkSwapchainPresentModesCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07765YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcoreIf presentGravityX is 0, presentGravityY must be 0
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07766YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcoreIf presentGravityX is not 0, presentGravityY must not be 0
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07768YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcorepresentGravityX must not have more than one bit set
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07772YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcorepresentGravityX must be a valid x-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityX, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07773YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcoreIf the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, presentGravityX must be a valid x-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityX, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-parameterYNoneimplicitVkSwapchainPresentScalingCreateInfoEXTcorepresentGravityX must be a valid combination of VkPresentGravityFlagBitsEXT values
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07769YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcorepresentGravityY must not have more than one bit set
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07774YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcorepresentGravityY must be a valid y-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityY, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07775YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcoreIf the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, presentGravityY must be a valid y-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityY, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-parameterYNoneimplicitVkSwapchainPresentScalingCreateInfoEXTcorepresentGravityY must be a valid combination of VkPresentGravityFlagBitsEXT values
VUID-VkSwapchainPresentScalingCreateInfoEXT-sType-sTypeYNoneimplicitVkSwapchainPresentScalingCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07767YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcorescalingBehavior must not have more than one bit set
VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07770YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcorescalingBehavior must be a valid scaling method for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentScaling, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07771YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTcoreIf the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, scalingBehavior must be a valid scaling method for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentScaling, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-parameterYNoneimplicitVkSwapchainPresentScalingCreateInfoEXTcorescalingBehavior must be a valid combination of VkPresentScalingFlagBitsEXT values
VUID-VkSysmemColorSpaceFUCHSIA-colorSpace-06402NNoneexplicitVkSysmemColorSpaceFUCHSIAcorecolorSpace must be a ColorSpaceType as defined in fuchsia.sysmem/image_formats.fidl
VUID-VkSysmemColorSpaceFUCHSIA-pNext-pNextYNoneimplicitVkSysmemColorSpaceFUCHSIAcorepNext must be NULL
VUID-VkSysmemColorSpaceFUCHSIA-sType-sTypeYNoneimplicitVkSysmemColorSpaceFUCHSIAcoresType must be VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
VUID-VkTextureLODGatherFormatPropertiesAMD-sType-sTypeYNoneimplicitVkTextureLODGatherFormatPropertiesAMDcoresType must be VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
VUID-VkTilePropertiesQCOM-pNext-pNextNNoneimplicitVkTilePropertiesQCOMcorepNext must be NULL
VUID-VkTilePropertiesQCOM-sType-sTypeYNoneimplicitVkTilePropertiesQCOMcoresType must be VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
VUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameterNNoneimplicitVkTimelineSemaphoreSubmitInfocoreIf signalSemaphoreValueCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValueCount uint64_t values
VUID-VkTimelineSemaphoreSubmitInfo-pWaitSemaphoreValues-parameterNNoneimplicitVkTimelineSemaphoreSubmitInfocoreIf waitSemaphoreValueCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValueCount uint64_t values
VUID-VkTimelineSemaphoreSubmitInfo-sType-sTypeYNoneimplicitVkTimelineSemaphoreSubmitInfocoresType must be VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
VUID-VkTraceRaysIndirectCommand2KHR-depth-03640NNoneexplicitVkTraceRaysIndirectCommand2KHRcoredepth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-VkTraceRaysIndirectCommand2KHR-flags-03511NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by missShaderBindingTableAddress must not be set to zero
VUID-VkTraceRaysIndirectCommand2KHR-flags-03512NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero
VUID-VkTraceRaysIndirectCommand2KHR-flags-03513NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero
VUID-VkTraceRaysIndirectCommand2KHR-flags-03514NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by hitShaderBindingTableAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero
VUID-VkTraceRaysIndirectCommand2KHR-flags-03696NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, hitShaderBindingTableAddress must not be zero
VUID-VkTraceRaysIndirectCommand2KHR-flags-03697NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, hitShaderBindingTableAddress must not be zero
VUID-VkTraceRaysIndirectCommand2KHR-height-03639NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreheight must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03691NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the buffer from which callableShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03692NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreThe buffer from which the callableShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03693NNoneexplicitVkTraceRaysIndirectCommand2KHRcorecallableShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03687NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the buffer from which hitShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03688NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreThe buffer from which the hitShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03689NNoneexplicitVkTraceRaysIndirectCommand2KHRcorehitShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04735NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreAny non-zero hit shader group entries in the table identified by hitShaderBindingTableAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04736NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreAny non-zero hit shader group entries in the table identified by hitShaderBindingTableAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03683NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the buffer from which missShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03684NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreThe buffer from which the missShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03685NNoneexplicitVkTraceRaysIndirectCommand2KHRcoremissShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03680NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreIf the buffer from which raygenShaderRecordAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03681NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreThe buffer from which the raygenShaderRecordAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03682NNoneexplicitVkTraceRaysIndirectCommand2KHRcoreraygenShaderRecordAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03686NNoneexplicitVkTraceRaysIndirectCommand2KHRcoremissShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03690NNoneexplicitVkTraceRaysIndirectCommand2KHRcorehitShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03694NNoneexplicitVkTraceRaysIndirectCommand2KHRcorecallableShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-04029NNoneexplicitVkTraceRaysIndirectCommand2KHRcoremissShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-stride-04035NNoneexplicitVkTraceRaysIndirectCommand2KHRcorehitShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-stride-04041NNoneexplicitVkTraceRaysIndirectCommand2KHRcorecallableShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-width-03638NNoneexplicitVkTraceRaysIndirectCommand2KHRcorewidth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-VkTraceRaysIndirectCommand2KHR-width-03641NNoneexplicitVkTraceRaysIndirectCommand2KHRcorewidth × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-VkTraceRaysIndirectCommandKHR-depth-03640YNegativeGpuAVRayTracing.CmdTraceRaysIndirectKHRexplicitVkTraceRaysIndirectCommandKHRcoredepth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-VkTraceRaysIndirectCommandKHR-height-03639YNegativeGpuAVRayTracing.CmdTraceRaysIndirectKHRexplicitVkTraceRaysIndirectCommandKHRcoreheight must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-VkTraceRaysIndirectCommandKHR-width-03638YNegativeGpuAVRayTracing.CmdTraceRaysIndirectKHRexplicitVkTraceRaysIndirectCommandKHRcorewidth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-VkTraceRaysIndirectCommandKHR-width-03641NNoneexplicitVkTraceRaysIndirectCommandKHRcorewidth × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-VkTransformMatrixKHR-matrix-03799NNoneexplicitVkTransformMatrixKHRcoreThe first three columns of matrix must define an invertible 3x3 matrix
VUID-VkValidationCacheCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkValidationCacheCreateInfoEXTcoreflags must be 0
VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01534NNoneexplicitVkValidationCacheCreateInfoEXTcoreIf initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetValidationCacheDataEXT when pInitialData was originally retrieved
VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01535NNoneexplicitVkValidationCacheCreateInfoEXTcoreIf initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetValidationCacheDataEXT
VUID-VkValidationCacheCreateInfoEXT-pInitialData-parameterYNoneimplicitVkValidationCacheCreateInfoEXTcoreIf initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes
VUID-VkValidationCacheCreateInfoEXT-pNext-pNextYNoneimplicitVkValidationCacheCreateInfoEXTcorepNext must be NULL
VUID-VkValidationCacheCreateInfoEXT-sType-sTypeYNoneimplicitVkValidationCacheCreateInfoEXTcoresType must be VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
VUID-VkValidationFeaturesEXT-pDisabledValidationFeatures-parameterNNoneimplicitVkValidationFeaturesEXTcoreIf disabledValidationFeatureCount is not 0, pDisabledValidationFeatures must be a valid pointer to an array of disabledValidationFeatureCount valid VkValidationFeatureDisableEXT values
VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967YNegativeGpuAV.ValidationFeaturesexplicitVkValidationFeaturesEXTcoreIf the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, then it must also contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968YNegativeGpuAV.ValidationFeaturesexplicitVkValidationFeaturesEXTcoreIf the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, then it must not contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-parameterNNoneimplicitVkValidationFeaturesEXTcoreIf enabledValidationFeatureCount is not 0, pEnabledValidationFeatures must be a valid pointer to an array of enabledValidationFeatureCount valid VkValidationFeatureEnableEXT values
VUID-VkValidationFeaturesEXT-sType-sTypeYNoneimplicitVkValidationFeaturesEXTcoresType must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
VUID-VkValidationFlagsEXT-disabledValidationCheckCount-arraylengthNNoneimplicitVkValidationFlagsEXTcoredisabledValidationCheckCount must be greater than 0
VUID-VkValidationFlagsEXT-pDisabledValidationChecks-parameterNNoneimplicitVkValidationFlagsEXTcorepDisabledValidationChecks must be a valid pointer to an array of disabledValidationCheckCount valid VkValidationCheckEXT values
VUID-VkValidationFlagsEXT-sType-sTypeYNoneimplicitVkValidationFlagsEXTcoresType must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
VUID-VkVertexInputAttributeDescription-binding-00621YNegativeVertexInput.InputAttributeMaxVertexInputBindingsexplicitVkVertexInputAttributeDescriptioncorebinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputAttributeDescription-format-00623YNegativeVertexInput.AttributeFormat, NegativeVertexInput.InputAttributeMaxVertexInputAttributes, NegativeVertexInput.InputAttributeMaxVertexInputBindingsexplicitVkVertexInputAttributeDescriptioncoreThe format features of format must contain VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
VUID-VkVertexInputAttributeDescription-format-parameterYNoneimplicitVkVertexInputAttributeDescriptioncoreformat must be a valid VkFormat value
VUID-VkVertexInputAttributeDescription-location-00620YNegativeVertexInput.InputAttributeMaxVertexInputAttributesexplicitVkVertexInputAttributeDescriptioncorelocation must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkVertexInputAttributeDescription-offset-00622YNegativeVertexInput.AttributeDescriptionOffsetexplicitVkVertexInputAttributeDescriptioncoreoffset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset
VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457YNegativePortabilitySubset.VertexAttributesexplicitVkVertexInputAttributeDescriptioncoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStride is VK_FALSE, the sum of offset plus the size of the vertex attribute data described by format must not be greater than stride in the VkVertexInputBindingDescription referenced in binding
VUID-VkVertexInputAttributeDescription2EXT-binding-06229YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXTcorebinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputAttributeDescription2EXT-format-04805YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXTcoreThe format features of format must contain VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
VUID-VkVertexInputAttributeDescription2EXT-format-parameterYNoneimplicitVkVertexInputAttributeDescription2EXTcoreformat must be a valid VkFormat value
VUID-VkVertexInputAttributeDescription2EXT-location-06228YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXTcorelocation must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkVertexInputAttributeDescription2EXT-offset-06230YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXTcoreoffset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset
VUID-VkVertexInputAttributeDescription2EXT-sType-sTypeYNoneimplicitVkVertexInputAttributeDescription2EXTcoresType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806NNoneexplicitVkVertexInputAttributeDescription2EXTcoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStride is VK_FALSE, the sum of offset plus the size of the vertex attribute data described by format must not be greater than stride in the VkVertexInputBindingDescription2EXT referenced in binding
VUID-VkVertexInputBindingDescription-binding-00618YNegativeVertexInput.InputBindingMaxVertexInputBindingsexplicitVkVertexInputBindingDescriptioncorebinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDescription-inputRate-parameterYNoneimplicitVkVertexInputBindingDescriptioncoreinputRate must be a valid VkVertexInputRate value
VUID-VkVertexInputBindingDescription-stride-00619YNegativeVertexInput.InputBindingMaxVertexInputBindingStrideexplicitVkVertexInputBindingDescriptioncorestride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-VkVertexInputBindingDescription-stride-04456YNegativePortabilitySubset.VertexInputStrideexplicitVkVertexInputBindingDescriptioncoreIf the VK_KHR_portability_subset extension is enabled, stride must be a multiple of, and at least as large as, VkPhysicalDevicePortabilitySubsetPropertiesKHR::minVertexInputBindingStrideAlignment
VUID-VkVertexInputBindingDescription2EXT-binding-04796YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXTcorebinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDescription2EXT-divisor-04798YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXTcoreIf the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0
VUID-VkVertexInputBindingDescription2EXT-divisor-04799YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXTcoreIf the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1
VUID-VkVertexInputBindingDescription2EXT-divisor-06226YNegativeDynamicState.VertexInputDynamicStateDivisorexplicitVkVertexInputBindingDescription2EXTcoredivisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive
VUID-VkVertexInputBindingDescription2EXT-divisor-06227YNegativeDynamicState.VertexInputDynamicStateDivisorexplicitVkVertexInputBindingDescription2EXTcoreIf divisor is not 1 then inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE
VUID-VkVertexInputBindingDescription2EXT-inputRate-parameterYNoneimplicitVkVertexInputBindingDescription2EXTcoreinputRate must be a valid VkVertexInputRate value
VUID-VkVertexInputBindingDescription2EXT-sType-sTypeYNoneimplicitVkVertexInputBindingDescription2EXTcoresType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
VUID-VkVertexInputBindingDescription2EXT-stride-04797YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXTcorestride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-VkVertexInputBindingDivisorDescriptionKHR-binding-01869YNegativeVertexInput.DivisorExtension, NegativeVertexInput.DivisorExtensionKHRexplicitVkVertexInputBindingDivisorDescriptionKHRcorebinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870YNegativeVertexInput.DivisorExtension, NegativeVertexInput.DivisorExtensionKHRexplicitVkVertexInputBindingDivisorDescriptionKHRcoredivisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::maxVertexAttribDivisor, inclusive
VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871YNegativeVertexInput.DivisorExtension, NegativeVertexInput.DivisorExtensionKHRexplicitVkVertexInputBindingDivisorDescriptionKHRcoreVkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding
VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229YNegativeVertexInput.DivisorDisabled, NegativeVertexInput.DivisorDisabledKHRexplicitVkVertexInputBindingDivisorDescriptionKHRcoreIf the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1
VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228YNegativeVertexInput.DivisorInstanceRateZero, NegativeVertexInput.DivisorInstanceRateZeroKHRexplicitVkVertexInputBindingDivisorDescriptionKHRcoreIf the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0
VUID-VkViSurfaceCreateInfoNN-flags-zerobitmaskYNoneimplicitVkViSurfaceCreateInfoNNcoreflags must be 0
VUID-VkViSurfaceCreateInfoNN-pNext-pNextYNoneimplicitVkViSurfaceCreateInfoNNcorepNext must be NULL
VUID-VkViSurfaceCreateInfoNN-sType-sTypeYNoneimplicitVkViSurfaceCreateInfoNNcoresType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
VUID-VkViSurfaceCreateInfoNN-window-01318NNoneexplicitVkViSurfaceCreateInfoNNcorewindow must be a valid nn::vi::NativeWindowHandle
VUID-VkVideoBeginCodingInfoKHR-commonparentYNoneimplicitVkVideoBeginCodingInfoKHRcoreBoth of videoSession, and videoSessionParameters that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkVideoBeginCodingInfoKHR-flags-07244YNegativeVideo.BeginCodingInvalidSeparateReferenceImagesexplicitVkVideoBeginCodingInfoKHRcoreIf VkVideoCapabilitiesKHR::flags does not include VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile videoSession was created with, then pPictureResource->imageViewBinding of all elements of pReferenceSlots with a non-NULL pPictureResource member must specify image views created from the same image
VUID-VkVideoBeginCodingInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoBeginCodingInfoKHRcoreflags must be 0
VUID-VkVideoBeginCodingInfoKHR-pNext-pNextYNoneimplicitVkVideoBeginCodingInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264GopRemainingFrameInfoKHR, VkVideoEncodeH264RateControlInfoKHR, VkVideoEncodeH265GopRemainingFrameInfoKHR, VkVideoEncodeH265RateControlInfoKHR, or VkVideoEncodeRateControlInfoKHR
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07238YNegativeVideo.BeginCodingResourcesNotUniqueexplicitVkVideoBeginCodingInfoKHRcoreEach video picture resource corresponding to any non-NULL pPictureResource member specified in the elements of pReferenceSlots must be unique within pReferenceSlots
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07240YNegativeVideo.BeginCodingIncompatRefPicProfileexplicitVkVideoBeginCodingInfoKHRcoreIf the pPictureResource member of any element of pReferenceSlots is not NULL, then the image view specified in pPictureResource->imageViewBinding for that element must be compatible with the video profile videoSession was created with
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07241YNegativeVideo.BeginCodingReferenceFormatMismatchexplicitVkVideoBeginCodingInfoKHRcoreIf the pPictureResource member of any element of pReferenceSlots is not NULL, then the format of the image view specified in pPictureResource->imageViewBinding for that element must match the VkVideoSessionCreateInfoKHR::referencePictureFormat videoSession was created with
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07242YNegativeVideo.BeginCodingInvalidCodedOffsetexplicitVkVideoBeginCodingInfoKHRcoreIf the pPictureResource member of any element of pReferenceSlots is not NULL, then its codedOffset member must be an integer multiple of codedOffsetGranularity
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07243YNegativeVideo.BeginCodingInvalidCodedExtentexplicitVkVideoBeginCodingInfoKHRcoreIf the pPictureResource member of any element of pReferenceSlots is not NULL, then its codedExtent member must be between minCodedExtent and maxCodedExtent, inclusive, videoSession was created with
VUID-VkVideoBeginCodingInfoKHR-pReferenceSlots-parameterYNoneimplicitVkVideoBeginCodingInfoKHRcoreIf referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoBeginCodingInfoKHR-sType-sTypeYNoneimplicitVkVideoBeginCodingInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR
VUID-VkVideoBeginCodingInfoKHR-sType-uniqueYNoneimplicitVkVideoBeginCodingInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoBeginCodingInfoKHR-slotIndex-04856YNegativeVideo.BeginCodingInvalidSlotIndexexplicitVkVideoBeginCodingInfoKHRcoreEach non-negative VkVideoReferenceSlotInfoKHR::slotIndex specified in the elements of pReferenceSlots must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when videoSession was created
VUID-VkVideoBeginCodingInfoKHR-slotIndex-07245YNegativeVideo.BeginCodingMissingDecodeDpbUsageexplicitVkVideoBeginCodingInfoKHRcoreIf videoSession was created with a decode operation and the slotIndex member of any element of pReferenceSlots is not negative, then the image view specified in pPictureResource->imageViewBinding for that element must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
VUID-VkVideoBeginCodingInfoKHR-slotIndex-07246YNegativeVideo.BeginCodingMissingEncodeDpbUsageexplicitVkVideoBeginCodingInfoKHRcoreIf videoSession was created with an encode operation and the slotIndex member of any element of pReferenceSlots is not negative, then the image view specified in pPictureResource->imageViewBinding for that element must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
VUID-VkVideoBeginCodingInfoKHR-videoSession-07237YNegativeVideo.BeginCodingSessionMemoryNotBoundexplicitVkVideoBeginCodingInfoKHRcorevideoSession must have memory bound to all of its memory bindings returned by vkGetVideoSessionMemoryRequirementsKHR for videoSession
VUID-VkVideoBeginCodingInfoKHR-videoSession-07247YNegativeVideo.BeginCodingDecodeH264RequiresParamsexplicitVkVideoBeginCodingInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE
VUID-VkVideoBeginCodingInfoKHR-videoSession-07248YNegativeVideo.BeginCodingDecodeH265RequiresParamsexplicitVkVideoBeginCodingInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE
VUID-VkVideoBeginCodingInfoKHR-videoSession-07249YNegativeVideo.BeginCodingEncodeH264RequiresParamsexplicitVkVideoBeginCodingInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE
VUID-VkVideoBeginCodingInfoKHR-videoSession-07250YNegativeVideo.BeginCodingEncodeH265RequiresParamsexplicitVkVideoBeginCodingInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE
VUID-VkVideoBeginCodingInfoKHR-videoSession-parameterYNoneimplicitVkVideoBeginCodingInfoKHRcorevideoSession must be a valid VkVideoSessionKHR handle
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-04857YNegativeVideo.BeginCodingInvalidSessionParamsexplicitVkVideoBeginCodingInfoKHRcoreIf videoSessionParameters is not VK_NULL_HANDLE, it must have been created with videoSession specified in VkVideoSessionParametersCreateInfoKHR::videoSession
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parameterYNoneimplicitVkVideoBeginCodingInfoKHRcoreIf videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parentNNoneimplicitVkVideoBeginCodingInfoKHRcoreIf videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from videoSession
VUID-VkVideoCapabilitiesKHR-pNext-pNextYNoneimplicitVkVideoCapabilitiesKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeCapabilitiesKHR, VkVideoDecodeH264CapabilitiesKHR, VkVideoDecodeH265CapabilitiesKHR, VkVideoEncodeCapabilitiesKHR, VkVideoEncodeH264CapabilitiesKHR, or VkVideoEncodeH265CapabilitiesKHR
VUID-VkVideoCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoCapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR
VUID-VkVideoCapabilitiesKHR-sType-uniqueYNoneimplicitVkVideoCapabilitiesKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoCodingControlInfoKHR-flags-07018YNegativeVideo.EncodeRateControlMissingChainexplicitVkVideoCodingControlInfoKHRcoreIf flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, then the pNext chain must include a VkVideoEncodeRateControlInfoKHR structure
VUID-VkVideoCodingControlInfoKHR-flags-08349YNegativeVideo.EncodeQualityLevelControlMissingChainexplicitVkVideoCodingControlInfoKHRcoreIf flags includes VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR, then the pNext chain must include a VkVideoEncodeQualityLevelInfoKHR structure
VUID-VkVideoCodingControlInfoKHR-flags-parameterYNoneimplicitVkVideoCodingControlInfoKHRcoreflags must be a valid combination of VkVideoCodingControlFlagBitsKHR values
VUID-VkVideoCodingControlInfoKHR-flags-requiredbitmaskYNoneimplicitVkVideoCodingControlInfoKHRcoreflags must not be 0
VUID-VkVideoCodingControlInfoKHR-pNext-pNextYNoneimplicitVkVideoCodingControlInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264RateControlInfoKHR, VkVideoEncodeH265RateControlInfoKHR, VkVideoEncodeQualityLevelInfoKHR, or VkVideoEncodeRateControlInfoKHR
VUID-VkVideoCodingControlInfoKHR-sType-sTypeYNoneimplicitVkVideoCodingControlInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR
VUID-VkVideoCodingControlInfoKHR-sType-uniqueYNoneimplicitVkVideoCodingControlInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoDecodeCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoDecodeCapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR
VUID-VkVideoDecodeH264CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264CapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR
VUID-VkVideoDecodeH264DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoDecodeH264DpbSlotInfoKHRcorepStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH264ReferenceInfo value
VUID-VkVideoDecodeH264DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264DpbSlotInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR
VUID-VkVideoDecodeH264PictureInfoKHR-pSliceOffsets-parameterYNoneimplicitVkVideoDecodeH264PictureInfoKHRcorepSliceOffsets must be a valid pointer to an array of sliceCount uint32_t values
VUID-VkVideoDecodeH264PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoDecodeH264PictureInfoKHRcorepStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH264PictureInfo value
VUID-VkVideoDecodeH264PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264PictureInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR
VUID-VkVideoDecodeH264PictureInfoKHR-sliceCount-arraylengthYNoneimplicitVkVideoDecodeH264PictureInfoKHRcoresliceCount must be greater than 0
VUID-VkVideoDecodeH264ProfileInfoKHR-pictureLayout-parameterYNoneimplicitVkVideoDecodeH264ProfileInfoKHRcoreIf pictureLayout is not 0, pictureLayout must be a valid VkVideoDecodeH264PictureLayoutFlagBitsKHR value
VUID-VkVideoDecodeH264ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264ProfileInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-None-04825YNegativeVideo.DecodeH264ParametersAddInfoUniquenessexplicitVkVideoDecodeH264SessionParametersAddInfoKHRcoreThe seq_parameter_set_id member of each StdVideoH264SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-None-04826YNegativeVideo.DecodeH264ParametersAddInfoUniquenessexplicitVkVideoDecodeH264SessionParametersAddInfoKHRcoreThe pair constructed from the seq_parameter_set_id and pic_parameter_set_id members of each StdVideoH264PictureParameterSet structure specified in the elements of pStdPPSs must be unique within pStdPPSs
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-pStdPPSs-parameterYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoKHRcoreIf stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-pStdSPSs-parameterYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoKHRcoreIf stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR
VUID-VkVideoDecodeH264SessionParametersCreateInfoKHR-pParametersAddInfo-parameterYNoneimplicitVkVideoDecodeH264SessionParametersCreateInfoKHRcoreIf pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH264SessionParametersAddInfoKHR structure
VUID-VkVideoDecodeH264SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264SessionParametersCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoDecodeH265CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265CapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR
VUID-VkVideoDecodeH265DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoDecodeH265DpbSlotInfoKHRcorepStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH265ReferenceInfo value
VUID-VkVideoDecodeH265DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265DpbSlotInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR
VUID-VkVideoDecodeH265PictureInfoKHR-pSliceSegmentOffsets-parameterYNoneimplicitVkVideoDecodeH265PictureInfoKHRcorepSliceSegmentOffsets must be a valid pointer to an array of sliceSegmentCount uint32_t values
VUID-VkVideoDecodeH265PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoDecodeH265PictureInfoKHRcorepStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH265PictureInfo value
VUID-VkVideoDecodeH265PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265PictureInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR
VUID-VkVideoDecodeH265PictureInfoKHR-sliceSegmentCount-arraylengthYNoneimplicitVkVideoDecodeH265PictureInfoKHRcoresliceSegmentCount must be greater than 0
VUID-VkVideoDecodeH265ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265ProfileInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04833YNegativeVideo.DecodeH265ParametersAddInfoUniquenessexplicitVkVideoDecodeH265SessionParametersAddInfoKHRcoreThe vps_video_parameter_set_id member of each StdVideoH265VideoParameterSet structure specified in the elements of pStdVPSs must be unique within pStdVPSs
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04834YNegativeVideo.DecodeH265ParametersAddInfoUniquenessexplicitVkVideoDecodeH265SessionParametersAddInfoKHRcoreThe pair constructed from the sps_video_parameter_set_id and sps_seq_parameter_set_id members of each StdVideoH265SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04835YNegativeVideo.DecodeH265ParametersAddInfoUniquenessexplicitVkVideoDecodeH265SessionParametersAddInfoKHRcoreThe triplet constructed from the sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id members of each StdVideoH265PictureParameterSet structure specified in the elements of pStdPPSs must be unique within pStdPPSs
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdPPSs-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoKHRcoreIf stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdSPSs-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoKHRcoreIf stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdVPSs-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoKHRcoreIf stdVPSCount is not 0, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR
VUID-VkVideoDecodeH265SessionParametersCreateInfoKHR-pParametersAddInfo-parameterYNoneimplicitVkVideoDecodeH265SessionParametersCreateInfoKHRcoreIf pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH265SessionParametersAddInfoKHR structure
VUID-VkVideoDecodeH265SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265SessionParametersCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoDecodeInfoKHR-dstPictureResource-parameterNNoneimplicitVkVideoDecodeInfoKHRcoredstPictureResource must be a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoDecodeInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoDecodeInfoKHRcoreflags must be 0
VUID-VkVideoDecodeInfoKHR-pNext-pNextYNoneimplicitVkVideoDecodeInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeH264PictureInfoKHR, VkVideoDecodeH265PictureInfoKHR, or VkVideoInlineQueryInfoKHR
VUID-VkVideoDecodeInfoKHR-pPictureResource-07172YNegativeVideo.DecodeReferenceResourceNullexplicitVkVideoDecodeInfoKHRcoreThe pPictureResource member of each element of pReferenceSlots must not be NULL
VUID-VkVideoDecodeInfoKHR-pReferenceSlots-parameterYNoneimplicitVkVideoDecodeInfoKHRcoreIf referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-07168YNegativeVideo.DecodeInvalidSetupSlotIndexexplicitVkVideoDecodeInfoKHRcoreIf pSetupReferenceSlot is not NULL, then its slotIndex member must not be negative
VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-07169YNegativeVideo.DecodeSetupResourceNullexplicitVkVideoDecodeInfoKHRcoreIf pSetupReferenceSlot is not NULL, then its pPictureResource must not be NULL
VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-parameterYNoneimplicitVkVideoDecodeInfoKHRcoreIf pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure
VUID-VkVideoDecodeInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR
VUID-VkVideoDecodeInfoKHR-sType-uniqueYNoneimplicitVkVideoDecodeInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoDecodeInfoKHR-slotIndex-07171YNegativeVideo.DecodeInvalidRefSlotIndexexplicitVkVideoDecodeInfoKHRcoreThe slotIndex member of each element of pReferenceSlots must not be negative
VUID-VkVideoDecodeInfoKHR-srcBuffer-07165YNegativeVideo.DecodeBufferMissingDecodeSrcUsageexplicitVkVideoDecodeInfoKHRcoresrcBuffer must have been created with VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR set
VUID-VkVideoDecodeInfoKHR-srcBuffer-parameterYNoneimplicitVkVideoDecodeInfoKHRcoresrcBuffer must be a valid VkBuffer handle
VUID-VkVideoDecodeInfoKHR-srcBufferOffset-07166YNegativeVideo.DecodeBufferOffsetOutOfBoundsexplicitVkVideoDecodeInfoKHRcoresrcBufferOffset must be less than the size of srcBuffer
VUID-VkVideoDecodeInfoKHR-srcBufferRange-07167YNegativeVideo.DecodeBufferOffsetOutOfBounds, NegativeVideo.DecodeBufferRangeOutOfBoundsexplicitVkVideoDecodeInfoKHRcoresrcBufferRange must be less than or equal to the size of srcBuffer minus srcBufferOffset
VUID-VkVideoDecodeUsageInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeUsageInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR
VUID-VkVideoDecodeUsageInfoKHR-videoUsageHints-parameterYNoneimplicitVkVideoDecodeUsageInfoKHRcorevideoUsageHints must be a valid combination of VkVideoDecodeUsageFlagBitsKHR values
VUID-VkVideoEncodeCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeCapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
VUID-VkVideoEncodeH264CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264CapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR
VUID-VkVideoEncodeH264DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoEncodeH264DpbSlotInfoKHRcorepStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH264ReferenceInfo value
VUID-VkVideoEncodeH264DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264DpbSlotInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR
VUID-VkVideoEncodeH264GopRemainingFrameInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264GopRemainingFrameInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR
VUID-VkVideoEncodeH264NaluSliceInfoKHR-pNext-pNextNNoneimplicitVkVideoEncodeH264NaluSliceInfoKHRcorepNext must be NULL
VUID-VkVideoEncodeH264NaluSliceInfoKHR-pStdSliceHeader-parameterYNoneimplicitVkVideoEncodeH264NaluSliceInfoKHRcorepStdSliceHeader must be a valid pointer to a valid StdVideoEncodeH264SliceHeader value
VUID-VkVideoEncodeH264NaluSliceInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264NaluSliceInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR
VUID-VkVideoEncodeH264PictureInfoKHR-flags-08304YNegativeVideo.EncodeCapsH264GenPrefixNaluexplicitVkVideoEncodeH264PictureInfoKHRcoreIf VkVideoEncodeH264CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR, then generatePrefixNalu must be VK_FALSE
VUID-VkVideoEncodeH264PictureInfoKHR-flags-08314YNegativeVideo.EncodeCapsH264WeightTableexplicitVkVideoEncodeH264PictureInfoKHRcoreIf VkVideoEncodeH264CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR and the slice corresponding to any element of pNaluSliceEntries uses explicit weighted sample prediction, then VkVideoEncodeH264NaluSliceInfoKHR::pStdSliceHeader->pWeightTable must not be NULL for that element of pNaluSliceEntries
VUID-VkVideoEncodeH264PictureInfoKHR-flags-08315YNegativeVideo.EncodeCapsH264DifferentSliceTypesexplicitVkVideoEncodeH264PictureInfoKHRcoreIf VkVideoEncodeH264CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR, then VkVideoEncodeH264NaluSliceInfoKHR::pStdSliceHeader->slice_type must be identical for all elements of pNaluSliceEntries
VUID-VkVideoEncodeH264PictureInfoKHR-naluSliceEntryCount-08301YNegativeVideo.EncodeCapsH264MaxSliceCount, NegativeVideo.EncodeCapsH264MoreSlicesThanMBRows, NegativeVideo.EncodeCapsH264MoreSlicesThanMBsexplicitVkVideoEncodeH264PictureInfoKHRcorenaluSliceEntryCount must be between 1 and VkVideoEncodeH264CapabilitiesKHR::maxSliceCount, inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeH264PictureInfoKHR-naluSliceEntryCount-arraylengthYNoneimplicitVkVideoEncodeH264PictureInfoKHRcorenaluSliceEntryCount must be greater than 0
VUID-VkVideoEncodeH264PictureInfoKHR-pNaluSliceEntries-parameterYNoneimplicitVkVideoEncodeH264PictureInfoKHRcorepNaluSliceEntries must be a valid pointer to an array of naluSliceEntryCount valid VkVideoEncodeH264NaluSliceInfoKHR structures
VUID-VkVideoEncodeH264PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoEncodeH264PictureInfoKHRcorepStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH264PictureInfo value
VUID-VkVideoEncodeH264PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264PictureInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR
VUID-VkVideoEncodeH264ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264ProfileInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR
VUID-VkVideoEncodeH264QualityLevelPropertiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264QualityLevelPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR
VUID-VkVideoEncodeH264RateControlInfoKHR-consecutiveBFrameCount-08285YNegativeVideo.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRcoreIf consecutiveBFrameCount is not 0, then it must be less than gopFrameCount
VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08280YNegativeVideo.EncodeRateControlH264HrdComplianceexplicitVkVideoEncodeH264RateControlInfoKHRcoreIf VkVideoEncodeH264CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR, then flags must not contain VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR
VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08281YNegativeVideo.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRcoreIf flags contains VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR or VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR, then it must also contain VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR
VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08282YNegativeVideo.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRcoreIf flags contains VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR, then it must not also contain VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR
VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08283YNegativeVideo.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRcoreIf flags contains VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR, then gopFrameCount must be greater than 0
VUID-VkVideoEncodeH264RateControlInfoKHR-flags-parameterYNoneimplicitVkVideoEncodeH264RateControlInfoKHRcoreflags must be a valid combination of VkVideoEncodeH264RateControlFlagBitsKHR values
VUID-VkVideoEncodeH264RateControlInfoKHR-idrPeriod-08284YNegativeVideo.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRcoreIf idrPeriod is not 0, then it must be greater than or equal to gopFrameCount
VUID-VkVideoEncodeH264RateControlInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264RateControlInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-maxFrameSize-parameterNNoneimplicitVkVideoEncodeH264RateControlLayerInfoKHRcoremaxFrameSize must be a valid VkVideoEncodeH264FrameSizeKHR structure
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-maxQp-parameterNNoneimplicitVkVideoEncodeH264RateControlLayerInfoKHRcoremaxQp must be a valid VkVideoEncodeH264QpKHR structure
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-minQp-parameterNNoneimplicitVkVideoEncodeH264RateControlLayerInfoKHRcoreminQp must be a valid VkVideoEncodeH264QpKHR structure
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264RateControlLayerInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMaxQp-08287YNegativeVideo.EncodeRateControlH264MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlH264PerPicTypeQp, NegativeVideo.EncodeRateControlH264QpRange, NegativeVideo.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRcoreIf useMaxQp is VK_TRUE, then the qpI, qpP, and qpB members of maxQp must all be between VkVideoEncodeH264CapabilitiesKHR::minQp and VkVideoEncodeH264CapabilitiesKHR::maxQp, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMaxQp-08289YNegativeVideo.EncodeRateControlH264MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlH264PerPicTypeQp, NegativeVideo.EncodeRateControlH264QpRange, NegativeVideo.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRcoreIf useMaxQp is VK_TRUE and VkVideoEncodeH264CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR, then the qpI, qpP, and qpB members of maxQp must all specify the same value
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMinQp-08286YNegativeVideo.EncodeRateControlH264PerPicTypeQp, NegativeVideo.EncodeRateControlH264QpRange, NegativeVideo.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRcoreIf useMinQp is VK_TRUE, then the qpI, qpP, and qpB members of minQp must all be between VkVideoEncodeH264CapabilitiesKHR::minQp and VkVideoEncodeH264CapabilitiesKHR::maxQp, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMinQp-08288YNegativeVideo.EncodeRateControlH264MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlH264PerPicTypeQp, NegativeVideo.EncodeRateControlH264QpRange, NegativeVideo.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRcoreIf useMinQp is VK_TRUE and VkVideoEncodeH264CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR, then the qpI, qpP, and qpB members of minQp must all specify the same value
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMinQp-08374YNegativeVideo.EncodeRateControlH264MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRcoreIf useMinQp and useMaxQp are both VK_TRUE, then the qpI, qpP, and qpB members of minQp must all be less than or equal to the respective members of maxQp
VUID-VkVideoEncodeH264SessionCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-None-04837YNegativeVideo.EncodeH264ParametersAddInfoUniquenessexplicitVkVideoEncodeH264SessionParametersAddInfoKHRcoreThe seq_parameter_set_id member of each StdVideoH264SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs
VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-None-04838YNegativeVideo.EncodeH264ParametersAddInfoUniquenessexplicitVkVideoEncodeH264SessionParametersAddInfoKHRcoreThe pair constructed from the seq_parameter_set_id and pic_parameter_set_id members of each StdVideoH264PictureParameterSet structure specified in the elements of pStdPPSs must be unique within pStdPPSs
VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-pStdPPSs-parameterNNoneimplicitVkVideoEncodeH264SessionParametersAddInfoKHRcoreIf stdPPSCount is not 0, and pStdPPSs is not NULL, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values
VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-pStdSPSs-parameterNNoneimplicitVkVideoEncodeH264SessionParametersAddInfoKHRcoreIf stdSPSCount is not 0, and pStdSPSs is not NULL, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values
VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersCreateInfoKHR-pParametersAddInfo-parameterYNoneimplicitVkVideoEncodeH264SessionParametersCreateInfoKHRcoreIf pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH264SessionParametersAddInfoKHR structure
VUID-VkVideoEncodeH264SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersFeedbackInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersFeedbackInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersGetInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersGetInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersGetInfoKHR-writeStdSPS-08279YNegativeVideo.GetEncodedSessionParamsH264explicitVkVideoEncodeH264SessionParametersGetInfoKHRcoreAt least one of writeStdSPS and writeStdPPS must be set to VK_TRUE
VUID-VkVideoEncodeH265CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265CapabilitiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR
VUID-VkVideoEncodeH265DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoEncodeH265DpbSlotInfoKHRcorepStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH265ReferenceInfo value
VUID-VkVideoEncodeH265DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265DpbSlotInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR
VUID-VkVideoEncodeH265GopRemainingFrameInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265GopRemainingFrameInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR
VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-pNext-pNextNNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoKHRcorepNext must be NULL
VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-pStdSliceSegmentHeader-parameterYNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoKHRcorepStdSliceSegmentHeader must be a valid pointer to a valid StdVideoEncodeH265SliceSegmentHeader value
VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08316YNegativeVideo.EncodeCapsH265WeightTableexplicitVkVideoEncodeH265PictureInfoKHRcoreIf VkVideoEncodeH265CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR and the slice segment corresponding to any element of pNaluSliceSegmentEntries uses explicit weighted sample prediction, then VkVideoEncodeH265NaluSliceSegmentInfoKHR::pStdSliceSegmentHeader->pWeightTable must not be NULL for that element of pNaluSliceSegmentEntries
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08317YNegativeVideo.EncodeCapsH265DifferentSliceSegmentTypesexplicitVkVideoEncodeH265PictureInfoKHRcoreIf VkVideoEncodeH265CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR, then VkVideoEncodeH265NaluSliceSegmentInfoKHR::pStdSliceSegmentHeader->slice_type must be identical for all elements of pNaluSliceSegmentEntries
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08323YNegativeVideo.EncodeCapsH265MultipleTilesPerSliceSegmentexplicitVkVideoEncodeH265PictureInfoKHRcoreIf VkVideoEncodeH265CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR, then naluSliceSegmentEntryCount must be greater than or equal to the number of H.265 tiles in the picture
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08324YNegativeVideo.EncodeCapsH265DifferentSliceSegmentTypes, NegativeVideo.EncodeCapsH265MaxSliceSegmentCount, NegativeVideo.EncodeCapsH265MoreSliceSegmentsThanCTBRows, NegativeVideo.EncodeCapsH265MoreSliceSegmentsThanCTBs, NegativeVideo.EncodeCapsH265MultipleSliceSegmentsPerTile, NegativeVideo.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitVkVideoEncodeH265PictureInfoKHRcoreIf VkVideoEncodeH265CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR, then naluSliceSegmentEntryCount must be less than or equal to the number of H.265 tiles in the picture
VUID-VkVideoEncodeH265PictureInfoKHR-naluSliceSegmentEntryCount-08306YNegativeVideo.EncodeCapsH265MaxSliceSegmentCount, NegativeVideo.EncodeCapsH265MoreSliceSegmentsThanCTBRows, NegativeVideo.EncodeCapsH265MoreSliceSegmentsThanCTBsexplicitVkVideoEncodeH265PictureInfoKHRcorenaluSliceSegmentEntryCount must be between 1 and VkVideoEncodeH265CapabilitiesKHR::maxSliceSegmentCount, inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeH265PictureInfoKHR-naluSliceSegmentEntryCount-arraylengthYNoneimplicitVkVideoEncodeH265PictureInfoKHRcorenaluSliceSegmentEntryCount must be greater than 0
VUID-VkVideoEncodeH265PictureInfoKHR-pNaluSliceSegmentEntries-parameterYNoneimplicitVkVideoEncodeH265PictureInfoKHRcorepNaluSliceSegmentEntries must be a valid pointer to an array of naluSliceSegmentEntryCount valid VkVideoEncodeH265NaluSliceSegmentInfoKHR structures
VUID-VkVideoEncodeH265PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoEncodeH265PictureInfoKHRcorepStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH265PictureInfo value
VUID-VkVideoEncodeH265PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265PictureInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR
VUID-VkVideoEncodeH265ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265ProfileInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR
VUID-VkVideoEncodeH265QualityLevelPropertiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265QualityLevelPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR
VUID-VkVideoEncodeH265RateControlInfoKHR-consecutiveBFrameCount-08296YNegativeVideo.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRcoreIf consecutiveBFrameCount is not 0, then it must be less than gopFrameCount
VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08291YNegativeVideo.EncodeRateControlH265HrdComplianceexplicitVkVideoEncodeH265RateControlInfoKHRcoreIf VkVideoEncodeH265CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR, then flags must not contain VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR
VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08292YNegativeVideo.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRcoreIf flags contains VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR or VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR, then it must also contain VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR
VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08293YNegativeVideo.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRcoreIf flags contains VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR, then it must not also contain VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR
VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08294YNegativeVideo.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRcoreIf flags contains VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR, then gopFrameCount must be greater than 0
VUID-VkVideoEncodeH265RateControlInfoKHR-flags-parameterYNoneimplicitVkVideoEncodeH265RateControlInfoKHRcoreflags must be a valid combination of VkVideoEncodeH265RateControlFlagBitsKHR values
VUID-VkVideoEncodeH265RateControlInfoKHR-idrPeriod-08295YNegativeVideo.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRcoreIf idrPeriod is not 0, then it must be greater than or equal to gopFrameCount
VUID-VkVideoEncodeH265RateControlInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265RateControlInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-maxFrameSize-parameterNNoneimplicitVkVideoEncodeH265RateControlLayerInfoKHRcoremaxFrameSize must be a valid VkVideoEncodeH265FrameSizeKHR structure
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-maxQp-parameterNNoneimplicitVkVideoEncodeH265RateControlLayerInfoKHRcoremaxQp must be a valid VkVideoEncodeH265QpKHR structure
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-minQp-parameterNNoneimplicitVkVideoEncodeH265RateControlLayerInfoKHRcoreminQp must be a valid VkVideoEncodeH265QpKHR structure
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265RateControlLayerInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMaxQp-08298YNegativeVideo.EncodeRateControlH265MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlH265PerPicTypeQp, NegativeVideo.EncodeRateControlH265QpRange, NegativeVideo.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRcoreIf useMaxQp is VK_TRUE, then the qpI, qpP, and qpB members of maxQp must all be between VkVideoEncodeH265CapabilitiesKHR::minQp and VkVideoEncodeH265CapabilitiesKHR::maxQp, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMaxQp-08300YNegativeVideo.EncodeRateControlH265MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlH265PerPicTypeQp, NegativeVideo.EncodeRateControlH265QpRange, NegativeVideo.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRcoreIf useMaxQp is VK_TRUE and VkVideoEncodeH265CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR, then the qpI, qpP, and qpB members of maxQp must all specify the same value
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMinQp-08297YNegativeVideo.EncodeRateControlH265PerPicTypeQp, NegativeVideo.EncodeRateControlH265QpRange, NegativeVideo.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRcoreIf useMinQp is VK_TRUE, then the qpI, qpP, and qpB members of minQp must all be between VkVideoEncodeH265CapabilitiesKHR::minQp and VkVideoEncodeH265CapabilitiesKHR::maxQp, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMinQp-08299YNegativeVideo.EncodeRateControlH265MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlH265PerPicTypeQp, NegativeVideo.EncodeRateControlH265QpRange, NegativeVideo.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRcoreIf useMinQp is VK_TRUE and VkVideoEncodeH265CapabilitiesKHR::flags, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile, does not include VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR, then the qpI, qpP, and qpB members of minQp must all specify the same value
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMinQp-08375YNegativeVideo.EncodeRateControlH265MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRcoreIf useMinQp and useMaxQp are both VK_TRUE, then the qpI, qpP, and qpB members of minQp must all be less than or equal to the respective members of maxQp
VUID-VkVideoEncodeH265SessionCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-None-06438YNegativeVideo.EncodeH265ParametersAddInfoUniquenessexplicitVkVideoEncodeH265SessionParametersAddInfoKHRcoreThe vps_video_parameter_set_id member of each StdVideoH265VideoParameterSet structure specified in the elements of pStdVPSs must be unique within pStdVPSs
VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-None-06439YNegativeVideo.EncodeH265ParametersAddInfoUniquenessexplicitVkVideoEncodeH265SessionParametersAddInfoKHRcoreThe pair constructed from the sps_video_parameter_set_id and sps_seq_parameter_set_id members of each StdVideoH265SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs
VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-None-06440YNegativeVideo.EncodeH265ParametersAddInfoUniquenessexplicitVkVideoEncodeH265SessionParametersAddInfoKHRcoreThe triplet constructed from the sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id members of each StdVideoH265PictureParameterSet structure specified in the elements of pStdPPSs must be unique within pStdPPSs
VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-pStdPPSs-parameterNNoneimplicitVkVideoEncodeH265SessionParametersAddInfoKHRcoreIf stdPPSCount is not 0, and pStdPPSs is not NULL, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values
VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-pStdSPSs-parameterNNoneimplicitVkVideoEncodeH265SessionParametersAddInfoKHRcoreIf stdSPSCount is not 0, and pStdSPSs is not NULL, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values
VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-pStdVPSs-parameterNNoneimplicitVkVideoEncodeH265SessionParametersAddInfoKHRcoreIf stdVPSCount is not 0, and pStdVPSs is not NULL, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values
VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersCreateInfoKHR-pParametersAddInfo-parameterYNoneimplicitVkVideoEncodeH265SessionParametersCreateInfoKHRcoreIf pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH265SessionParametersAddInfoKHR structure
VUID-VkVideoEncodeH265SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersFeedbackInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersFeedbackInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersGetInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersGetInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersGetInfoKHR-writeStdVPS-08290YNegativeVideo.GetEncodedSessionParamsH265explicitVkVideoEncodeH265SessionParametersGetInfoKHRcoreAt least one of writeStdVPS, writeStdSPS, and writeStdPPS must be set to VK_TRUE
VUID-VkVideoEncodeInfoKHR-dstBuffer-08236YNegativeVideo.EncodeBufferMissingEncodeDstUsageexplicitVkVideoEncodeInfoKHRcoredstBuffer must have been created with VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR set
VUID-VkVideoEncodeInfoKHR-dstBuffer-parameterYNoneimplicitVkVideoEncodeInfoKHRcoredstBuffer must be a valid VkBuffer handle
VUID-VkVideoEncodeInfoKHR-dstBufferOffset-08237YNegativeVideo.EncodeBufferOffsetOutOfBoundsexplicitVkVideoEncodeInfoKHRcoredstBufferOffset must be less than the size of dstBuffer
VUID-VkVideoEncodeInfoKHR-dstBufferRange-08238YNegativeVideo.EncodeBufferOffsetOutOfBounds, NegativeVideo.EncodeBufferRangeOutOfBoundsexplicitVkVideoEncodeInfoKHRcoredstBufferRange must be less than or equal to the size of dstBuffer minus dstBufferOffset
VUID-VkVideoEncodeInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEncodeInfoKHRcoreflags must be 0
VUID-VkVideoEncodeInfoKHR-pNext-pNextYNoneimplicitVkVideoEncodeInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264PictureInfoKHR, VkVideoEncodeH265PictureInfoKHR, or VkVideoInlineQueryInfoKHR
VUID-VkVideoEncodeInfoKHR-pPictureResource-08242YNegativeVideo.EncodeReferenceResourceNullexplicitVkVideoEncodeInfoKHRcoreThe pPictureResource member of each element of pReferenceSlots must not be NULL
VUID-VkVideoEncodeInfoKHR-pReferenceSlots-parameterYNoneimplicitVkVideoEncodeInfoKHRcoreIf referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-08239YNegativeVideo.EncodeInvalidSetupSlotIndexexplicitVkVideoEncodeInfoKHRcoreIf pSetupReferenceSlot is not NULL, then its slotIndex member must not be negative
VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-08240YNegativeVideo.EncodeSetupResourceNullexplicitVkVideoEncodeInfoKHRcoreIf pSetupReferenceSlot is not NULL, then its pPictureResource must not be NULL
VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-parameterYNoneimplicitVkVideoEncodeInfoKHRcoreIf pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure
VUID-VkVideoEncodeInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR
VUID-VkVideoEncodeInfoKHR-sType-uniqueYNoneimplicitVkVideoEncodeInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeInfoKHR-slotIndex-08241YNegativeVideo.EncodeInvalidRefSlotIndexexplicitVkVideoEncodeInfoKHRcoreThe slotIndex member of each element of pReferenceSlots must not be negative
VUID-VkVideoEncodeInfoKHR-srcPictureResource-parameterNNoneimplicitVkVideoEncodeInfoKHRcoresrcPictureResource must be a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoEncodeQualityLevelInfoKHR-qualityLevel-08311YNegativeVideo.CreateSessionParamsInvalidEncodeQualityLevel, NegativeVideo.EncodeQualityLevelControlInvalidQualityLevelexplicitVkVideoEncodeQualityLevelInfoKHRcorequalityLevel must be less than VkVideoEncodeCapabilitiesKHR::maxQualityLevels, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeQualityLevelInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeQualityLevelInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR
VUID-VkVideoEncodeQualityLevelPropertiesKHR-pNext-pNextYNoneimplicitVkVideoEncodeQualityLevelPropertiesKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264QualityLevelPropertiesKHR or VkVideoEncodeH265QualityLevelPropertiesKHR
VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeQualityLevelPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR
VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-uniqueYNoneimplicitVkVideoEncodeQualityLevelPropertiesKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeRateControlInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEncodeRateControlInfoKHRcoreflags must be 0
VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08245YNegativeVideo.EncodeRateControlTooManyLayersexplicitVkVideoEncodeRateControlInfoKHRcorelayerCount member must be less than or equal to VkVideoEncodeCapabilitiesKHR::maxRateControlLayers, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08357YNegativeVideo.EncodeRateControlVirtualBufferSizeexplicitVkVideoEncodeRateControlInfoKHRcoreIf layerCount is not zero, then virtualBufferSizeInMs must be greater than zero
VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08358YNegativeVideo.EncodeRateControlVirtualBufferSizeexplicitVkVideoEncodeRateControlInfoKHRcoreIf layerCount is not zero, then initialVirtualBufferSizeInMs must be less than virtualBufferSizeInMs
VUID-VkVideoEncodeRateControlInfoKHR-pLayers-08276YNegativeVideo.EncodeRateControlLayerBitrateexplicitVkVideoEncodeRateControlInfoKHRcoreFor each element of pLayers, its averageBitrate member must be between 1 and VkVideoEncodeCapabilitiesKHR::maxBitrate, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeRateControlInfoKHR-pLayers-08277YNegativeVideo.EncodeRateControlLayerBitrateexplicitVkVideoEncodeRateControlInfoKHRcoreFor each element of pLayers, its maxBitrate member must be between 1 and VkVideoEncodeCapabilitiesKHR::maxBitrate, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeRateControlInfoKHR-pLayers-parameterYNoneimplicitVkVideoEncodeRateControlInfoKHRcoreIf layerCount is not 0, pLayers must be a valid pointer to an array of layerCount valid VkVideoEncodeRateControlLayerInfoKHR structures
VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08244YNegativeVideo.EncodeRateControlUnsupportedModeexplicitVkVideoEncodeRateControlInfoKHRcoreIf rateControlMode is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR, then it must specify one of the bits included in VkVideoEncodeCapabilitiesKHR::rateControlModes, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08248YNegativeVideo.EncodeRateControlNoLayersexplicitVkVideoEncodeRateControlInfoKHRcoreIf rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR or VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, then layerCount must be 0
VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08275YNegativeVideo.EncodeRateControlMissingLayersexplicitVkVideoEncodeRateControlInfoKHRcoreIf rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR or VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR, then layerCount must be greater than 0
VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08278YNegativeVideo.EncodeRateControlLayerBitrate, NegativeVideo.EncodeRateControlLayerBitrateVBRexplicitVkVideoEncodeRateControlInfoKHRcoreIf rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR, then for each element of pLayers, its averageBitrate member must be less than or equal to its maxBitrate member
VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08356YNegativeVideo.EncodeRateControlLayerBitrateCBRexplicitVkVideoEncodeRateControlInfoKHRcoreIf rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR, then for each element of pLayers, its averageBitrate member must equal its maxBitrate member
VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-parameterYNoneimplicitVkVideoEncodeRateControlInfoKHRcoreIf rateControlMode is not 0, rateControlMode must be a valid VkVideoEncodeRateControlModeFlagBitsKHR value
VUID-VkVideoEncodeRateControlInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeRateControlInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR
VUID-VkVideoEncodeRateControlInfoKHR-videoCodecOperation-07022YNegativeVideo.EncodeRateControlH264LayerCountMismatchexplicitVkVideoEncodeRateControlInfoKHRcoreIf the videoCodecOperation of the used video profile is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, the pNext chain this structure is included in also includes an instance of the VkVideoEncodeH264RateControlInfoKHR structure, and layerCount is greater than 1, then layerCount must equal VkVideoEncodeH264RateControlInfoKHR::temporalLayerCount
VUID-VkVideoEncodeRateControlInfoKHR-videoCodecOperation-07025YNegativeVideo.EncodeRateControlH265LayerCountMismatchexplicitVkVideoEncodeRateControlInfoKHRcoreIf the videoCodecOperation of the used video profile is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, the pNext chain this structure is included in also includes an instance of the VkVideoEncodeH265RateControlInfoKHR structure, and layerCount is greater than 1, then layerCount must equal VkVideoEncodeH265RateControlInfoKHR::subLayerCount
VUID-VkVideoEncodeRateControlLayerInfoKHR-frameRateDenominator-08351YNegativeVideo.EncodeRateControlLayerFrameRateexplicitVkVideoEncodeRateControlLayerInfoKHRcoreframeRateDenominator must be greater than zero
VUID-VkVideoEncodeRateControlLayerInfoKHR-frameRateNumerator-08350YNegativeVideo.EncodeRateControlLayerFrameRateexplicitVkVideoEncodeRateControlLayerInfoKHRcoreframeRateNumerator must be greater than zero
VUID-VkVideoEncodeRateControlLayerInfoKHR-pNext-pNextNNoneimplicitVkVideoEncodeRateControlLayerInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264RateControlLayerInfoKHR or VkVideoEncodeH265RateControlLayerInfoKHR
VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeRateControlLayerInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR
VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-uniqueNNoneimplicitVkVideoEncodeRateControlLayerInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-pNext-pNextYNoneimplicitVkVideoEncodeSessionParametersFeedbackInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264SessionParametersFeedbackInfoKHR or VkVideoEncodeH265SessionParametersFeedbackInfoKHR
VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeSessionParametersFeedbackInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-uniqueYNoneimplicitVkVideoEncodeSessionParametersFeedbackInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeSessionParametersGetInfoKHR-pNext-pNextYNoneimplicitVkVideoEncodeSessionParametersGetInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264SessionParametersGetInfoKHR or VkVideoEncodeH265SessionParametersGetInfoKHR
VUID-VkVideoEncodeSessionParametersGetInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeSessionParametersGetInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR
VUID-VkVideoEncodeSessionParametersGetInfoKHR-sType-uniqueYNoneimplicitVkVideoEncodeSessionParametersGetInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeSessionParametersGetInfoKHR-videoSessionParameters-parameterYNoneimplicitVkVideoEncodeSessionParametersGetInfoKHRcorevideoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoEncodeUsageInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeUsageInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR
VUID-VkVideoEncodeUsageInfoKHR-tuningMode-parameterYNoneimplicitVkVideoEncodeUsageInfoKHRcoreIf tuningMode is not 0, tuningMode must be a valid VkVideoEncodeTuningModeKHR value
VUID-VkVideoEncodeUsageInfoKHR-videoContentHints-parameterYNoneimplicitVkVideoEncodeUsageInfoKHRcorevideoContentHints must be a valid combination of VkVideoEncodeContentFlagBitsKHR values
VUID-VkVideoEncodeUsageInfoKHR-videoUsageHints-parameterYNoneimplicitVkVideoEncodeUsageInfoKHRcorevideoUsageHints must be a valid combination of VkVideoEncodeUsageFlagBitsKHR values
VUID-VkVideoEndCodingInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEndCodingInfoKHRcoreflags must be 0
VUID-VkVideoEndCodingInfoKHR-pNext-pNextYNoneimplicitVkVideoEndCodingInfoKHRcorepNext must be NULL
VUID-VkVideoEndCodingInfoKHR-sType-sTypeYNoneimplicitVkVideoEndCodingInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR
VUID-VkVideoFormatPropertiesKHR-pNext-pNextYNoneimplicitVkVideoFormatPropertiesKHRcorepNext must be NULL
VUID-VkVideoFormatPropertiesKHR-sType-sTypeYNoneimplicitVkVideoFormatPropertiesKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR
VUID-VkVideoInlineQueryInfoKHR-queryPool-08372YNegativeVideo.DecodeInlineQueryOutOfBounds, NegativeVideo.EncodeInlineQueryOutOfBoundsexplicitVkVideoInlineQueryInfoKHRcoreIf queryPool is not VK_NULL_HANDLE, then firstQuery must be less than the number of queries in queryPool
VUID-VkVideoInlineQueryInfoKHR-queryPool-08373YNegativeVideo.DecodeInlineQueryOutOfBounds, NegativeVideo.EncodeInlineQueryOutOfBoundsexplicitVkVideoInlineQueryInfoKHRcoreIf queryPool is not VK_NULL_HANDLE, then the sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-VkVideoInlineQueryInfoKHR-queryPool-parameterYNoneimplicitVkVideoInlineQueryInfoKHRcoreIf queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle
VUID-VkVideoInlineQueryInfoKHR-sType-sTypeYNoneimplicitVkVideoInlineQueryInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR
VUID-VkVideoPictureResourceInfoKHR-baseArrayLayer-07175YNegativeVideo.BeginCodingInvalidResourceLayer, NegativeVideo.DecodeInvalidResourceLayerexplicitVkVideoPictureResourceInfoKHRcorebaseArrayLayer must be less than the VkImageViewCreateInfo::subresourceRange.layerCount specified when the image view imageViewBinding was created
VUID-VkVideoPictureResourceInfoKHR-imageViewBinding-parameterYNoneimplicitVkVideoPictureResourceInfoKHRcoreimageViewBinding must be a valid VkImageView handle
VUID-VkVideoPictureResourceInfoKHR-pNext-pNextYNoneimplicitVkVideoPictureResourceInfoKHRcorepNext must be NULL
VUID-VkVideoPictureResourceInfoKHR-sType-sTypeYNoneimplicitVkVideoPictureResourceInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR
VUID-VkVideoProfileInfoKHR-chromaBitDepth-parameterYNoneimplicitVkVideoProfileInfoKHRcorechromaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-chromaSubsampling-07013YNegativeVideo.VideoProfileInvalidLumaChromaSubsamplingexplicitVkVideoProfileInfoKHRcorechromaSubsampling must have a single bit set
VUID-VkVideoProfileInfoKHR-chromaSubsampling-07015YNegativeVideo.VideoProfileInvalidLumaChromaSubsamplingexplicitVkVideoProfileInfoKHRcoreIf chromaSubsampling is not VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR, then chromaBitDepth must have a single bit set
VUID-VkVideoProfileInfoKHR-chromaSubsampling-parameterYNoneimplicitVkVideoProfileInfoKHRcorechromaSubsampling must be a valid combination of VkVideoChromaSubsamplingFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-chromaSubsampling-requiredbitmaskYNoneimplicitVkVideoProfileInfoKHRcorechromaSubsampling must not be 0
VUID-VkVideoProfileInfoKHR-lumaBitDepth-07014YNegativeVideo.VideoProfileInvalidLumaChromaSubsamplingexplicitVkVideoProfileInfoKHRcorelumaBitDepth must have a single bit set
VUID-VkVideoProfileInfoKHR-lumaBitDepth-parameterYNoneimplicitVkVideoProfileInfoKHRcorelumaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-lumaBitDepth-requiredbitmaskYNoneimplicitVkVideoProfileInfoKHRcorelumaBitDepth must not be 0
VUID-VkVideoProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoProfileInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
VUID-VkVideoProfileInfoKHR-videoCodecOperation-07179YNegativeVideo.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRcoreIf videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain must include a VkVideoDecodeH264ProfileInfoKHR structure
VUID-VkVideoProfileInfoKHR-videoCodecOperation-07180YNegativeVideo.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRcoreIf videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain must include a VkVideoDecodeH265ProfileInfoKHR structure
VUID-VkVideoProfileInfoKHR-videoCodecOperation-07181YNegativeVideo.EncodeQualityLevelPropsMissingCodecInfo, NegativeVideo.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRcoreIf videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the pNext chain must include a VkVideoEncodeH264ProfileInfoKHR structure
VUID-VkVideoProfileInfoKHR-videoCodecOperation-07182YNegativeVideo.EncodeQualityLevelPropsMissingCodecInfo, NegativeVideo.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRcoreIf videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext chain must include a VkVideoEncodeH265ProfileInfoKHR structure
VUID-VkVideoProfileInfoKHR-videoCodecOperation-parameterYNoneimplicitVkVideoProfileInfoKHRcorevideoCodecOperation must be a valid VkVideoCodecOperationFlagBitsKHR value
VUID-VkVideoProfileListInfoKHR-pProfiles-06813YNegativeVideo.CreateBufferInvalidProfileList, NegativeVideo.CreateBufferProfileIndependent, NegativeVideo.CreateImageInvalidProfileList, NegativeVideo.CreateImageProfileIndependentexplicitVkVideoProfileListInfoKHRcorepProfiles must not contain more than one element whose videoCodecOperation member specifies a decode operation
VUID-VkVideoProfileListInfoKHR-pProfiles-parameterYNoneimplicitVkVideoProfileListInfoKHRcoreIf profileCount is not 0, pProfiles must be a valid pointer to an array of profileCount valid VkVideoProfileInfoKHR structures
VUID-VkVideoProfileListInfoKHR-sType-sTypeYNoneimplicitVkVideoProfileListInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR
VUID-VkVideoReferenceSlotInfoKHR-pNext-pNextYNoneimplicitVkVideoReferenceSlotInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeH264DpbSlotInfoKHR, VkVideoDecodeH265DpbSlotInfoKHR, VkVideoEncodeH264DpbSlotInfoKHR, or VkVideoEncodeH265DpbSlotInfoKHR
VUID-VkVideoReferenceSlotInfoKHR-pPictureResource-parameterYNoneimplicitVkVideoReferenceSlotInfoKHRcoreIf pPictureResource is not NULL, pPictureResource must be a valid pointer to a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoReferenceSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoReferenceSlotInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR
VUID-VkVideoReferenceSlotInfoKHR-sType-uniqueYNoneimplicitVkVideoReferenceSlotInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoSessionCreateInfoKHR-flags-08371YNegativeVideo.CreateSessionVideoMaintenance1NotEnabledexplicitVkVideoSessionCreateInfoKHRcoreIf flags includes VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, then videoMaintenance1 must be enabled
VUID-VkVideoSessionCreateInfoKHR-flags-parameterYNoneimplicitVkVideoSessionCreateInfoKHRcoreflags must be a valid combination of VkVideoSessionCreateFlagBitsKHR values
VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849YNegativeVideo.CreateSessionInvalidReferencePictureCountsexplicitVkVideoSessionCreateInfoKHRcoremaxActiveReferencePictures must be less than or equal to VkVideoCapabilitiesKHR::maxActiveReferencePictures, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-maxCodedExtent-04851YNegativeVideo.CreateSessionInvalidMaxCodedExtentexplicitVkVideoSessionCreateInfoKHRcoremaxCodedExtent must be between VkVideoCapabilitiesKHR::minCodedExtent and VkVideoCapabilitiesKHR::maxCodedExtent, inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04847YNegativeVideo.CreateSessionInvalidReferencePictureCountsexplicitVkVideoSessionCreateInfoKHRcoremaxDpbSlots must be less than or equal to VkVideoCapabilitiesKHR::maxDpbSlots, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04850YNegativeVideo.CreateSessionInvalidReferencePictureCountsexplicitVkVideoSessionCreateInfoKHRcoreIf either maxDpbSlots or maxActiveReferencePictures is 0, then both must be 0
VUID-VkVideoSessionCreateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionCreateInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264SessionCreateInfoKHR or VkVideoEncodeH265SessionCreateInfoKHR
VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-07190YNegativeVideo.CreateSessionInvalidStdHeaderVersionexplicitVkVideoSessionCreateInfoKHRcorepStdHeaderVersion->extensionName must match VkVideoCapabilitiesKHR::stdHeaderVersion.extensionName, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-07191YNegativeVideo.CreateSessionInvalidStdHeaderVersionexplicitVkVideoSessionCreateInfoKHRcorepStdHeaderVersion->specVersion must be less than or equal to VkVideoCapabilitiesKHR::stdHeaderVersion.specVersion, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-parameterYNoneimplicitVkVideoSessionCreateInfoKHRcorepStdHeaderVersion must be a valid pointer to a valid VkExtensionProperties structure
VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-04845YNegativeVideo.CreateSessionUnsupportedProfileexplicitVkVideoSessionCreateInfoKHRcorepVideoProfile must be a supported video profile
VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-08251YNegativeVideo.CreateSessionEncodeH264InvalidMaxLevelexplicitVkVideoSessionCreateInfoKHRcoreIf pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and the pNext chain of this structure includes a VkVideoEncodeH264SessionCreateInfoKHR structure, then its maxLevelIdc member must be less than or equal to VkVideoEncodeH264CapabilitiesKHR::maxLevelIdc, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-08252YNegativeVideo.CreateSessionEncodeH265InvalidMaxLevelexplicitVkVideoSessionCreateInfoKHRcoreIf pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and the pNext chain of this structure includes a VkVideoEncodeH265SessionCreateInfoKHR structure, then its maxLevelIdc member must be less than or equal to VkVideoEncodeH265CapabilitiesKHR::maxLevelIdc, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-parameterYNoneimplicitVkVideoSessionCreateInfoKHRcorepVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure
VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04853YNegativeVideo.CreateSessionInvalidDecodePictureFormatexplicitVkVideoSessionCreateInfoKHRcoreIf pVideoProfile->videoCodecOperation specifies a decode operation, then pictureFormat must be one of the supported decode output formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04854YNegativeVideo.CreateSessionInvalidEncodePictureFormatexplicitVkVideoSessionCreateInfoKHRcoreIf pVideoProfile->videoCodecOperation specifies an encode operation, then pictureFormat must be one of the supported encode input formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pictureFormat-parameterYNoneimplicitVkVideoSessionCreateInfoKHRcorepictureFormat must be a valid VkFormat value
VUID-VkVideoSessionCreateInfoKHR-protectedMemory-07189YNegativeVideo.CreateSessionProtectedContentUnsupported, NegativeVideo.CreateSessionProtectedMemoryNotEnabledexplicitVkVideoSessionCreateInfoKHRcoreIf the protectedMemory feature is not enabled or if VkVideoCapabilitiesKHR::flags does not include VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile, then flags must not include VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-04852YNegativeVideo.CreateSessionInvalidDecodeReferencePictureFormatexplicitVkVideoSessionCreateInfoKHRcoreIf pVideoProfile->videoCodecOperation specifies a decode operation and maxActiveReferencePictures is greater than 0, then referencePictureFormat must be one of the supported decode DPB formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-06814YNegativeVideo.CreateSessionInvalidEncodeReferencePictureFormatexplicitVkVideoSessionCreateInfoKHRcoreIf pVideoProfile->videoCodecOperation specifies an encode operation and maxActiveReferencePictures is greater than 0, then referencePictureFormat must be one of the supported decode DPB formats, as returned by then referencePictureFormat must be one of the supported encode DPB formats, as returned by vkGetPhysicalDeviceVideoFormatPropertiesKHR in VkVideoFormatPropertiesKHR::format when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, and with a VkVideoProfileListInfoKHR structure specified in the pNext chain of its pVideoFormatInfo parameter whose pProfiles member contains an element matching pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-parameterYNoneimplicitVkVideoSessionCreateInfoKHRcorereferencePictureFormat must be a valid VkFormat value
VUID-VkVideoSessionCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoSessionCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR
VUID-VkVideoSessionCreateInfoKHR-sType-uniqueYNoneimplicitVkVideoSessionCreateInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoSessionMemoryRequirementsKHR-pNext-pNextYNoneimplicitVkVideoSessionMemoryRequirementsKHRcorepNext must be NULL
VUID-VkVideoSessionMemoryRequirementsKHR-sType-sTypeYNoneimplicitVkVideoSessionMemoryRequirementsKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-commonparentYNoneimplicitVkVideoSessionParametersCreateInfoKHRcoreBoth of videoSession, and videoSessionParametersTemplate that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkVideoSessionParametersCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoSessionParametersCreateInfoKHRcoreflags must be 0
VUID-VkVideoSessionParametersCreateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionParametersCreateInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeH264SessionParametersCreateInfoKHR, VkVideoDecodeH265SessionParametersCreateInfoKHR, VkVideoEncodeH264SessionParametersCreateInfoKHR, VkVideoEncodeH265SessionParametersCreateInfoKHR, or VkVideoEncodeQualityLevelInfoKHR
VUID-VkVideoSessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoSessionParametersCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-sType-uniqueYNoneimplicitVkVideoSessionParametersCreateInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04839YNegativeVideo.CreateSessionParamsEncodeH264ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the number of elements of spsAddList must be less than or equal to the maxStdSPSCount specified in the VkVideoEncodeH264SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04840YNegativeVideo.CreateSessionParamsEncodeH264ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the number of elements of ppsAddList must be less than or equal to the maxStdPPSCount specified in the VkVideoEncodeH264SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04841YNegativeVideo.CreateSessionParamsEncodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of elements of vpsAddList must be less than or equal to the maxStdVPSCount specified in the VkVideoEncodeH265SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04842YNegativeVideo.CreateSessionParamsEncodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of elements of spsAddList must be less than or equal to the maxStdSPSCount specified in the VkVideoEncodeH265SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04843YNegativeVideo.CreateSessionParamsEncodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of elements of ppsAddList must be less than or equal to the maxStdPPSCount specified in the VkVideoEncodeH265SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07203YNegativeVideo.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain must include a VkVideoDecodeH264SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07204YNegativeVideo.CreateSessionParamsDecodeH264ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of elements of spsAddList must be less than or equal to the maxStdSPSCount specified in the VkVideoDecodeH264SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07205YNegativeVideo.CreateSessionParamsDecodeH264ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of elements of ppsAddList must be less than or equal to the maxStdPPSCount specified in the VkVideoDecodeH264SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07206YNegativeVideo.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain must include a VkVideoDecodeH265SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07207YNegativeVideo.CreateSessionParamsDecodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of elements of vpsAddList must be less than or equal to the maxStdVPSCount specified in the VkVideoDecodeH265SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07208YNegativeVideo.CreateSessionParamsDecodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of elements of spsAddList must be less than or equal to the maxStdSPSCount specified in the VkVideoDecodeH265SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07209YNegativeVideo.CreateSessionParamsDecodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of elements of ppsAddList must be less than or equal to the maxStdPPSCount specified in the VkVideoDecodeH265SessionParametersCreateInfoKHR structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07210YNegativeVideo.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the pNext chain must include a VkVideoEncodeH264SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07211YNegativeVideo.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext chain must include a VkVideoEncodeH265SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-08319YNegativeVideo.CreateUpdateSessionParamsEncodeH265InvalidTileColumnsRowsexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then num_tile_columns_minus1 must be less than VkVideoEncodeH265CapabilitiesKHR::maxTiles.width, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile videoSession was created with, for each element of ppsAddList
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-08320YNegativeVideo.CreateUpdateSessionParamsEncodeH265InvalidTileColumnsRowsexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then num_tile_rows_minus1 must be less than VkVideoEncodeH265CapabilitiesKHR::maxTiles.height, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile videoSession was created with, for each element of ppsAddList
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-parameterYNoneimplicitVkVideoSessionParametersCreateInfoKHRcorevideoSession must be a valid VkVideoSessionKHR handle
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-04855YNegativeVideo.CreateSessionParamsIncompatibleTemplateexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSessionParametersTemplate is not VK_NULL_HANDLE, it must have been created against videoSession
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-08310YNegativeVideo.CreateSessionParamsIncompatibleTemplateEncodeQualityLevelexplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSessionParametersTemplate is not VK_NULL_HANDLE and videoSession was created with an encode operation, then qualityLevel must equal the video encode quality level videoSessionParametersTemplate was created with
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parameterYNoneimplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSessionParametersTemplate is not VK_NULL_HANDLE, videoSessionParametersTemplate must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parentNNoneimplicitVkVideoSessionParametersCreateInfoKHRcoreIf videoSessionParametersTemplate is a valid handle, it must have been created, allocated, or retrieved from videoSession
VUID-VkVideoSessionParametersUpdateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionParametersUpdateInfoKHRcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeH264SessionParametersAddInfoKHR, VkVideoDecodeH265SessionParametersAddInfoKHR, VkVideoEncodeH264SessionParametersAddInfoKHR, or VkVideoEncodeH265SessionParametersAddInfoKHR
VUID-VkVideoSessionParametersUpdateInfoKHR-sType-sTypeYNoneimplicitVkVideoSessionParametersUpdateInfoKHRcoresType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR
VUID-VkVideoSessionParametersUpdateInfoKHR-sType-uniqueYNoneimplicitVkVideoSessionParametersUpdateInfoKHRcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkViewport-apiVersion-07917YNegativeDynamicState.SetViewportParamexplicitVkViewportcoreIf the VK_KHR_maintenance1 extension is not enabled, the VK_AMD_negative_viewport_height extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, height must be greater than 0.0
VUID-VkViewport-height-01773YNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMaintenance1explicitVkViewportcoreThe absolute value of height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]
VUID-VkViewport-maxDepth-01235YNegativeDynamicState.SetViewportParamexplicitVkViewportcoreIf the VK_EXT_depth_range_unrestricted extension is not enabled, maxDepth must be between 0.0 and 1.0, inclusive
VUID-VkViewport-minDepth-01234YNegativeDynamicState.SetViewportParamexplicitVkViewportcoreIf the VK_EXT_depth_range_unrestricted extension is not enabled, minDepth must be between 0.0 and 1.0, inclusive
VUID-VkViewport-width-01770YNegativeDynamicState.SetViewportParamexplicitVkViewportcorewidth must be greater than 0.0
VUID-VkViewport-width-01771YNegativeDynamicState.SetViewportParamexplicitVkViewportcorewidth must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]
VUID-VkViewport-x-01232YNegativeDynamicState.SetViewportParamexplicitVkViewportcore(x + width) must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-x-01774YNegativeDynamicState.SetViewportParamexplicitVkViewportcorex must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewport-y-01233YNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMaintenance1explicitVkViewportcore(y + height) must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-y-01775YNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMaintenance1explicitVkViewportcorey must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewport-y-01776YNegativeDynamicState.SetViewportParamMaintenance1explicitVkViewportcorey must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-y-01777YNegativeDynamicState.SetViewportParamMaintenance1explicitVkViewportcore(y + height) must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewportSwizzleNV-w-parameterYNegativePipeline.ViewportSwizzleNVimplicitVkViewportSwizzleNVcorew must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-x-parameterYNegativePipeline.ViewportSwizzleNVimplicitVkViewportSwizzleNVcorex must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-y-parameterYNegativePipeline.ViewportSwizzleNVimplicitVkViewportSwizzleNVcorey must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-z-parameterYNegativePipeline.ViewportSwizzleNVimplicitVkViewportSwizzleNVcorez must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkWaylandSurfaceCreateInfoKHR-display-01304YNegativeWsi.CreatingWaylandSurfaceexplicitVkWaylandSurfaceCreateInfoKHRcoredisplay must point to a valid Wayland wl_display
VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkWaylandSurfaceCreateInfoKHRcoreflags must be 0
VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkWaylandSurfaceCreateInfoKHRcorepNext must be NULL
VUID-VkWaylandSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkWaylandSurfaceCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305YNegativeWsi.CreatingWaylandSurfaceexplicitVkWaylandSurfaceCreateInfoKHRcoresurface must point to a valid Wayland wl_surface
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparentYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRcoreBoth of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireKeys-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRcoreIf acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081NNoneexplicitVkWin32KeyedMutexAcquireReleaseInfoKHRcoreEach member of pAcquireSyncs and pReleaseSyncs must be a device memory object imported by setting VkImportMemoryWin32HandleInfoKHR::handleType to VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRcoreIf acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireTimeouts-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRcoreIf acquireCount is not 0, pAcquireTimeouts must be a valid pointer to an array of acquireCount uint32_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRcoreIf releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRcoreIf releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sTypeYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRcoresType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparentYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVcoreBoth of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireKeys-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVcoreIf acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVcoreIf acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireTimeoutMilliseconds-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVcoreIf acquireCount is not 0, pAcquireTimeoutMilliseconds must be a valid pointer to an array of acquireCount uint32_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVcoreIf releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVcoreIf releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-sType-sTypeYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVcoresType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkWin32SurfaceCreateInfoKHRcoreflags must be 0
VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307NNoneexplicitVkWin32SurfaceCreateInfoKHRcorehinstance must be a valid Win32 HINSTANCE
VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308YNegativeWsi.CreatingWin32SurfaceexplicitVkWin32SurfaceCreateInfoKHRcorehwnd must be a valid Win32 HWND
VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkWin32SurfaceCreateInfoKHRcorepNext must be NULL
VUID-VkWin32SurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkWin32SurfaceCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
VUID-VkWriteDescriptorSet-commonparentYNoneimplicitVkWriteDescriptorSetcoreBoth of dstSet, and the elements of pTexelBufferView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkWriteDescriptorSet-descriptorCount-00317YNegativeDescriptors.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetcoreAll consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical descriptorType and stageFlags
VUID-VkWriteDescriptorSet-descriptorCount-00318YNegativeDescriptors.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetcoreAll consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must all either use immutable samplers or must all not use immutable samplers
VUID-VkWriteDescriptorSet-descriptorCount-arraylengthYNoneimplicitVkWriteDescriptorSetcoredescriptorCount must be greater than 0
VUID-VkWriteDescriptorSet-descriptorType-00319YNegativeDescriptors.DSTypeMismatch, NegativeDescriptors.UpdateDescriptorSetMismatchTypeexplicitVkWriteDescriptorSetcoredescriptorType must match the type of dstBinding within dstSet
VUID-VkWriteDescriptorSet-descriptorType-00324YNegativeDescriptors.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, pBufferInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorBufferInfo structures
VUID-VkWriteDescriptorSet-descriptorType-00325YNegativeDescriptors.SampleDescriptorUpdate, NegativeDescriptors.UpdatingMutableDescriptorsexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of each element of pImageInfo must be a valid VkSampler object
VUID-VkWriteDescriptorSet-descriptorType-00327YNegativeDescriptors.DSBufferLimit, NegativePushDescriptor.SetCmdBufferOffsetUnalignedexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment
VUID-VkWriteDescriptorSet-descriptorType-00328YNegativeDescriptors.DSBufferLimitexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment
VUID-VkWriteDescriptorSet-descriptorType-00329YNegativeDescriptors.DescriptorBufferUpdateNoMemoryBoundexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, and the buffer member of any element of pBufferInfo is the handle of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkWriteDescriptorSet-descriptorType-00330YNegativeDescriptors.DSUsageBits, NegativePushDescriptor.SetCmdPushexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT set
VUID-VkWriteDescriptorSet-descriptorType-00331YNegativeDescriptors.DSUsageBitsexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT set
VUID-VkWriteDescriptorSet-descriptorType-00332YNegativeDescriptors.DSBufferLimitexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxUniformBufferRange
VUID-VkWriteDescriptorSet-descriptorType-00333YNegativeDescriptors.DSBufferLimitexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxStorageBufferRange
VUID-VkWriteDescriptorSet-descriptorType-00336YNegativeDescriptors.WriteDescriptorSetIdentitySwizzleexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with the identity swizzle
VUID-VkWriteDescriptorSet-descriptorType-00337YNegativeDescriptors.DSUsageBits, NegativeRenderPass.ColorAttachmentImageViewUsageexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_SAMPLED_BIT set
VUID-VkWriteDescriptorSet-descriptorType-00338YNegativeDescriptors.DSUsageBitsexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set
VUID-VkWriteDescriptorSet-descriptorType-00339YNegativeDescriptors.DSUsageBitsexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set
VUID-VkWriteDescriptorSet-descriptorType-01946YNegativeYcbcr.WriteDescriptorSetexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, then the imageView member of each pImageInfo element must have been created without a VkSamplerYcbcrConversionInfo structure in its pNext chain
VUID-VkWriteDescriptorSet-descriptorType-01948YNegativeSampler.MultiplaneImageSamplerConversionMismatchexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was allocated with a layout that included immutable samplers for dstBinding, then the imageView member of each element of pImageInfo which corresponds to an immutable sampler that enables sampler Y'CBCR conversion must have been created with a VkSamplerYcbcrConversionInfo structure in its pNext chain with an identically defined VkSamplerYcbcrConversionInfo to the corresponding immutable sampler
VUID-VkWriteDescriptorSet-descriptorType-02219YNegativeDescriptors.InlineUniformBlockEXTexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkWriteDescriptorSet-descriptorType-02220YNegativeDescriptors.InlineUniformBlockEXTexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkWriteDescriptorSet-descriptorType-02221YNegativeDescriptors.InlineUniformBlockEXTexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, the pNext chain must include a VkWriteDescriptorSetInlineUniformBlock structure whose dataSize member equals descriptorCount
VUID-VkWriteDescriptorSet-descriptorType-02382YNoneexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureKHR structure whose accelerationStructureCount member equals descriptorCount
VUID-VkWriteDescriptorSet-descriptorType-02738YNegativeSampler.MultiplaneImageSamplerConversionMismatchexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of pImageInfo has a imageView member that was created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, then dstSet must have been allocated with a layout that included immutable samplers for dstBinding, and the corresponding immutable sampler must have been created with an identically defined VkSamplerYcbcrConversionInfo object
VUID-VkWriteDescriptorSet-descriptorType-02752YNegativeDescriptors.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding
VUID-VkWriteDescriptorSet-descriptorType-02994YNegativeBuffer.BufferViewObjectexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, each element of pTexelBufferView must be either a valid VkBufferView handle or VK_NULL_HANDLE
VUID-VkWriteDescriptorSet-descriptorType-02995YNegativeDescriptors.NullDescriptorsDisabledexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER and the nullDescriptor feature is not enabled, each element of pTexelBufferView must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSet-descriptorType-02996YNegativeDescriptors.ImageViewDescriptorUpdateexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must be either a valid VkImageView handle or VK_NULL_HANDLE
VUID-VkWriteDescriptorSet-descriptorType-02997YNegativeDescriptors.NullDescriptorsDisabledexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and the nullDescriptor feature is not enabled, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSet-descriptorType-03817YNoneexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureNV structure whose accelerationStructureCount member equals descriptorCount
VUID-VkWriteDescriptorSet-descriptorType-04149YNegativeDescriptors.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Sampled Image
VUID-VkWriteDescriptorSet-descriptorType-04150YNegativeDescriptors.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageLayout member of each element of pImageInfo must be a member of the list given in Combined Image Sampler
VUID-VkWriteDescriptorSet-descriptorType-04151YNegativeDescriptors.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT the imageLayout member of each element of pImageInfo must be a member of the list given in Input Attachment
VUID-VkWriteDescriptorSet-descriptorType-04152YNegativeImage.StorageImageLayoutexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Storage Image
VUID-VkWriteDescriptorSet-descriptorType-06450YNegativeImage.ImageViewMinLodexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have either been created without a VkImageViewMinLodCreateInfoEXT included in the pNext chain or with a VkImageViewMinLodCreateInfoEXT::minLod of 0.0
VUID-VkWriteDescriptorSet-descriptorType-06942YNegativeImage.ImageViewTextureSampleWeightedexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, the imageView member of each element of pImageInfo must have been created with a view created with an image created with VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM
VUID-VkWriteDescriptorSet-descriptorType-06943YNegativeImage.ImageViewTextureSampleWeightedexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, the imageView member of each element of pImageInfo must have been created with a view created with an image created with VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM
VUID-VkWriteDescriptorSet-descriptorType-07683YNegativeDescriptors.InputAttachmentDescriptorUpdateexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSet-descriptorType-08765YNegativeDescriptors.DSUsageBitsexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, the pTexelBufferView buffer view usage must include VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
VUID-VkWriteDescriptorSet-descriptorType-08766YNegativeDescriptors.DSUsageBits, NegativeDescriptors.DSUsageBitsFlags2explicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, the pTexelBufferView buffer view usage must include VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
VUID-VkWriteDescriptorSet-descriptorType-parameterYNoneimplicitVkWriteDescriptorSetcoredescriptorType must be a valid VkDescriptorType value
VUID-VkWriteDescriptorSet-dstArrayElement-00321YNegativeDescriptorIndexing.SetLayout, NegativeDescriptorIndexing.SetNonIdenticalWrite, NegativeDescriptors.DSUpdateOutOfBounds, NegativeDescriptors.DstArrayElementexplicitVkWriteDescriptorSetcoreThe sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates
VUID-VkWriteDescriptorSet-dstBinding-00315YNegativeDescriptors.DSUpdateIndexexplicitVkWriteDescriptorSetcoredstBinding must be less than or equal to the maximum value of binding of all VkDescriptorSetLayoutBinding structures specified when dstSet's descriptor set layout was created
VUID-VkWriteDescriptorSet-dstBinding-00316YNegativeDescriptors.DSUpdateEmptyBindingexplicitVkWriteDescriptorSetcoredstBinding must be a binding with a non-zero descriptorCount
VUID-VkWriteDescriptorSet-dstSet-00320YNegativeDescriptors.UpdateDestroyDescriptorSetLayout, NegativeDescriptors.WriteDescriptorSetNotAllocated, NegativePushDescriptor.DestroyDescriptorSetLayoutexplicitVkWriteDescriptorSetcoredstSet must be a valid VkDescriptorSet handle
VUID-VkWriteDescriptorSet-dstSet-04611YNegativeDescriptors.WriteMutableDescriptorSetexplicitVkWriteDescriptorSetcoreIf the VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the new active descriptor type descriptorType must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding
VUID-VkWriteDescriptorSet-pNext-pNextYNoneimplicitVkWriteDescriptorSetcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkWriteDescriptorSetAccelerationStructureKHR, VkWriteDescriptorSetAccelerationStructureNV, or VkWriteDescriptorSetInlineUniformBlock
VUID-VkWriteDescriptorSet-sType-sTypeYNoneimplicitVkWriteDescriptorSetcoresType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
VUID-VkWriteDescriptorSet-sType-uniqueYNoneimplicitVkWriteDescriptorSetcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHRcoreaccelerationStructureCount must be equal to descriptorCount in the extended structure
VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylengthYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHRcoreaccelerationStructureCount must be greater than 0
VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03579YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHRcoreEach acceleration structure in pAccelerationStructures must have been created with a type of VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHRcoreIf the nullDescriptor feature is not enabled, each element of pAccelerationStructures must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameterYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHRcorepAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureKHR handles
VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sTypeYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHRcoresType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-03747YNoneexplicitVkWriteDescriptorSetAccelerationStructureNVcoreaccelerationStructureCount must be equal to descriptorCount in the extended structure
VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylengthYNoneimplicitVkWriteDescriptorSetAccelerationStructureNVcoreaccelerationStructureCount must be greater than 0
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03748YNoneexplicitVkWriteDescriptorSetAccelerationStructureNVcoreEach acceleration structure in pAccelerationStructures must have been created with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749YNoneexplicitVkWriteDescriptorSetAccelerationStructureNVcoreIf the nullDescriptor feature is not enabled, each member of pAccelerationStructures must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameterYNoneimplicitVkWriteDescriptorSetAccelerationStructureNVcorepAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureNV handles
VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sTypeYNoneimplicitVkWriteDescriptorSetAccelerationStructureNVcoresType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222YNegativeDescriptors.InlineUniformBlockEXTexplicitVkWriteDescriptorSetInlineUniformBlockcoredataSize must be an integer multiple of 4
VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylengthYNoneimplicitVkWriteDescriptorSetInlineUniformBlockcoredataSize must be greater than 0
VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameterYNoneimplicitVkWriteDescriptorSetInlineUniformBlockcorepData must be a valid pointer to an array of dataSize bytes
VUID-VkWriteDescriptorSetInlineUniformBlock-sType-sTypeYNoneimplicitVkWriteDescriptorSetInlineUniformBlockcoresType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK
VUID-VkXcbSurfaceCreateInfoKHR-connection-01310YNegativeWsi.CreatingXcbSurfaceexplicitVkXcbSurfaceCreateInfoKHRcoreconnection must point to a valid X11 xcb_connection_t
VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkXcbSurfaceCreateInfoKHRcoreflags must be 0
VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkXcbSurfaceCreateInfoKHRcorepNext must be NULL
VUID-VkXcbSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkXcbSurfaceCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
VUID-VkXcbSurfaceCreateInfoKHR-window-01311YNegativeWsi.CreatingXcbSurfaceexplicitVkXcbSurfaceCreateInfoKHRcorewindow must be a valid X11 xcb_window_t
VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313YNegativeWsi.CreatingX11SurfaceexplicitVkXlibSurfaceCreateInfoKHRcoredpy must point to a valid Xlib Display
VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkXlibSurfaceCreateInfoKHRcoreflags must be 0
VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkXlibSurfaceCreateInfoKHRcorepNext must be NULL
VUID-VkXlibSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkXlibSurfaceCreateInfoKHRcoresType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
VUID-VkXlibSurfaceCreateInfoKHR-window-01314YNegativeWsi.CreatingX11SurfaceexplicitVkXlibSurfaceCreateInfoKHRcorewindow must be a valid Xlib Window
VUID-WarpIDARM-WarpIDARM-07603NNoneexplicitWarpIDARMcoreThe variable decorated with WarpIDARM must be declared using the Input Storage Class
VUID-WarpIDARM-WarpIDARM-07604NNoneexplicitWarpIDARMcoreThe variable decorated with WarpIDARM must be declared as a scalar 32-bit integer value
VUID-WarpIDNV-WarpIDNV-04420NNoneexplicitWarpIDNVcoreThe variable decorated with WarpIDNV must be declared using the Input Storage Class
VUID-WarpIDNV-WarpIDNV-04421NNoneexplicitWarpIDNVcoreThe variable decorated with WarpIDNV must be declared as a scalar 32-bit integer value
VUID-WarpMaxIDARM-WarpMaxIDARM-07601NNoneexplicitWarpMaxIDARMcoreThe variable decorated with WarpMaxIDARM must be declared using the Input Storage Class
VUID-WarpMaxIDARM-WarpMaxIDARM-07602NNoneexplicitWarpMaxIDARMcoreThe variable decorated with WarpMaxIDARM must be declared as a scalar 32-bit integer value
VUID-WarpsPerSMNV-WarpsPerSMNV-04418NNoneexplicitWarpsPerSMNVcoreThe variable decorated with WarpsPerSMNV must be declared using the Input Storage Class
VUID-WarpsPerSMNV-WarpsPerSMNV-04419NNoneexplicitWarpsPerSMNVcoreThe variable decorated with WarpsPerSMNV must be declared as a scalar 32-bit integer value
VUID-WorkgroupId-WorkgroupId-04422YYValidateLiterals.LiteralsKernelGoodexplicitWorkgroupIdcoreThe WorkgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-WorkgroupId-WorkgroupId-04423YYValidateLiterals.LiteralsKernelGoodexplicitWorkgroupIdcoreThe variable decorated with WorkgroupId must be declared using the Input Storage Class
VUID-WorkgroupId-WorkgroupId-04424YYValidateLiterals.LiteralsKernelGoodexplicitWorkgroupIdcoreThe variable decorated with WorkgroupId must be declared as a three-component vector of 32-bit integer values
VUID-WorkgroupSize-WorkgroupSize-04425YYValidateBuiltIns.VulkanWorkgroupSizeFragmentexplicitWorkgroupSizecoreThe WorkgroupSize decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-WorkgroupSize-WorkgroupSize-04426YYNoneexplicitWorkgroupSizecoreThe variable decorated with WorkgroupSize must be a specialization constant or a constant
VUID-WorkgroupSize-WorkgroupSize-04427YYValidateBuiltIns.VulkanWorkgroupSizeFragment, ValidateBuiltIns.VulkanWorkgroupSizeNotIntVector, ValidateBuiltIns.VulkanWorkgroupSizeNotVec3, ValidateBuiltIns.VulkanWorkgroupSizeNotVector, ValidateBuiltIns.WorkgroupSizeNotInt32VecexplicitWorkgroupSizecoreThe variable decorated with WorkgroupSize must be declared as a three-component vector of 32-bit integer values
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04428YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayDirectionKHRcoreThe WorldRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04429YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayDirectionKHRcoreThe variable decorated with WorldRayDirectionKHR must be declared using the Input Storage Class
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04430YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayDirectionKHRcoreThe variable decorated with WorldRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04431YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayOriginKHRcoreThe WorldRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04432YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayOriginKHRcoreThe variable decorated with WorldRayOriginKHR must be declared using the Input Storage Class
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04433YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayOriginKHRcoreThe variable decorated with WorldRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-WorldToObjectKHR-WorldToObjectKHR-04434YYValidateLiterals.LiteralsKernelGoodexplicitWorldToObjectKHRcoreThe WorldToObjectKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-WorldToObjectKHR-WorldToObjectKHR-04435YYValidateLiterals.LiteralsKernelGoodexplicitWorldToObjectKHRcoreThe variable decorated with WorldToObjectKHR must be declared using the Input Storage Class
VUID-WorldToObjectKHR-WorldToObjectKHR-04436YYValidateLiterals.LiteralsKernelGoodexplicitWorldToObjectKHRcoreThe variable decorated with WorldToObjectKHR must be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values
VUID-vkAcquireDrmDisplayEXT-display-parameterYNoneimplicitvkAcquireDrmDisplayEXTcoredisplay must be a valid VkDisplayKHR handle
VUID-vkAcquireDrmDisplayEXT-display-parentYNoneimplicitvkAcquireDrmDisplayEXTcoredisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameterYNoneimplicitvkAcquireDrmDisplayEXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameterYNoneimplicitvkAcquireFullScreenExclusiveModeEXTcoredevice must be a valid VkDevice handle
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXTcoreswapchain must not be in the retired state
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXTcoreswapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXTcoreswapchain must not currently have exclusive full-screen access
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameterYNoneimplicitvkAcquireFullScreenExclusiveModeEXTcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parentYNoneimplicitvkAcquireFullScreenExclusiveModeEXTcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImage2KHR-device-parameterYNoneimplicitvkAcquireNextImage2KHRcoredevice must be a valid VkDevice handle
VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameterYNoneimplicitvkAcquireNextImage2KHRcorepAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structure
VUID-vkAcquireNextImage2KHR-pImageIndex-parameterYNoneimplicitvkAcquireNextImage2KHRcorepImageIndex must be a valid pointer to a uint32_t value
VUID-vkAcquireNextImage2KHR-surface-07784YNegativeWsi.SwapchainAcquireTooManyImages2KHRexplicitvkAcquireNextImage2KHRcoreIf forward progress cannot be guaranteed for the surface used to create swapchain, the timeout member of pAcquireInfo must not be UINT64_MAX
VUID-vkAcquireNextImageKHR-device-parameterYNoneimplicitvkAcquireNextImageKHRcoredevice must be a valid VkDevice handle
VUID-vkAcquireNextImageKHR-fence-01287YNoneexplicitvkAcquireNextImageKHRcoreIf fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue
VUID-vkAcquireNextImageKHR-fence-parameterYNoneimplicitvkAcquireNextImageKHRcoreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkAcquireNextImageKHR-fence-parentYNoneimplicitvkAcquireNextImageKHRcoreIf fence is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImageKHR-pImageIndex-parameterYNoneimplicitvkAcquireNextImageKHRcorepImageIndex must be a valid pointer to a uint32_t value
VUID-vkAcquireNextImageKHR-semaphore-01286YNegativeWsi.SwapchainAcquireImageWithSignaledSemaphoreexplicitvkAcquireNextImageKHRcoreIf semaphore is not VK_NULL_HANDLE it must be unsignaled
VUID-vkAcquireNextImageKHR-semaphore-01779YNegativeWsi.SwapchainAcquireImageWithPendingSemaphoreWaitexplicitvkAcquireNextImageKHRcoreIf semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending
VUID-vkAcquireNextImageKHR-semaphore-01780YNegativeWsi.SwapchainAcquireImageNoSyncexplicitvkAcquireNextImageKHRcoresemaphore and fence must not both be equal to VK_NULL_HANDLE
VUID-vkAcquireNextImageKHR-semaphore-03265YNegativeWsi.SwapchainAcquireImageNoBinarySemaphoreexplicitvkAcquireNextImageKHRcoresemaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-vkAcquireNextImageKHR-semaphore-parameterYNoneimplicitvkAcquireNextImageKHRcoreIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-vkAcquireNextImageKHR-semaphore-parentYNoneimplicitvkAcquireNextImageKHRcoreIf semaphore is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImageKHR-surface-07783YNegativeWsi.SwapchainAcquireTooManyImagesexplicitvkAcquireNextImageKHRcoreIf forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, the timeout member of pAcquireInfo must not be UINT64_MAX
VUID-vkAcquireNextImageKHR-swapchain-01285YNegativeWsi.SwapchainAcquireImageRetiredexplicitvkAcquireNextImageKHRcoreswapchain must not be in the retired state
VUID-vkAcquireNextImageKHR-swapchain-parameterYNoneimplicitvkAcquireNextImageKHRcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkAcquireNextImageKHR-swapchain-parentYNoneimplicitvkAcquireNextImageKHRcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkAcquirePerformanceConfigurationINTEL-device-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTELcoredevice must be a valid VkDevice handle
VUID-vkAcquirePerformanceConfigurationINTEL-pAcquireInfo-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTELcorepAcquireInfo must be a valid pointer to a valid VkPerformanceConfigurationAcquireInfoINTEL structure
VUID-vkAcquirePerformanceConfigurationINTEL-pConfiguration-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTELcorepConfiguration must be a valid pointer to a VkPerformanceConfigurationINTEL handle
VUID-vkAcquireProfilingLockKHR-device-parameterYNoneimplicitvkAcquireProfilingLockKHRcoredevice must be a valid VkDevice handle
VUID-vkAcquireProfilingLockKHR-pInfo-parameterYNoneimplicitvkAcquireProfilingLockKHRcorepInfo must be a valid pointer to a valid VkAcquireProfilingLockInfoKHR structure
VUID-vkAcquireWinrtDisplayNV-display-parameterYNoneimplicitvkAcquireWinrtDisplayNVcoredisplay must be a valid VkDisplayKHR handle
VUID-vkAcquireWinrtDisplayNV-display-parentYNoneimplicitvkAcquireWinrtDisplayNVcoredisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameterYNoneimplicitvkAcquireWinrtDisplayNVcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAcquireXlibDisplayEXT-display-parameterYNoneimplicitvkAcquireXlibDisplayEXTcoredisplay must be a valid VkDisplayKHR handle
VUID-vkAcquireXlibDisplayEXT-display-parentYNoneimplicitvkAcquireXlibDisplayEXTcoredisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireXlibDisplayEXT-dpy-parameterYNoneimplicitvkAcquireXlibDisplayEXTcoredpy must be a valid pointer to a Display value
VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameterYNoneimplicitvkAcquireXlibDisplayEXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAllocateCommandBuffers-device-parameterYNoneimplicitvkAllocateCommandBufferscoredevice must be a valid VkDevice handle
VUID-vkAllocateCommandBuffers-pAllocateInfo-parameterYNoneimplicitvkAllocateCommandBufferscorepAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure
VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkAllocateCommandBufferscorepAllocateInfo->commandBufferCount must be greater than 0
VUID-vkAllocateCommandBuffers-pCommandBuffers-parameterYNoneimplicitvkAllocateCommandBufferscorepCommandBuffers must be a valid pointer to an array of pAllocateInfo->commandBufferCount VkCommandBuffer handles
VUID-vkAllocateDescriptorSets-device-parameterYNoneimplicitvkAllocateDescriptorSetscoredevice must be a valid VkDevice handle
VUID-vkAllocateDescriptorSets-pAllocateInfo-parameterYNoneimplicitvkAllocateDescriptorSetscorepAllocateInfo must be a valid pointer to a valid VkDescriptorSetAllocateInfo structure
VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkAllocateDescriptorSetscorepAllocateInfo->descriptorSetCount must be greater than 0
VUID-vkAllocateDescriptorSets-pDescriptorSets-parameterYNoneimplicitvkAllocateDescriptorSetscorepDescriptorSets must be a valid pointer to an array of pAllocateInfo->descriptorSetCount VkDescriptorSet handles
VUID-vkAllocateMemory-device-parameterYNoneimplicitvkAllocateMemorycoredevice must be a valid VkDevice handle
VUID-vkAllocateMemory-deviceCoherentMemory-02790YNegativeMemory.DeviceCoherentMemoryDisabledAMDexplicitvkAllocateMemorycoreIf the deviceCoherentMemory feature is not enabled, pAllocateInfo->memoryTypeIndex must not identify a memory type supporting VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
VUID-vkAllocateMemory-maxMemoryAllocationCount-04101YNegativeMemory.AllocationCountexplicitvkAllocateMemorycoreThere must be less than VkPhysicalDeviceLimits::maxMemoryAllocationCount device memory allocations currently allocated on the device
VUID-vkAllocateMemory-pAllocateInfo-01713YNegativeMemory.AllocationBeyondHeapSizeexplicitvkAllocateMemorycorepAllocateInfo->allocationSize must be less than or equal to VkPhysicalDeviceMemoryProperties::memoryHeaps[memindex].size where memindex = VkPhysicalDeviceMemoryProperties::memoryTypes[pAllocateInfo->memoryTypeIndex].heapIndex as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from
VUID-vkAllocateMemory-pAllocateInfo-01714YNegativeAndroidHardwareBuffer.AllocationSize, NegativeMemory.MemoryTypeexplicitvkAllocateMemorycorepAllocateInfo->memoryTypeIndex must be less than VkPhysicalDeviceMemoryProperties::memoryTypeCount as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from
VUID-vkAllocateMemory-pAllocateInfo-parameterYVkLayerTest.RequiredParameterimplicitvkAllocateMemorycorepAllocateInfo must be a valid pointer to a valid VkMemoryAllocateInfo structure
VUID-vkAllocateMemory-pAllocator-parameterNNoneimplicitvkAllocateMemorycoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkAllocateMemory-pMemory-parameterYNoneimplicitvkAllocateMemorycorepMemory must be a valid pointer to a VkDeviceMemory handle
VUID-vkBeginCommandBuffer-commandBuffer-00049YNegativeCommand.CommandBufferResetexplicitvkBeginCommandBuffercorecommandBuffer must not be in the recording or pending state
VUID-vkBeginCommandBuffer-commandBuffer-00050YNegativeCommand.CommandBufferResetexplicitvkBeginCommandBuffercoreIf commandBuffer was allocated from a VkCommandPool which did not have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT flag set, commandBuffer must be in the initial state
VUID-vkBeginCommandBuffer-commandBuffer-00051YNegativeCommand.CommandBufferInheritanceInfoexplicitvkBeginCommandBuffercoreIf commandBuffer is a secondary command buffer, the pInheritanceInfo member of pBeginInfo must be a valid VkCommandBufferInheritanceInfo structure
VUID-vkBeginCommandBuffer-commandBuffer-00052YNegativeCommand.CommandBufferInheritanceInfoexplicitvkBeginCommandBuffercoreIf commandBuffer is a secondary command buffer and either the occlusionQueryEnable member of the pInheritanceInfo member of pBeginInfo is VK_FALSE, or the occlusionQueryPrecise feature is not enabled, then pBeginInfo->pInheritanceInfo->queryFlags must not contain VK_QUERY_CONTROL_PRECISE_BIT
VUID-vkBeginCommandBuffer-commandBuffer-02840YNegativeCommand.CommandBufferPrimaryFlagsexplicitvkBeginCommandBuffercoreIf commandBuffer is a primary command buffer, then pBeginInfo->flags must not set both the VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags
VUID-vkBeginCommandBuffer-commandBuffer-parameterYNoneimplicitvkBeginCommandBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkBeginCommandBuffer-pBeginInfo-parameterYNoneimplicitvkBeginCommandBuffercorepBeginInfo must be a valid pointer to a valid VkCommandBufferBeginInfo structure
VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylengthYNoneimplicitvkBindAccelerationStructureMemoryNVcorebindInfoCount must be greater than 0
VUID-vkBindAccelerationStructureMemoryNV-device-parameterYNoneimplicitvkBindAccelerationStructureMemoryNVcoredevice must be a valid VkDevice handle
VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameterYNoneimplicitvkBindAccelerationStructureMemoryNVcorepBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindAccelerationStructureMemoryInfoNV structures
VUID-vkBindBufferMemory-None-01898YNegativeProtectedMemory.MemoryexplicitvkBindBufferMemorycoreIf buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-vkBindBufferMemory-None-01899YNegativeProtectedMemory.MemoryexplicitvkBindBufferMemorycoreIf buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-vkBindBufferMemory-apiVersion-07920NNoneexplicitvkBindBufferMemorycoreIf the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image
VUID-vkBindBufferMemory-buffer-01030YNegativeMemory.BindMemoryexplicitvkBindBufferMemorycorebuffer must not have been created with any sparse memory binding flags
VUID-vkBindBufferMemory-buffer-01038NNoneexplicitvkBindBufferMemorycoreIf buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been allocated with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero
VUID-vkBindBufferMemory-buffer-01444NNoneexplicitvkBindBufferMemorycoreIf buffer requires a dedicated allocation (as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been allocated with VkMemoryDedicatedAllocateInfo::buffer equal to buffer
VUID-vkBindBufferMemory-buffer-06408NNoneexplicitvkBindBufferMemorycoreIf buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-vkBindBufferMemory-buffer-07459YNegativeMemory.BindMemoryexplicitvkBindBufferMemorycorebuffer must not have been bound to a memory object
VUID-vkBindBufferMemory-buffer-09201YNegativeDescriptorBuffer.VariousexplicitvkBindBufferMemorycoreIf the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set
VUID-vkBindBufferMemory-buffer-parameterYNegativeBuffer.BindNullimplicitvkBindBufferMemorycorebuffer must be a valid VkBuffer handle
VUID-vkBindBufferMemory-buffer-parentYNoneimplicitvkBindBufferMemorycorebuffer must have been created, allocated, or retrieved from device
VUID-vkBindBufferMemory-bufferDeviceAddress-03339YNegativeMemory.BufferDeviceAddressKHRexplicitvkBindBufferMemorycoreIf the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set
VUID-vkBindBufferMemory-bufferDeviceAddressCaptureReplay-09200YNegativeDescriptorBuffer.VariousexplicitvkBindBufferMemorycoreIf the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressCaptureReplay feature is enabled and buffer was created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set
VUID-vkBindBufferMemory-descriptorBufferCaptureReplay-08112YNegativeDescriptorBuffer.VariousexplicitvkBindBufferMemorycoreIf the buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set
VUID-vkBindBufferMemory-device-parameterYNoneimplicitvkBindBufferMemorycoredevice must be a valid VkDevice handle
VUID-vkBindBufferMemory-memory-01035YNegativeAndroidHardwareBuffer.ImportBufferHandleType, NegativeMemory.BindMemoryUnsupported, NegativeProtectedMemory.MemoryexplicitvkBindBufferMemorycorememory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer
VUID-vkBindBufferMemory-memory-01508YNegativeMemory.DedicatedAllocationBindingexplicitvkBindBufferMemorycoreIf the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero
VUID-vkBindBufferMemory-memory-02726YNegativeExternalMemorySync.ExportBufferHandleTypeexplicitvkBindBufferMemorycoreIf the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created
VUID-vkBindBufferMemory-memory-02985YNegativeExternalMemorySync.ImportMemoryHandleTypeexplicitvkBindBufferMemorycoreIf memory was allocated by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created
VUID-vkBindBufferMemory-memory-02986YNegativeAndroidHardwareBuffer.ImportBufferHandleTypeexplicitvkBindBufferMemorycoreIf memory was allocated with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created
VUID-vkBindBufferMemory-memory-parameterYNegativeMemory.BindMemoryimplicitvkBindBufferMemorycorememory must be a valid VkDeviceMemory handle
VUID-vkBindBufferMemory-memory-parentYNoneimplicitvkBindBufferMemorycorememory must have been created, allocated, or retrieved from device
VUID-vkBindBufferMemory-memoryOffset-01031YNegativeMemory.BindMemoryexplicitvkBindBufferMemorycorememoryOffset must be less than the size of memory
VUID-vkBindBufferMemory-memoryOffset-01036YNegativeAndroidHardwareBuffer.InvalidBindBufferMemory, NegativeMemory.BindMemory, NegativeMemory.BindMemoryNoCheckexplicitvkBindBufferMemorycorememoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer
VUID-vkBindBufferMemory-size-01037YNegativeAndroidHardwareBuffer.InvalidBindBufferMemory, NegativeMemory.BindMemory, NegativeMemory.DedicatedAllocationBindingexplicitvkBindBufferMemorycoreThe size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset
VUID-vkBindBufferMemory2-bindInfoCount-arraylengthYNoneimplicitvkBindBufferMemory2corebindInfoCount must be greater than 0
VUID-vkBindBufferMemory2-device-parameterYNoneimplicitvkBindBufferMemory2coredevice must be a valid VkDevice handle
VUID-vkBindBufferMemory2-pBindInfos-parameterYNoneimplicitvkBindBufferMemory2corepBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindBufferMemoryInfo structures
VUID-vkBindImageMemory-None-01901YNegativeProtectedMemory.MemoryexplicitvkBindImageMemorycoreIf image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-vkBindImageMemory-None-01902YNegativeProtectedMemory.MemoryexplicitvkBindImageMemorycoreIf image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-vkBindImageMemory-apiVersion-07921NNoneexplicitvkBindImageMemorycoreIf the VK_KHR_dedicated_allocation extension is not enabled, VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image
VUID-vkBindImageMemory-descriptorBufferCaptureReplay-08113YNegativeDescriptorBuffer.VariousexplicitvkBindImageMemorycoreIf the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set
VUID-vkBindImageMemory-device-parameterYNoneimplicitvkBindImageMemorycoredevice must be a valid VkDevice handle
VUID-vkBindImageMemory-image-01045YNegativeMemory.BindMemoryexplicitvkBindImageMemorycoreimage must not have been created with any sparse memory binding flags
VUID-vkBindImageMemory-image-01050NNoneexplicitvkBindImageMemorycoreIf image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero
VUID-vkBindImageMemory-image-01445NNoneexplicitvkBindImageMemorycoreIf image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image
VUID-vkBindImageMemory-image-01608YNegativeYcbcr.BindMemoryexplicitvkBindImageMemorycoreimage must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT set
VUID-vkBindImageMemory-image-06392NNoneexplicitvkBindImageMemorycoreIf image was created with VkBufferCollectionImageCreateInfoFUCHSIA chained to VkImageCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-vkBindImageMemory-image-07460YNegativeMemory.BindMemory, NegativeMemory.RebindMemoryMultiObjectDebugUtilsexplicitvkBindImageMemorycoreimage must not have been bound to a memory object
VUID-vkBindImageMemory-image-09202YNegativeDescriptorBuffer.VariousexplicitvkBindImageMemorycoreIf the image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT bit set
VUID-vkBindImageMemory-image-parameterYNegativeMemory.BindMemoryToDestroyedObjectimplicitvkBindImageMemorycoreimage must be a valid VkImage handle
VUID-vkBindImageMemory-image-parentYNoneimplicitvkBindImageMemorycoreimage must have been created, allocated, or retrieved from device
VUID-vkBindImageMemory-memory-01047YNegativeAndroidHardwareBuffer.ImportImageHandleType, NegativeMemory.BindImageMemoryType, NegativeMemory.BindMemoryUnsupported, NegativeProtectedMemory.MemoryexplicitvkBindImageMemorycorememory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image
VUID-vkBindImageMemory-memory-02628YNegativeMemory.DedicatedAllocationBindingexplicitvkBindImageMemorycoreIf the dedicatedAllocationImageAliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero
VUID-vkBindImageMemory-memory-02629YNegativeMemory.DedicatedAllocationImageAliasingexplicitvkBindImageMemorycoreIf the dedicatedAllocationImageAliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created
VUID-vkBindImageMemory-memory-02728YNegativeExternalMemorySync.ExportImageHandleTypeexplicitvkBindImageMemorycoreIf the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryImageCreateInfo::handleTypes when image was created
VUID-vkBindImageMemory-memory-02989YNegativeExternalMemorySync.ImportMemoryHandleTypeexplicitvkBindImageMemorycoreIf memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created
VUID-vkBindImageMemory-memory-02990YNegativeAndroidHardwareBuffer.ImportImageHandleTypeexplicitvkBindImageMemorycoreIf memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created
VUID-vkBindImageMemory-memory-parameterYNegativeMemory.BindMemoryimplicitvkBindImageMemorycorememory must be a valid VkDeviceMemory handle
VUID-vkBindImageMemory-memory-parentYNoneimplicitvkBindImageMemorycorememory must have been created, allocated, or retrieved from device
VUID-vkBindImageMemory-memoryOffset-01046YNegativeMemory.BindMemoryexplicitvkBindImageMemorycorememoryOffset must be less than the size of memory
VUID-vkBindImageMemory-memoryOffset-01048YNegativeMemory.BindMemory, NegativeMemory.BindMemoryNoCheckexplicitvkBindImageMemorycorememoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image
VUID-vkBindImageMemory-size-01049YNegativeAndroidHardwareBuffer.ImportImageHandleType, NegativeMemory.BindMemory, NegativeMemory.DedicatedAllocationBinding, NegativeMemory.DedicatedAllocationImageAliasingexplicitvkBindImageMemorycoreThe difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image
VUID-vkBindImageMemory2-bindInfoCount-arraylengthYNoneimplicitvkBindImageMemory2corebindInfoCount must be greater than 0
VUID-vkBindImageMemory2-device-parameterYNoneimplicitvkBindImageMemory2coredevice must be a valid VkDevice handle
VUID-vkBindImageMemory2-pBindInfos-02858YNegativeMemory.BindMemory2BindInfos, NegativeYcbcr.BindMemoryexplicitvkBindImageMemory2coreIf any VkBindImageMemoryInfo::image was created with VK_IMAGE_CREATE_DISJOINT_BIT then all planes of VkBindImageMemoryInfo::image must be bound individually in separate pBindInfos
VUID-vkBindImageMemory2-pBindInfos-04006YNegativeMemory.BindMemory2BindInfosexplicitvkBindImageMemory2corepBindInfos must not refer to the same image subresource more than once
VUID-vkBindImageMemory2-pBindInfos-parameterYNoneimplicitvkBindImageMemory2corepBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures
VUID-vkBindOpticalFlowSessionImageNV-bindingPoint-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVcorebindingPoint must be a valid VkOpticalFlowSessionBindingPointNV value
VUID-vkBindOpticalFlowSessionImageNV-device-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVcoredevice must be a valid VkDevice handle
VUID-vkBindOpticalFlowSessionImageNV-layout-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVcorelayout must be a valid VkImageLayout value
VUID-vkBindOpticalFlowSessionImageNV-session-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVcoresession must be a valid VkOpticalFlowSessionNV handle
VUID-vkBindOpticalFlowSessionImageNV-session-parentYNoneimplicitvkBindOpticalFlowSessionImageNVcoresession must have been created, allocated, or retrieved from device
VUID-vkBindOpticalFlowSessionImageNV-view-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVcoreIf view is not VK_NULL_HANDLE, view must be a valid VkImageView handle
VUID-vkBindOpticalFlowSessionImageNV-view-parentYNoneimplicitvkBindOpticalFlowSessionImageNVcoreIf view is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBindVideoSessionMemoryKHR-bindSessionMemoryInfoCount-arraylengthYNoneimplicitvkBindVideoSessionMemoryKHRcorebindSessionMemoryInfoCount must be greater than 0
VUID-vkBindVideoSessionMemoryKHR-device-parameterYNoneimplicitvkBindVideoSessionMemoryKHRcoredevice must be a valid VkDevice handle
VUID-vkBindVideoSessionMemoryKHR-memoryBindIndex-07196YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRcoreThe memoryBindIndex member of each element of pBindSessionMemoryInfos must be unique within pBindSessionMemoryInfos
VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07197YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRcoreEach element of pBindSessionMemoryInfos must have a corresponding VkMemoryRequirements structure
VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07198YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRcoreIf an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memory member of that element of pBindSessionMemoryInfos must have been allocated using one of the memory types allowed in the memoryTypeBits member of the corresponding VkMemoryRequirements structure
VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07199YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRcoreIf an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memoryOffset member of that element of pBindSessionMemoryInfos must be an integer multiple of the alignment member of the corresponding VkMemoryRequirements structure
VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07200YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRcoreIf an element of pBindSessionMemoryInfos has a corresponding VkMemoryRequirements structure, then the memorySize member of that element of pBindSessionMemoryInfos must equal the size member of the corresponding VkMemoryRequirements structure
VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-parameterYNoneimplicitvkBindVideoSessionMemoryKHRcorepBindSessionMemoryInfos must be a valid pointer to an array of bindSessionMemoryInfoCount valid VkBindVideoSessionMemoryInfoKHR structures
VUID-vkBindVideoSessionMemoryKHR-videoSession-07195YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRcoreThe memory binding of videoSession identified by the memoryBindIndex member of any element of pBindSessionMemoryInfos must not already be backed by a memory object
VUID-vkBindVideoSessionMemoryKHR-videoSession-parameterYNoneimplicitvkBindVideoSessionMemoryKHRcorevideoSession must be a valid VkVideoSessionKHR handle
VUID-vkBindVideoSessionMemoryKHR-videoSession-parentYNoneimplicitvkBindVideoSessionMemoryKHRcorevideoSession must have been created, allocated, or retrieved from device
VUID-vkBuildAccelerationStructuresKHR-None-03407NNoneexplicitvkBuildAccelerationStructuresKHRcoreThe dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos
VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581YNoneexplicitvkBuildAccelerationStructuresKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03677NNoneexplicitvkBuildAccelerationStructuresKHRcoreIf deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03678YNoneexplicitvkBuildAccelerationStructuresKHRcoreAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parameterYNegativeRayTracing.BuildAccelerationStructuresDeferredOperationimplicitvkBuildAccelerationStructuresKHRcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parentYNoneimplicitvkBuildAccelerationStructuresKHRcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBuildAccelerationStructuresKHR-device-parameterYNoneimplicitvkBuildAccelerationStructuresKHRcoredevice must be a valid VkDevice handle
VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03698YNoneexplicitvkBuildAccelerationStructuresKHRcoreThe dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos
VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03701NNoneexplicitvkBuildAccelerationStructuresKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command
VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03702NNoneexplicitvkBuildAccelerationStructuresKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command
VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03703NNoneexplicitvkBuildAccelerationStructuresKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command
VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03706NNoneexplicitvkBuildAccelerationStructuresKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command
VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03800YNegativeRayTracing.HostCmdBuildAccelerationStructuresKHRexplicitvkBuildAccelerationStructuresKHRcoreThe dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if the geometry uses indices, the firstVertex member of its corresponding VkAccelerationStructureBuildRangeInfoKHR structure must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-infoCount-arraylengthYNoneimplicitvkBuildAccelerationStructuresKHRcoreinfoCount must be greater than 0
VUID-vkBuildAccelerationStructuresKHR-mode-04628YNegativeRayTracing.BuildAccelerationStructureModeexplicitvkBuildAccelerationStructuresKHRcoreThe mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkBuildAccelerationStructuresKHR-pInfos-03403YNoneexplicitvkBuildAccelerationStructuresKHRcoreThe srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos
VUID-vkBuildAccelerationStructuresKHR-pInfos-03663NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active
VUID-vkBuildAccelerationStructuresKHR-pInfos-03664NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive
VUID-vkBuildAccelerationStructuresKHR-pInfos-03667YNegativeRayTracing.BuildAccelerationStructureModeUpdateexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build
VUID-vkBuildAccelerationStructuresKHR-pInfos-03668NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing
VUID-vkBuildAccelerationStructuresKHR-pInfos-03675NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)
VUID-vkBuildAccelerationStructuresKHR-pInfos-03699YNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-vkBuildAccelerationStructuresKHR-pInfos-03700YNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-vkBuildAccelerationStructuresKHR-pInfos-03722YNegativeRayTracing.BuildAccelerationStructureKHR, NegativeRayTracing.WriteAccelerationStructureMemoryexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to host-visible device memory
VUID-vkBuildAccelerationStructuresKHR-pInfos-03723YNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to host-visible device memory
VUID-vkBuildAccelerationStructuresKHR-pInfos-03724NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to host-visible device memory
VUID-vkBuildAccelerationStructuresKHR-pInfos-03725NNoneexplicitvkBuildAccelerationStructuresKHRcoreIf pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count
VUID-vkBuildAccelerationStructuresKHR-pInfos-03726NNoneexplicitvkBuildAccelerationStructuresKHRcoreIf pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count
VUID-vkBuildAccelerationStructuresKHR-pInfos-03758YNegativeRayTracing.BuildAccelerationStructureModeUpdateexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03759YNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03760YNegativeRayTracing.BuildAccelerationStructureModeUpdateexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03761NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03762NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03763NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03764NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03765NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03766NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL
VUID-vkBuildAccelerationStructuresKHR-pInfos-03767NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL
VUID-vkBuildAccelerationStructuresKHR-pInfos-03768NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-pInfos-03771NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.hostAddress must be a valid host address
VUID-vkBuildAccelerationStructuresKHR-pInfos-03772NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.hostAddress must be a valid host address
VUID-vkBuildAccelerationStructuresKHR-pInfos-03773NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.hostAddress is not 0, it must be a valid host address
VUID-vkBuildAccelerationStructuresKHR-pInfos-03774NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.hostAddress must be a valid host address
VUID-vkBuildAccelerationStructuresKHR-pInfos-03775NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to memory that was not allocated with multiple instances
VUID-vkBuildAccelerationStructuresKHR-pInfos-03776NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to memory that was not allocated with multiple instances
VUID-vkBuildAccelerationStructuresKHR-pInfos-03777NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to memory that was not allocated with multiple instances
VUID-vkBuildAccelerationStructuresKHR-pInfos-03778NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.hostAddress must be a valid host address
VUID-vkBuildAccelerationStructuresKHR-pInfos-03779NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.hostAddress must be a valid VkAccelerationStructureKHR object
VUID-vkBuildAccelerationStructuresKHR-pInfos-03801NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding ppBuildRangeInfos[i][j].primitiveCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
VUID-vkBuildAccelerationStructuresKHR-pInfos-04630YNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE
VUID-vkBuildAccelerationStructuresKHR-pInfos-04930NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV set, each accelerationStructureReference in any structure in VkAccelerationStructureMotionInstanceNV value in geometry.instances.data.hostAddress must be a valid VkAccelerationStructureKHR object
VUID-vkBuildAccelerationStructuresKHR-pInfos-parameterYNoneimplicitvkBuildAccelerationStructuresKHRcorepInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676NNoneexplicitvkBuildAccelerationStructuresKHRcoreEach element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameterYNoneimplicitvkBuildAccelerationStructuresKHRcoreppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769NNoneexplicitvkBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, the primitiveCount member of its corresponding VkAccelerationStructureBuildRangeInfoKHR structure must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-scratchData-03704NNoneexplicitvkBuildAccelerationStructuresKHRcoreThe range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command
VUID-vkBuildAccelerationStructuresKHR-scratchData-03705NNoneexplicitvkBuildAccelerationStructuresKHRcoreThe range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command
VUID-vkBuildAccelerationStructuresKHR-srcAccelerationStructure-04629YNoneexplicitvkBuildAccelerationStructuresKHRcoreIf the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle
VUID-vkBuildMicromapsEXT-deferredOperation-parameterYNoneimplicitvkBuildMicromapsEXTcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkBuildMicromapsEXT-deferredOperation-parentYNoneimplicitvkBuildMicromapsEXTcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBuildMicromapsEXT-device-parameterYNoneimplicitvkBuildMicromapsEXTcoredevice must be a valid VkDevice handle
VUID-vkBuildMicromapsEXT-dstMicromap-07463NNoneexplicitvkBuildMicromapsEXTcoreThe dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle
VUID-vkBuildMicromapsEXT-dstMicromap-07465NNoneexplicitvkBuildMicromapsEXTcoreThe range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstMicromap member of any other element of pInfos, which is accessed by this command
VUID-vkBuildMicromapsEXT-dstMicromap-07466NNoneexplicitvkBuildMicromapsEXTcoreThe range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command
VUID-vkBuildMicromapsEXT-infoCount-arraylengthYNoneimplicitvkBuildMicromapsEXTcoreinfoCount must be greater than 0
VUID-vkBuildMicromapsEXT-micromapHostCommands-07555NNoneexplicitvkBuildMicromapsEXTcoreThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkBuildMicromapsEXT-mode-07462NNoneexplicitvkBuildMicromapsEXTcoreThe mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value
VUID-vkBuildMicromapsEXT-pInfos-07461NNoneexplicitvkBuildMicromapsEXTcoreFor each pInfos[i], dstMicromap must have been created with a value of VkMicromapCreateInfoEXT::size greater than or equal to the memory size required by the build operation, as returned by vkGetMicromapBuildSizesEXT with pBuildInfo = pInfos[i]
VUID-vkBuildMicromapsEXT-pInfos-07464NNoneexplicitvkBuildMicromapsEXTcoreFor each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created
VUID-vkBuildMicromapsEXT-pInfos-07552NNoneexplicitvkBuildMicromapsEXTcoreFor each element of pInfos, the buffer used to create its dstMicromap member must be bound to host-visible device memory
VUID-vkBuildMicromapsEXT-pInfos-07553NNoneexplicitvkBuildMicromapsEXTcoreFor each element of pInfos, all referenced addresses of pInfos[i].data.hostAddress must be valid host memory
VUID-vkBuildMicromapsEXT-pInfos-07554NNoneexplicitvkBuildMicromapsEXTcoreFor each element of pInfos, all referenced addresses of pInfos[i].triangleArray.hostAddress must be valid host memory
VUID-vkBuildMicromapsEXT-pInfos-07556NNoneexplicitvkBuildMicromapsEXTcoreIf pInfos[i].mode is VK_BUILD_MICROMAP_MODE_BUILD_EXT, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the buildScratchSize member of the VkMicromapBuildSizesInfoEXT structure returned from a call to vkGetMicromapBuildSizesEXT with an identical VkMicromapBuildInfoEXT structure and primitive count
VUID-vkBuildMicromapsEXT-pInfos-07557NNoneexplicitvkBuildMicromapsEXTcoreFor each element of pInfos, the buffer used to create its dstMicromap member must be bound to memory that was not allocated with multiple instances
VUID-vkBuildMicromapsEXT-pInfos-parameterYNoneimplicitvkBuildMicromapsEXTcorepInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures
VUID-vkBuildMicromapsEXT-scratchData-07467NNoneexplicitvkBuildMicromapsEXTcoreThe range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command
VUID-vkCmdBeginConditionalRenderingEXT-None-01980YNegativeBuffer.BeginConditionalRenderingexplicitvkCmdBeginConditionalRenderingEXTcoreConditional rendering must not already be active
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginConditionalRenderingEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginConditionalRenderingEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginConditionalRenderingEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameterYNoneimplicitvkCmdBeginConditionalRenderingEXTcorepConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure
VUID-vkCmdBeginConditionalRenderingEXT-videocodingYNoneimplicitvkCmdBeginConditionalRenderingEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginDebugUtilsLabelEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginDebugUtilsLabelEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginDebugUtilsLabelEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkCmdBeginDebugUtilsLabelEXTcorepLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkCmdBeginDebugUtilsLabelEXT-videocodingYNoneimplicitvkCmdBeginDebugUtilsLabelEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBeginQuery-None-00807YNoneexplicitvkCmdBeginQuerycoreAll queries used by the command must be unavailable
VUID-vkCmdBeginQuery-None-02863YNegativeQuery.PerformanceResetAndBeginexplicitvkCmdBeginQuerycoreIf queryPool was created with a queryType of VK_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 vkCmdResetQueryPool command affecting the same query
VUID-vkCmdBeginQuery-None-07127YNegativeVideo.BeginQueryVideoCodingScopeQueryAlreadyActiveexplicitvkCmdBeginQuerycoreIf there is a bound video session, then there must be no active queries
VUID-vkCmdBeginQuery-None-08370YNegativeVideo.BeginQueryInlineQueriesexplicitvkCmdBeginQuerycoreIf there is a bound video session, then it must not have been created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR
VUID-vkCmdBeginQuery-commandBuffer-01885YNegativeProtectedMemory.UnprotectedCommandsexplicitvkCmdBeginQuerycorecommandBuffer must not be a protected command buffer
VUID-vkCmdBeginQuery-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginQuerycoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdBeginQuery-commandBuffer-parameterYNoneimplicitvkCmdBeginQuerycorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginQuery-commandBuffer-recordingYNoneimplicitvkCmdBeginQuerycorecommandBuffer must be in the recording state
VUID-vkCmdBeginQuery-commonparentYNoneimplicitvkCmdBeginQuerycoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBeginQuery-flags-parameterYNoneimplicitvkCmdBeginQuerycoreflags must be a valid combination of VkQueryControlFlagBits values
VUID-vkCmdBeginQuery-query-00802YNoneexplicitvkCmdBeginQuerycorequery must be less than the number of queries in queryPool
VUID-vkCmdBeginQuery-query-00808YNegativeQuery.MultiviewBeginQueryexplicitvkCmdBeginQuerycoreIf 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-queryPool-01922YNegativeVideo.BeginQueryVideoCodingScopeQueryAlreadyActive, VkLayerTest.UnclosedAndDuplicateQueriesexplicitvkCmdBeginQuerycorequeryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer
VUID-vkCmdBeginQuery-queryPool-03223YNegativeQuery.PerformanceCreationexplicitvkCmdBeginQuerycoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer
VUID-vkCmdBeginQuery-queryPool-03224YNegativeQuery.PerformanceCounterCommandbufferScopeexplicitvkCmdBeginQuerycoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer
VUID-vkCmdBeginQuery-queryPool-03225YNegativeQuery.PerformanceCounterRenderPassScopeexplicitvkCmdBeginQuerycoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance
VUID-vkCmdBeginQuery-queryPool-03226YNoneexplicitvkCmdBeginQuerycoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_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 performanceCounterMultipleQueryPools feature must be enabled
VUID-vkCmdBeginQuery-queryPool-07289YNegativeQuery.PerfQueryQueueFamilyIndexexplicitvkCmdBeginQuerycoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then the VkQueryPoolPerformanceCreateInfoKHR::queueFamilyIndex queryPool was created with must equal the queue family index of the VkCommandPool that commandBuffer was allocated from
VUID-vkCmdBeginQuery-queryPool-parameterYNoneimplicitvkCmdBeginQuerycorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdBeginQuery-queryType-00800YNegativeQuery.PreciseBitexplicitvkCmdBeginQuerycoreIf the occlusionQueryPrecise feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT
VUID-vkCmdBeginQuery-queryType-00803YNegativeVideo.BeginQueryVideoCodingScopeIncompatibleQueryTypeexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQuery-queryType-00804YNegativeQuery.PipelineStatisticsQueryexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQuery-queryType-00805YNegativeQuery.PipelineStatisticsQueryexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBeginQuery-queryType-02327YNoneexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQuery-queryType-02328YNegativeQuery.TransformFeedbackStreamexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported
VUID-vkCmdBeginQuery-queryType-02804YNegativeQuery.BeginQueryOnTimestampPoolexplicitvkCmdBeginQuerycoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdBeginQuery-queryType-04728YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQuerycoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
VUID-vkCmdBeginQuery-queryType-04729YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQuerycoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdBeginQuery-queryType-06687YNegativeQuery.PrimitivesGeneratedexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQuery-queryType-06688YNegativeQuery.PrimitivesGeneratedFeatureexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled
VUID-vkCmdBeginQuery-queryType-06741YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQuerycoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR
VUID-vkCmdBeginQuery-queryType-07070YNoneexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQuery-queryType-07126YNegativeVideo.BeginQueryIncompatibleQueueFamilyexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the VkCommandPool that commandBuffer was allocated from must have been created with a queue family index that supports result status queries, as indicated by VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport
VUID-vkCmdBeginQuery-queryType-07128YNegativeVideo.BeginQueryResultStatusProfileMismatch, NegativeVideo.BeginQueryVideoCodingScopeIncompatibleQueryTypeexplicitvkCmdBeginQuerycoreIf 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 VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with
VUID-vkCmdBeginQuery-queryType-07129YNegativeVideo.BeginQueryEncodeFeedbackNoBoundVideoSessionexplicitvkCmdBeginQuerycoreIf 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-07130YNegativeVideo.BeginQueryEncodeFeedbackProfileMismatchexplicitvkCmdBeginQuerycoreIf 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 VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with
VUID-vkCmdBeginQuery-queryType-07131YNegativeVideo.BeginQueryVideoCodingScopeIncompatibleQueryTypeexplicitvkCmdBeginQuerycoreIf the queryType used to create queryPool was not VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be no bound video session
VUID-vkCmdBeginQueryIndexedEXT-None-00807YNoneexplicitvkCmdBeginQueryIndexedEXTcoreAll queries used by the command must be unavailable
VUID-vkCmdBeginQueryIndexedEXT-None-02863YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf queryPool was created with a queryType of VK_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 vkCmdResetQueryPool command affecting the same query
VUID-vkCmdBeginQueryIndexedEXT-None-07127YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf there is a bound video session, then there must be no active queries
VUID-vkCmdBeginQueryIndexedEXT-None-08370YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf there is a bound video session, then it must not have been created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-01885YNoneexplicitvkCmdBeginQueryIndexedEXTcorecommandBuffer must not be a protected command buffer
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginQueryIndexedEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginQueryIndexedEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginQueryIndexedEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBeginQueryIndexedEXT-commonparentYNoneimplicitvkCmdBeginQueryIndexedEXTcoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBeginQueryIndexedEXT-flags-parameterYNoneimplicitvkCmdBeginQueryIndexedEXTcoreflags must be a valid combination of VkQueryControlFlagBits values
VUID-vkCmdBeginQueryIndexedEXT-query-00802YNoneexplicitvkCmdBeginQueryIndexedEXTcorequery must be less than the number of queries in queryPool
VUID-vkCmdBeginQueryIndexedEXT-query-00808YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf called within a render pass instance, the sum of query and the number of bits set in the current subpass's view mask must be less than or equal to the number of queries in queryPool
VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer
VUID-vkCmdBeginQueryIndexedEXT-queryPool-03224YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer
VUID-vkCmdBeginQueryIndexedEXT-queryPool-03225YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance
VUID-vkCmdBeginQueryIndexedEXT-queryPool-03226YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_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 performanceCounterMultipleQueryPools feature must be enabled
VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryPool was created with the same queryType as that of another active query within commandBuffer, then index must not match the index used for the active query
VUID-vkCmdBeginQueryIndexedEXT-queryPool-07289YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then the VkQueryPoolPerformanceCreateInfoKHR::queueFamilyIndex queryPool was created with must equal the queue family index of the VkCommandPool that commandBuffer was allocated from
VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameterYNoneimplicitvkCmdBeginQueryIndexedEXTcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdBeginQueryIndexedEXT-queryType-00800YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the occlusionQueryPrecise feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT
VUID-vkCmdBeginQueryIndexedEXT-queryType-00803YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQueryIndexedEXT-queryType-00804YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQueryIndexedEXT-queryType-00805YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBeginQueryIndexedEXT-queryType-02338YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQueryIndexedEXT-queryType-02339YNegativeQuery.CmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-vkCmdBeginQueryIndexedEXT-queryType-02341YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported
VUID-vkCmdBeginQueryIndexedEXT-queryType-02804YNoneexplicitvkCmdBeginQueryIndexedEXTcoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdBeginQueryIndexedEXT-queryType-04728YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryIndexedEXTcoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
VUID-vkCmdBeginQueryIndexedEXT-queryType-04729YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryIndexedEXTcoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdBeginQueryIndexedEXT-queryType-06689YNegativeQuery.PrimitivesGeneratedexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginQueryIndexedEXT-queryType-06690YNegativeQuery.CmdEndQueryIndexedEXTPrimitiveGenerated, NegativeQuery.PrimitivesGeneratedexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-vkCmdBeginQueryIndexedEXT-queryType-06691YNegativeQuery.CmdEndQueryIndexedEXTPrimitiveGenerated, NegativeQuery.PrimitivesGeneratedexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT and the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled, the index parameter must be zero
VUID-vkCmdBeginQueryIndexedEXT-queryType-06692YNegativeQuery.PrimitivesGeneratedexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT and not VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index must be zero
VUID-vkCmdBeginQueryIndexedEXT-queryType-06693YNegativeQuery.PrimitivesGeneratedFeatureexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled
VUID-vkCmdBeginQueryIndexedEXT-queryType-06741YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryIndexedEXTcoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR
VUID-vkCmdBeginQueryIndexedEXT-queryType-07071YNoneexplicitvkCmdBeginQueryIndexedEXTcoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT
VUID-vkCmdBeginQueryIndexedEXT-queryType-07126YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the VkCommandPool that commandBuffer was allocated from must have been created with a queue family index that supports result status queries, as indicated by VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport
VUID-vkCmdBeginQueryIndexedEXT-queryType-07128YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf 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 VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with
VUID-vkCmdBeginQueryIndexedEXT-queryType-07129YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be a bound video session
VUID-vkCmdBeginQueryIndexedEXT-queryType-07130YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf 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 VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with
VUID-vkCmdBeginQueryIndexedEXT-queryType-07131YNoneexplicitvkCmdBeginQueryIndexedEXTcoreIf the queryType used to create queryPool was not VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then there must be no bound video session
VUID-vkCmdBeginQueryIndexedEXT-videocodingYNoneimplicitvkCmdBeginQueryIndexedEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBeginRenderPass-bufferlevelYNoneimplicitvkCmdBeginRenderPasscorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginRenderPass-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginRenderPasscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRenderPass-commandBuffer-parameterYNoneimplicitvkCmdBeginRenderPasscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRenderPass-commandBuffer-recordingYNoneimplicitvkCmdBeginRenderPasscorecommandBuffer must be in the recording state
VUID-vkCmdBeginRenderPass-contents-parameterYNoneimplicitvkCmdBeginRenderPasscorecontents must be a valid VkSubpassContents value
VUID-vkCmdBeginRenderPass-dstStageMask-06452YNoneexplicitvkCmdBeginRenderPasscoreThe dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from
VUID-vkCmdBeginRenderPass-framebuffer-02532NNoneexplicitvkCmdBeginRenderPasscoreFor 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 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set
VUID-vkCmdBeginRenderPass-framebuffer-09045NNoneexplicitvkCmdBeginRenderPasscoreIf 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-00895YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass-initialLayout-00897YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass-initialLayout-00898YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VUID-vkCmdBeginRenderPass-initialLayout-00899YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_TRANSFER_DST_BIT
VUID-vkCmdBeginRenderPass-initialLayout-00900YNegativeRenderPass.AttachmentLayoutexplicitvkCmdBeginRenderPasscoreIf the initialLayout member of any of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_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-initialLayout-01758YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_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 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass-initialLayout-02842YNegativeRenderPass.BeginLayoutsStencilBufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_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 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass-initialLayout-07000YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT and either the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits
VUID-vkCmdBeginRenderPass-initialLayout-07001YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit
VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameterYNegativeRenderPass.NullRenderPass, NegativeRenderPass.RenderPassBeginimplicitvkCmdBeginRenderPasscorepRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure
VUID-vkCmdBeginRenderPass-renderpassYNegativeRenderPass.BeginWithinRenderPassimplicitvkCmdBeginRenderPasscoreThis command must only be called outside of a render pass instance
VUID-vkCmdBeginRenderPass-srcStageMask-06451YNoneexplicitvkCmdBeginRenderPasscoreThe srcStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from
VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843YNegativeRenderPass.BeginLayoutsStencilBufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_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 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass-videocodingYNoneimplicitvkCmdBeginRenderPasscoreThis command must only be called outside of a video coding scope
VUID-vkCmdBeginRenderPass2-bufferlevelYNoneimplicitvkCmdBeginRenderPass2corecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginRenderPass2coreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRenderPass2-commandBuffer-parameterYNoneimplicitvkCmdBeginRenderPass2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRenderPass2-commandBuffer-recordingYNoneimplicitvkCmdBeginRenderPass2corecommandBuffer must be in the recording state
VUID-vkCmdBeginRenderPass2-dstStageMask-06454YNoneexplicitvkCmdBeginRenderPass2coreThe dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from
VUID-vkCmdBeginRenderPass2-framebuffer-02533NNoneexplicitvkCmdBeginRenderPass2coreFor 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 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set
VUID-vkCmdBeginRenderPass2-framebuffer-02779NNoneexplicitvkCmdBeginRenderPass2coreBoth the framebuffer and renderPass members of pRenderPassBegin must have been created on the same VkDevice that commandBuffer was allocated on
VUID-vkCmdBeginRenderPass2-framebuffer-09046NNoneexplicitvkCmdBeginRenderPass2coreIf any attachments specified in framebuffer are used by renderPass and are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass
VUID-vkCmdBeginRenderPass2-initialLayout-02844YNegativeRenderPass.BeginLayoutsStencilBufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_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 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass2-initialLayout-03094YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass2-initialLayout-03096YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_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 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass2-initialLayout-03097YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass2-initialLayout-03098YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VUID-vkCmdBeginRenderPass2-initialLayout-03099YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_TRANSFER_DST_BIT
VUID-vkCmdBeginRenderPass2-initialLayout-03100YNoneexplicitvkCmdBeginRenderPass2coreIf the initialLayout member of any of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_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-vkCmdBeginRenderPass2-initialLayout-07002YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT and either the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits
VUID-vkCmdBeginRenderPass2-initialLayout-07003YNegativeRenderPass.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_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 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit
VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameterYNoneimplicitvkCmdBeginRenderPass2corepRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure
VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameterYNoneimplicitvkCmdBeginRenderPass2corepSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure
VUID-vkCmdBeginRenderPass2-renderpassYNegativeRenderPass.BeginWithinRenderPassimplicitvkCmdBeginRenderPass2coreThis command must only be called outside of a render pass instance
VUID-vkCmdBeginRenderPass2-srcStageMask-06453YNoneexplicitvkCmdBeginRenderPass2coreThe srcStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from
VUID-vkCmdBeginRenderPass2-stencilInitialLayout-02845YNegativeRenderPass.BeginLayoutsStencilBufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2coreIf any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_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 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass2-videocodingYNoneimplicitvkCmdBeginRenderPass2coreThis command must only be called outside of a video coding scope
VUID-vkCmdBeginRendering-commandBuffer-06068YNegativeDynamicRendering.BeginRenderingWithSecondaryContentsexplicitvkCmdBeginRenderingcoreIf commandBuffer is a secondary command buffer, and the nestedCommandBuffer feature is not enabled, pRenderingInfo->flags must not include VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT
VUID-vkCmdBeginRendering-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginRenderingcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRendering-commandBuffer-parameterYNoneimplicitvkCmdBeginRenderingcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRendering-commandBuffer-recordingYNoneimplicitvkCmdBeginRenderingcorecommandBuffer must be in the recording state
VUID-vkCmdBeginRendering-dynamicRendering-06446YNegativeDynamicRendering.BeginRenderingDisabledexplicitvkCmdBeginRenderingcoreThe dynamicRendering feature must be enabled
VUID-vkCmdBeginRendering-pRenderingInfo-parameterYNoneimplicitvkCmdBeginRenderingcorepRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure
VUID-vkCmdBeginRendering-renderpassYNegativeDynamicRendering.BeginTwiceimplicitvkCmdBeginRenderingcoreThis command must only be called outside of a render pass instance
VUID-vkCmdBeginRendering-videocodingYNoneimplicitvkCmdBeginRenderingcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBeginTransformFeedbackEXT-None-02367YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTcoreTransform feedback must not be active
VUID-vkCmdBeginTransformFeedbackEXT-None-02373YNegativeMultiview.BeginTransformFeedbackexplicitvkCmdBeginTransformFeedbackEXTcoreTransform feedback must not be made active in a render pass instance with multiview enabled
VUID-vkCmdBeginTransformFeedbackEXT-None-04128YNegativeMultiview.BeginTransformFeedback, NegativeTransformFeedback.FeatureEnabled, NegativeTransformFeedback.XfbExecutionModeCommandexplicitvkCmdBeginTransformFeedbackEXTcoreThe last pre-rasterization shader stage of the bound graphics pipeline must have been declared with the Xfb execution mode
VUID-vkCmdBeginTransformFeedbackEXT-None-06233YNegativeTransformFeedback.NoBoundPipelineexplicitvkCmdBeginTransformFeedbackEXTcoreIf the shaderObject feature is not enabled, a valid graphics pipeline must be bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginTransformFeedbackEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginTransformFeedbackEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recordingYNegativeTransformFeedback.ExecuteSecondaryCommandBuffersimplicitvkCmdBeginTransformFeedbackEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBeginTransformFeedbackEXT-commonparentYNoneimplicitvkCmdBeginTransformFeedbackEXTcoreBoth of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607NNoneexplicitvkCmdBeginTransformFeedbackEXTcoreIf counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE
VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTcorefirstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTcoreThe sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTcoreIf pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL
VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTcoreFor each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array
VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameterNNoneimplicitvkCmdBeginTransformFeedbackEXTcoreIf counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values
VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTcoreFor each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
VUID-vkCmdBeginTransformFeedbackEXT-renderpassYNegativeTransformFeedback.CmdBeginTransformFeedbackOutsideRenderPassimplicitvkCmdBeginTransformFeedbackEXTcoreThis command must only be called inside of a render pass instance
VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366YNegativeTransformFeedback.FeatureEnabledexplicitvkCmdBeginTransformFeedbackEXTcoreVkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdBeginTransformFeedbackEXT-videocodingYNoneimplicitvkCmdBeginTransformFeedbackEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBeginVideoCodingKHR-None-07232YNegativeVideo.BeginCodingActiveQueriesNotAllowedexplicitvkCmdBeginVideoCodingKHRcoreThere must be no active queries
VUID-vkCmdBeginVideoCodingKHR-bufferlevelYNoneimplicitvkCmdBeginVideoCodingKHRcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07231YNegativeVideo.BeginCodingUnsupportedCodecOp, NegativeVideo.DecodeInlineQueryIncompatibleQueueFamily, NegativeVideo.EncodeInlineQueryIncompatibleQueueFamilyexplicitvkCmdBeginVideoCodingKHRcoreThe VkCommandPool that commandBuffer was allocated from must support the video codec operation pBeginInfo->videoSession was created with, as returned by vkGetPhysicalDeviceQueueFamilyProperties2 in VkQueueFamilyVideoPropertiesKHR::videoCodecOperations
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07233YNegativeVideo.BeginCodingProtectedNoFaultSessionexplicitvkCmdBeginVideoCodingKHRcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pBeginInfo->videoSession must not have been created with VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07234YNegativeVideo.BeginCodingProtectedNoFaultSessionexplicitvkCmdBeginVideoCodingKHRcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, then pBeginInfo->videoSession must have been created with VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07235YNegativeVideo.BeginCodingProtectedNoFaultSlotsexplicitvkCmdBeginVideoCodingKHRcoreIf commandBuffer is an unprotected command buffer, protectedNoFault is not supported, and the pPictureResource member of any element of pBeginInfo->pReferenceSlots is not NULL, then pPictureResource->imageViewBinding for that element must not specify an image view created from a protected image
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07236YNegativeVideo.BeginCodingProtectedNoFaultSlotsexplicitvkCmdBeginVideoCodingKHRcoreIf commandBuffer is a protected command buffer protectedNoFault is not supported, and the pPictureResource member of any element of pBeginInfo->pReferenceSlots is not NULL, then pPictureResource->imageViewBinding for that element must specify an image view created from a protected image
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-cmdpoolYNegativeVideo.DecodeInlineQueryIncompatibleQueueFamily, NegativeVideo.EncodeInlineQueryIncompatibleQueueFamilyimplicitvkCmdBeginVideoCodingKHRcoreThe VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdBeginVideoCodingKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdBeginVideoCodingKHRcorecommandBuffer must be in the recording state
VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08253NNegativeVideo.EncodeRateControlStateMismatchNotDefaultexplicitvkCmdBeginVideoCodingKHRcoreIf pBeginInfo->videoSession was created with a video encode operation and the pNext chain of pBeginInfo does not include an instance of the VkVideoEncodeRateControlInfoKHR structure, then the rate control mode configured for pBeginInfo->videoSession at the time the command is executed on the device must be VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR
VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08254NNoneexplicitvkCmdBeginVideoCodingKHRcoreIf pBeginInfo->videoSession was created with a video encode operation and the pNext chain of pBeginInfo includes an instance of the VkVideoEncodeRateControlInfoKHR structure, then it must match the rate control state configured for pBeginInfo->videoSession at the time the command is executed on the device
VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08255YNegativeVideo.BeginCodingEncodeH264MissingGopRemainingFramesexplicitvkCmdBeginVideoCodingKHRcoreIf pBeginInfo->videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, the current rate control mode is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR or VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, and VkVideoEncodeH264CapabilitiesKHR::requiresGopRemainingFrames is VK_TRUE, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the pBeginInfo->videoSession was created with, then the pNext chain of pBeginInfo must include an instance of the VkVideoEncodeH264GopRemainingFrameInfoKHR with its useGopRemainingFrames member set to VK_TRUE
VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08256YNegativeVideo.BeginCodingEncodeH265MissingGopRemainingFramesexplicitvkCmdBeginVideoCodingKHRcoreIf pBeginInfo->videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, the current rate control mode is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR or VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, and VkVideoEncodeH265CapabilitiesKHR::requiresGopRemainingFrames is VK_TRUE, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the pBeginInfo->videoSession was created with, then the pNext chain of pBeginInfo must include an instance of the VkVideoEncodeH265GopRemainingFrameInfoKHR with its useGopRemainingFrames member set to VK_TRUE
VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-parameterYNoneimplicitvkCmdBeginVideoCodingKHRcorepBeginInfo must be a valid pointer to a valid VkVideoBeginCodingInfoKHR structure
VUID-vkCmdBeginVideoCodingKHR-pPictureResource-07265YNegativeVideo.BeginCodingDecodeInvalidSlotResourceAssociationexplicitvkCmdBeginVideoCodingKHRcoreEach video picture resource specified by any non-NULL pPictureResource member specified in the elements of pBeginInfo->pReferenceSlots for which slotIndex is not negative must match one of the video picture resources currently associated with the DPB slot index of pBeginInfo->videoSession specified by slotIndex at the time the command is executed on the device
VUID-vkCmdBeginVideoCodingKHR-renderpassYNoneimplicitvkCmdBeginVideoCodingKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdBeginVideoCodingKHR-slotIndex-07239YNegativeVideo.BeginCodingDecodeSlotInactive, NegativeVideo.DecodeImplicitDeactivation, NegativeVideo.DecodeImplicitDeactivationH264InterlacedexplicitvkCmdBeginVideoCodingKHRcoreIf the slotIndex member of any element of pBeginInfo->pReferenceSlots is not negative, then it must specify the index of a DPB slot that is in the active state in pBeginInfo->videoSession at the time the command is executed on the device
VUID-vkCmdBeginVideoCodingKHR-videocodingYNegativeVideo.VideoCodingScopeimplicitvkCmdBeginVideoCodingKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcorecommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-descriptorBuffer-09472YNoneexplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcoreThe descriptorBuffer feature must be enabled
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-pBindDescriptorBufferEmbeddedSamplersInfo-09473YNoneexplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcoreEach bit in pBindDescriptorBufferEmbeddedSamplersInfo->stageFlags must be a stage supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-pBindDescriptorBufferEmbeddedSamplersInfo-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcorepBindDescriptorBufferEmbeddedSamplersInfo must be a valid pointer to a valid VkBindDescriptorBufferEmbeddedSamplersInfoEXT structure
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-videocodingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-None-08068YNegativeDescriptorBuffer.NotEnabledexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcoreThe descriptorBuffer feature must be enabled
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commonparentYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcoreBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-layout-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcorelayout must be a valid VkPipelineLayout handle
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-08069YNegativeDescriptorBuffer.BindPointexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcorepipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08070YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcoreThe VkDescriptorSetLayout at index set when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT bit set
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08071YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcoreset must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-videocodingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBuffersEXT-None-08047YNegativeDescriptorBuffer.NotEnabledexplicitvkCmdBindDescriptorBuffersEXTcoreThe descriptorBuffer feature must be enabled
VUID-vkCmdBindDescriptorBuffersEXT-None-08050YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXTcoreThere must be no more than 1 descriptor buffer bound that was created with the VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT bit set
VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-08051YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXTcorebufferCount must be less than or equal to VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-arraylengthYNoneimplicitvkCmdBindDescriptorBuffersEXTcorebufferCount must be greater than 0
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorBuffersEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorBuffersEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorBuffersEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXTcoreThere must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindings descriptor buffers containing resource descriptor data bound
VUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXTcoreThere must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindings descriptor buffers containing sampler descriptor data bound
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052YNegativeDescriptorBuffer.NotEnabledexplicitvkCmdBindDescriptorBuffersEXTcoreFor any element of pBindingInfos, if the buffer from which address was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08053NNoneexplicitvkCmdBindDescriptorBuffersEXTcoreFor any element of pBindingInfos, the buffer from which address was queried must have been created with the VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT bit set if it contains sampler descriptor data
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08054NNoneexplicitvkCmdBindDescriptorBuffersEXTcoreFor any element of pBindingInfos, the buffer from which address was queried must have been created with the VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT bit set if it contains resource descriptor data
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08055YNegativeDescriptorBuffer.BindingAndOffsets, NegativeDescriptorBuffer.NotEnabledexplicitvkCmdBindDescriptorBuffersEXTcoreFor any element of pBindingInfos, usage must match the buffer from which address was queried
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-parameterYNoneimplicitvkCmdBindDescriptorBuffersEXTcorepBindingInfos must be a valid pointer to an array of bufferCount valid VkDescriptorBufferBindingInfoEXT structures
VUID-vkCmdBindDescriptorBuffersEXT-videocodingYNoneimplicitvkCmdBindDescriptorBuffersEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorSetscoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorSets-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorSetscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorSets-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorSetscorecommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorSets-commonparentYNoneimplicitvkCmdBindDescriptorSetscoreEach of commandBuffer, layout, and the elements of pDescriptorSets that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkCmdBindDescriptorSetscoredescriptorSetCount must be greater than 0
VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359YNegativeDescriptors.DynamicOffsetCasesexplicitvkCmdBindDescriptorSetscoredynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets
VUID-vkCmdBindDescriptorSets-firstSet-00360YNegativeDescriptors.DescriptorSet, NegativeDescriptors.DescriptorSetCompatibilityexplicitvkCmdBindDescriptorSetscoreThe sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdBindDescriptorSets-layout-parameterYNegativeDescriptors.DescriptorSetCompatibilityimplicitvkCmdBindDescriptorSetscorelayout must be a valid VkPipelineLayout handle
VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358YNegativeDescriptors.DescriptorSet, NegativeGraphicsLibrary.BindEmptyDS, NegativeGraphicsLibrary.ImmutableSamplersIncompatibleDSL, PositiveThreading.DebugObjectNamesexplicitvkCmdBindDescriptorSetscoreEach element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout that matches (is the same as, or identically defined as) the VkDescriptorSetLayout at set n in layout, where n is the sum of firstSet and the index into pDescriptorSets
VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979YNegativeDescriptors.DynamicDescriptorSet, NegativeDescriptors.DynamicOffsetCasesexplicitvkCmdBindDescriptorSetscoreFor each dynamic uniform or storage buffer binding in pDescriptorSets, the sum of the effective offset and the range of the binding must be less than or equal to the size of the buffer
VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616YNegativeDescriptors.BindingDescriptorSetFromHostOnlyPoolexplicitvkCmdBindDescriptorSetscoreEach element of pDescriptorSets must not have been allocated from a VkDescriptorPool with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set
VUID-vkCmdBindDescriptorSets-pDescriptorSets-06563YNegativeGraphicsLibrary.DescriptorSets, NegativeGraphicsLibrary.DescriptorSetsGPLexplicitvkCmdBindDescriptorSetscoreIf graphicsPipelineLibrary is not enabled, each element of pDescriptorSets must be a valid VkDescriptorSet
VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715YNegativeDescriptors.DynamicDescriptorSetexplicitvkCmdBindDescriptorSetscoreFor each dynamic uniform or storage buffer binding in pDescriptorSets, if the range was set with VK_WHOLE_SIZE then pDynamicOffsets which corresponds to the descriptor binding must be 0
VUID-vkCmdBindDescriptorSets-pDescriptorSets-08010YNegativeDescriptorBuffer.BindingexplicitvkCmdBindDescriptorSetscoreEach element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout which was not created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameterYNegativeDescriptors.DescriptorSetimplicitvkCmdBindDescriptorSetscorepDescriptorSets must be a valid pointer to an array of descriptorSetCount valid or VK_NULL_HANDLE VkDescriptorSet handles
VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971YNegativeDescriptors.DynamicDescriptorSetexplicitvkCmdBindDescriptorSetscoreEach element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment
VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972YNegativeDescriptors.BindStorageBufferDynamicAlignmentexplicitvkCmdBindDescriptorSetscoreEach element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment
VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameterYNoneimplicitvkCmdBindDescriptorSetscoreIf dynamicOffsetCount is not 0, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount uint32_t values
VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361YNegativeCommand.DescriptorSetPipelineBindPointexplicitvkCmdBindDescriptorSetscorepipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameterYNoneimplicitvkCmdBindDescriptorSetscorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindDescriptorSets-videocodingYNoneimplicitvkCmdBindDescriptorSetscoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorSets2KHRcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorSets2KHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorSets2KHRcorecommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorSets2KHR-pBindDescriptorSetsInfo-09467YNegativeCommand.DescriptorSetPipelineBindPointMaintenance6explicitvkCmdBindDescriptorSets2KHRcoreEach bit in pBindDescriptorSetsInfo->stageFlags must be a stage supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorSets2KHR-pBindDescriptorSetsInfo-parameterYNoneimplicitvkCmdBindDescriptorSets2KHRcorepBindDescriptorSetsInfo must be a valid pointer to a valid VkBindDescriptorSetsInfoKHR structure
VUID-vkCmdBindDescriptorSets2KHR-videocodingYNoneimplicitvkCmdBindDescriptorSets2KHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindIndexBuffer-None-09493YNegativeBuffer.IndexBufferNullexplicitvkCmdBindIndexBuffercoreIf maintenance6 is not enabled, buffer must not be VK_NULL_HANDLE
VUID-vkCmdBindIndexBuffer-buffer-08784YNegativeCommand.BindVertexIndexBufferUsageexplicitvkCmdBindIndexBuffercorebuffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
VUID-vkCmdBindIndexBuffer-buffer-08785YNoneexplicitvkCmdBindIndexBuffercoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindIndexBuffer-buffer-09494YNegativeBuffer.IndexBufferNullOffsetexplicitvkCmdBindIndexBuffercoreIf buffer is VK_NULL_HANDLE, offset must be zero
VUID-vkCmdBindIndexBuffer-buffer-parameterYNegativeCommand.BindIndexBufferHandlesimplicitvkCmdBindIndexBuffercoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdBindIndexBuffercoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindIndexBuffer-commandBuffer-parameterYNoneimplicitvkCmdBindIndexBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindIndexBuffer-commandBuffer-recordingYNoneimplicitvkCmdBindIndexBuffercorecommandBuffer must be in the recording state
VUID-vkCmdBindIndexBuffer-commonparentYNoneimplicitvkCmdBindIndexBuffercoreBoth of buffer, and commandBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindIndexBuffer-indexType-08786YNoneexplicitvkCmdBindIndexBuffercoreindexType must not be VK_INDEX_TYPE_NONE_KHR
VUID-vkCmdBindIndexBuffer-indexType-08787YNegativeBuffer.IndexBufferOffsetexplicitvkCmdBindIndexBuffercoreIf indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled
VUID-vkCmdBindIndexBuffer-indexType-parameterYNoneimplicitvkCmdBindIndexBuffercoreindexType must be a valid VkIndexType value
VUID-vkCmdBindIndexBuffer-offset-08782YNegativeBuffer.IndexBufferOffsetexplicitvkCmdBindIndexBuffercoreoffset must be less than the size of buffer
VUID-vkCmdBindIndexBuffer-offset-08783YNegativeBuffer.IdxBufferAlignmentError, NegativeBuffer.IndexBufferOffsetexplicitvkCmdBindIndexBuffercoreThe sum of offset and the base address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the size of the type indicated by indexType
VUID-vkCmdBindIndexBuffer-videocodingYNoneimplicitvkCmdBindIndexBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindIndexBuffer2KHR-None-09493YNoneexplicitvkCmdBindIndexBuffer2KHRcoreIf maintenance6 is not enabled, buffer must not be VK_NULL_HANDLE
VUID-vkCmdBindIndexBuffer2KHR-buffer-08784YNoneexplicitvkCmdBindIndexBuffer2KHRcorebuffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
VUID-vkCmdBindIndexBuffer2KHR-buffer-08785YNoneexplicitvkCmdBindIndexBuffer2KHRcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindIndexBuffer2KHR-buffer-09494YNoneexplicitvkCmdBindIndexBuffer2KHRcoreIf buffer is VK_NULL_HANDLE, offset must be zero
VUID-vkCmdBindIndexBuffer2KHR-buffer-parameterYNoneimplicitvkCmdBindIndexBuffer2KHRcoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBindIndexBuffer2KHRcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameterYNoneimplicitvkCmdBindIndexBuffer2KHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-recordingYNoneimplicitvkCmdBindIndexBuffer2KHRcorecommandBuffer must be in the recording state
VUID-vkCmdBindIndexBuffer2KHR-commonparentYNoneimplicitvkCmdBindIndexBuffer2KHRcoreBoth of buffer, and commandBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindIndexBuffer2KHR-indexType-08786YNoneexplicitvkCmdBindIndexBuffer2KHRcoreindexType must not be VK_INDEX_TYPE_NONE_KHR
VUID-vkCmdBindIndexBuffer2KHR-indexType-08787YNegativeBuffer.IndexBuffer2OffsetexplicitvkCmdBindIndexBuffer2KHRcoreIf indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled
VUID-vkCmdBindIndexBuffer2KHR-indexType-parameterYNoneimplicitvkCmdBindIndexBuffer2KHRcoreindexType must be a valid VkIndexType value
VUID-vkCmdBindIndexBuffer2KHR-offset-08782YNegativeBuffer.IndexBuffer2OffsetexplicitvkCmdBindIndexBuffer2KHRcoreoffset must be less than the size of buffer
VUID-vkCmdBindIndexBuffer2KHR-offset-08783YNegativeBuffer.IndexBuffer2OffsetexplicitvkCmdBindIndexBuffer2KHRcoreThe sum of offset and the base address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the size of the type indicated by indexType
VUID-vkCmdBindIndexBuffer2KHR-size-08767YNegativeBuffer.IndexBuffer2SizeexplicitvkCmdBindIndexBuffer2KHRcoreIf size is not VK_WHOLE_SIZE, size must be a multiple of the size of the type indicated by indexType
VUID-vkCmdBindIndexBuffer2KHR-size-08768YNegativeBuffer.IndexBuffer2SizeexplicitvkCmdBindIndexBuffer2KHRcoreIf size is not VK_WHOLE_SIZE, the sum of offset and size must be less than or equal to the size of buffer
VUID-vkCmdBindIndexBuffer2KHR-videocodingYNoneimplicitvkCmdBindIndexBuffer2KHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindInvocationMaskHUAWEI-None-04976NNoneexplicitvkCmdBindInvocationMaskHUAWEIcoreThe invocationMask feature must be enabled
VUID-vkCmdBindInvocationMaskHUAWEI-None-04982NNoneexplicitvkCmdBindInvocationMaskHUAWEIcoreEach element in the invocation mask image must have the value 0 or 1. The value 1 means the invocation is active
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpoolYNoneimplicitvkCmdBindInvocationMaskHUAWEIcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEIcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdBindInvocationMaskHUAWEIcorecommandBuffer must be in the recording state
VUID-vkCmdBindInvocationMaskHUAWEI-commonparentYNoneimplicitvkCmdBindInvocationMaskHUAWEIcoreBoth of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindInvocationMaskHUAWEI-depth-04983NNoneexplicitvkCmdBindInvocationMaskHUAWEIcoredepth in vkCmdTraceRaysKHR must be 1
VUID-vkCmdBindInvocationMaskHUAWEI-imageLayout-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEIcoreimageLayout must be a valid VkImageLayout value
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977NNoneexplicitvkCmdBindInvocationMaskHUAWEIcoreIf imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978NNoneexplicitvkCmdBindInvocationMaskHUAWEIcoreIf imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979NNoneexplicitvkCmdBindInvocationMaskHUAWEIcoreIf imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI set
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980NNoneexplicitvkCmdBindInvocationMaskHUAWEIcoreIf imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEIcoreIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkCmdBindInvocationMaskHUAWEI-renderpassYNoneimplicitvkCmdBindInvocationMaskHUAWEIcoreThis command must only be called outside of a render pass instance
VUID-vkCmdBindInvocationMaskHUAWEI-videocodingYNoneimplicitvkCmdBindInvocationMaskHUAWEIcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindInvocationMaskHUAWEI-width-04981NNoneexplicitvkCmdBindInvocationMaskHUAWEIcoreThread mask image resolution must match the width and height in vkCmdTraceRaysKHR
VUID-vkCmdBindPipeline-None-02323YNegativeTransformFeedback.BindPipelineexplicitvkCmdBindPipelinecoreThis command must not be recorded when transform feedback is active
VUID-vkCmdBindPipeline-commandBuffer-04808YNegativeViewportInheritance.BasicUsageexplicitvkCmdBindPipelinecoreIf commandBuffer is a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled and pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, then the pipeline must have been created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or VK_DYNAMIC_STATE_VIEWPORT, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT or VK_DYNAMIC_STATE_SCISSOR enabled
VUID-vkCmdBindPipeline-commandBuffer-04809YNegativeViewportInheritance.PipelineMissingDynamicStateDiscardRectangleexplicitvkCmdBindPipelinecoreIf commandBuffer is a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled and pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS and pipeline was created with VkPipelineDiscardRectangleStateCreateInfoEXT structure and its discardRectangleCount member is not 0, or the pipeline was created with VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT enabled, then the pipeline must have been created with VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT enabled
VUID-vkCmdBindPipeline-commandBuffer-cmdpoolYNegativeDeviceQueue.BindPipelineimplicitvkCmdBindPipelinecoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindPipeline-commandBuffer-parameterYNoneimplicitvkCmdBindPipelinecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindPipeline-commandBuffer-recordingYNoneimplicitvkCmdBindPipelinecorecommandBuffer must be in the recording state
VUID-vkCmdBindPipeline-commonparentYNegativeParent.BindPipelineimplicitvkCmdBindPipelinecoreBoth of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindPipeline-pipeline-00781NNoneexplicitvkCmdBindPipelinecoreIf the variableMultisampleRate feature is not supported, pipeline is a graphics pipeline, the current subpass uses no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must match that set in the previous pipeline
VUID-vkCmdBindPipeline-pipeline-03382YNegativeGraphicsLibrary.BindLibraryPipelineexplicitvkCmdBindPipelinecorepipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR set
VUID-vkCmdBindPipeline-pipeline-parameterYNegativePipeline.BadPipelineObject, NegativePipeline.NotBound, NegativeRayTracingPipeline.DeferredOpimplicitvkCmdBindPipelinecorepipeline must be a valid VkPipeline handle
VUID-vkCmdBindPipeline-pipelineBindPoint-00777YNegativeDeviceQueue.BindPipelineexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-00778YNegativeDeviceQueue.BindPipelineexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindPipeline-pipelineBindPoint-00779YNegativePipeline.WrongBindPointGraphicsexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, pipeline must be a compute pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-00780YNegativePipeline.WrongBindPointComputeexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must be a graphics pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-02391YNoneexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-02392YNegativeRayTracingPipelineNV.BindPointexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, pipeline must be a ray tracing pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-04881YNegativeVertexInput.ProvokingVertexModePerPipelineexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS and the provokingVertexModePerPipeline limit is VK_FALSE, then pipeline's VkPipelineRasterizationProvokingVertexStateCreateInfoEXT::provokingVertexMode must be the same as that of any other pipelines previously bound to this bind point within the current render pass instance, including any pipeline already bound when beginning the render pass instance
VUID-vkCmdBindPipeline-pipelineBindPoint-04949NNoneexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-04950NNoneexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, pipeline must be a subpass shading pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-06721YNegativeProtectedMemory.RayTracingPipelineexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, commandBuffer must not be a protected command buffer
VUID-vkCmdBindPipeline-pipelineBindPoint-parameterYNoneimplicitvkCmdBindPipelinecorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408YNegativeProtectedMemory.PipelineProtectedAccessexplicitvkCmdBindPipelinecoreIf the pipelineProtectedAccess feature is enabled, and commandBuffer is a protected command buffer, pipeline must have been created without VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT
VUID-vkCmdBindPipeline-pipelineProtectedAccess-07409YNegativeProtectedMemory.PipelineProtectedAccessexplicitvkCmdBindPipelinecoreIf the pipelineProtectedAccess feature is enabled, and commandBuffer is not a protected command buffer, pipeline must have been created without VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
VUID-vkCmdBindPipeline-variableSampleLocations-01525YNegativePipeline.VariableSampleLocationsexplicitvkCmdBindPipelinecoreIf VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE, and pipeline is a graphics pipeline created with a VkPipelineSampleLocationsStateCreateInfoEXT structure having its sampleLocationsEnable member set to VK_TRUE but without VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT enabled then the current render pass instance must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sampleLocationsInfo specified in VkPipelineSampleLocationsStateCreateInfoEXT when the pipeline was created
VUID-vkCmdBindPipeline-videocodingYNoneimplicitvkCmdBindPipelinecoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBindPipelineShaderGroupNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-recordingYNoneimplicitvkCmdBindPipelineShaderGroupNVcorecommandBuffer must be in the recording state
VUID-vkCmdBindPipelineShaderGroupNV-commonparentYNoneimplicitvkCmdBindPipelineShaderGroupNVcoreBoth of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896NNoneexplicitvkCmdBindPipelineShaderGroupNVcoreThe deviceGeneratedCommands feature must be enabled
VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893NNoneexplicitvkCmdBindPipelineShaderGroupNVcoregroupIndex must be 0 or less than the effective VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount including the referenced pipelines
VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895NNoneexplicitvkCmdBindPipelineShaderGroupNVcoreThe same restrictions as vkCmdBindPipeline apply as if the bound pipeline was created only with the Shader Group from the groupIndex information
VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNVcorepipeline must be a valid VkPipeline handle
VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894NNoneexplicitvkCmdBindPipelineShaderGroupNVcoreThe pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNVcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindPipelineShaderGroupNV-videocodingYNoneimplicitvkCmdBindPipelineShaderGroupNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindShadersEXT-None-08462YNoneexplicitvkCmdBindShadersEXTcoreThe shaderObject feature must be enabled
VUID-vkCmdBindShadersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindShadersEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindShadersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindShadersEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindShadersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindShadersEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBindShadersEXT-commonparentYNoneimplicitvkCmdBindShadersEXTcoreBoth of commandBuffer, and the elements of pShaders that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindShadersEXT-pShaders-08469YNegativeShaderObject.BindInvalidShaderStage, NegativeShaderObject.InvalidShaderStageBindexplicitvkCmdBindShadersEXTcoreFor each element of pStages, if pShaders is not NULL, and the element of the pShaders array with the same index is not VK_NULL_HANDLE, it must have been created with a stage equal to the corresponding element of pStages
VUID-vkCmdBindShadersEXT-pShaders-08470YNegativeShaderObject.BindVertexAndTaskShadersexplicitvkCmdBindShadersEXTcoreIf pStages contains both VK_SHADER_STAGE_TASK_BIT_EXT and VK_SHADER_STAGE_VERTEX_BIT, and pShaders is not NULL, and the same index in pShaders as VK_SHADER_STAGE_TASK_BIT_EXT in pStages is not VK_NULL_HANDLE, the same index in pShaders as VK_SHADER_STAGE_VERTEX_BIT in pStages must be VK_NULL_HANDLE
VUID-vkCmdBindShadersEXT-pShaders-08471YNegativeShaderObject.BindVertexAndMeshShadersexplicitvkCmdBindShadersEXTcoreIf pStages contains both VK_SHADER_STAGE_MESH_BIT_EXT and VK_SHADER_STAGE_VERTEX_BIT, and pShaders is not NULL, and the same index in pShaders as VK_SHADER_STAGE_MESH_BIT_EXT in pStages is not VK_NULL_HANDLE, the same index in pShaders as VK_SHADER_STAGE_VERTEX_BIT in pStages must be VK_NULL_HANDLE
VUID-vkCmdBindShadersEXT-pShaders-08474YNoneexplicitvkCmdBindShadersEXTcoreIf the tessellationShader feature is not enabled, and pStages contains VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and pShaders is not NULL, the same index or indices in pShaders must be VK_NULL_HANDLE
VUID-vkCmdBindShadersEXT-pShaders-08475YNoneexplicitvkCmdBindShadersEXTcoreIf the geometryShader feature is not enabled, and pStages contains VK_SHADER_STAGE_GEOMETRY_BIT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE
VUID-vkCmdBindShadersEXT-pShaders-08476YNegativeShaderObject.ComputeShaderNotSupportedByCommandPoolexplicitvkCmdBindShadersEXTcoreIf pStages contains VK_SHADER_STAGE_COMPUTE_BIT, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindShadersEXT-pShaders-08477YNegativeShaderObject.GraphicsShadersNotSupportedByCommandPoolexplicitvkCmdBindShadersEXTcoreIf pStages contains VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindShadersEXT-pShaders-08478YNegativeShaderObject.GraphicsMeshShadersNotSupportedByCommandPoolexplicitvkCmdBindShadersEXTcoreIf pStages contains VK_SHADER_STAGE_MESH_BIT_EXT or VK_SHADER_STAGE_TASK_BIT_EXT, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindShadersEXT-pShaders-08490YNoneexplicitvkCmdBindShadersEXTcoreIf the taskShader feature is not enabled, and pStages contains VK_SHADER_STAGE_TASK_BIT_EXT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE
VUID-vkCmdBindShadersEXT-pShaders-08491YNoneexplicitvkCmdBindShadersEXTcoreIf the meshShader feature is not enabled, and pStages contains VK_SHADER_STAGE_MESH_BIT_EXT, and pShaders is not NULL, the same index in pShaders must be VK_NULL_HANDLE
VUID-vkCmdBindShadersEXT-pShaders-parameterYNoneimplicitvkCmdBindShadersEXTcoreIf pShaders is not NULL, pShaders must be a valid pointer to an array of stageCount valid or VK_NULL_HANDLE VkShaderEXT handles
VUID-vkCmdBindShadersEXT-pStages-08463YNegativeShaderObject.NonUniqueShadersBindexplicitvkCmdBindShadersEXTcoreEvery element of pStages must be unique
VUID-vkCmdBindShadersEXT-pStages-08464YNegativeShaderObject.InvalidShaderStageBindexplicitvkCmdBindShadersEXTcorepStages must not contain VK_SHADER_STAGE_ALL_GRAPHICS or VK_SHADER_STAGE_ALL
VUID-vkCmdBindShadersEXT-pStages-08465YNoneexplicitvkCmdBindShadersEXTcorepStages must not contain VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR
VUID-vkCmdBindShadersEXT-pStages-08467YNoneexplicitvkCmdBindShadersEXTcorepStages must not contain VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
VUID-vkCmdBindShadersEXT-pStages-08468YNoneexplicitvkCmdBindShadersEXTcorepStages must not contain VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
VUID-vkCmdBindShadersEXT-pStages-parameterYNoneimplicitvkCmdBindShadersEXTcorepStages must be a valid pointer to an array of stageCount valid VkShaderStageFlagBits values
VUID-vkCmdBindShadersEXT-stageCount-arraylengthYNoneimplicitvkCmdBindShadersEXTcorestageCount must be greater than 0
VUID-vkCmdBindShadersEXT-videocodingYNoneimplicitvkCmdBindShadersEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindShadingRateImageNV-None-02058YNoneexplicitvkCmdBindShadingRateImageNVcoreThe shadingRateImage feature must be enabled
VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBindShadingRateImageNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameterYNoneimplicitvkCmdBindShadingRateImageNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindShadingRateImageNV-commandBuffer-recordingYNoneimplicitvkCmdBindShadingRateImageNVcorecommandBuffer must be in the recording state
VUID-vkCmdBindShadingRateImageNV-commonparentYNoneimplicitvkCmdBindShadingRateImageNVcoreBoth of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindShadingRateImageNV-imageLayout-02063YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdBindShadingRateImageNVcoreIf imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBindShadingRateImageNV-imageLayout-parameterYNoneimplicitvkCmdBindShadingRateImageNVcoreimageLayout must be a valid VkImageLayout value
VUID-vkCmdBindShadingRateImageNV-imageView-02059YNoneexplicitvkCmdBindShadingRateImageNVcoreIf imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY
VUID-vkCmdBindShadingRateImageNV-imageView-02060YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdBindShadingRateImageNVcoreIf imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT
VUID-vkCmdBindShadingRateImageNV-imageView-02061YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdBindShadingRateImageNVcoreIf imageView is not VK_NULL_HANDLE, it must have been created with a usage value including VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdBindShadingRateImageNV-imageView-02062YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdBindShadingRateImageNVcoreIf imageView is not VK_NULL_HANDLE, imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time the subresource is accessed
VUID-vkCmdBindShadingRateImageNV-imageView-parameterYNoneimplicitvkCmdBindShadingRateImageNVcoreIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkCmdBindShadingRateImageNV-videocodingYNoneimplicitvkCmdBindShadingRateImageNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreTransform feedback must not be active when the vkCmdBindTransformFeedbackBuffersEXT command is recorded
VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylengthYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcorebindingCount must be greater than 0
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparentYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcoreBoth of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcorefirstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreThe sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreAll elements of pBuffers must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT flag
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreEach element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcorepBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreAll elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreAll elements of pOffsets must be a multiple of 4
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreAll elements of pOffsets plus pSizes, where the pSizes, element is not VK_WHOLE_SIZE, must be less than or equal to the size of the corresponding buffer in pBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcorepOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreIf the optional pSize array is specified, each element of pSizes must either be VK_WHOLE_SIZE, or be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferSize
VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTcoreAll elements of pSizes must be either VK_WHOLE_SIZE, or less than or equal to the size of the corresponding buffer in pBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355YNegativeTransformFeedback.FeatureEnabledexplicitvkCmdBindTransformFeedbackBuffersEXTcoreVkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdBindTransformFeedbackBuffersEXT-videocodingYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindVertexBuffers-bindingCount-arraylengthYNoneimplicitvkCmdBindVertexBufferscorebindingCount must be greater than 0
VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpoolYNoneimplicitvkCmdBindVertexBufferscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindVertexBuffers-commandBuffer-parameterYNoneimplicitvkCmdBindVertexBufferscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindVertexBuffers-commandBuffer-recordingYNoneimplicitvkCmdBindVertexBufferscorecommandBuffer must be in the recording state
VUID-vkCmdBindVertexBuffers-commonparentYNoneimplicitvkCmdBindVertexBufferscoreBoth of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindVertexBuffers-firstBinding-00624YNegativeBuffer.VertexBufferOffsetexplicitvkCmdBindVertexBufferscorefirstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers-firstBinding-00625YNegativeBuffer.VertexBufferOffsetexplicitvkCmdBindVertexBufferscoreThe sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers-pBuffers-00627YNegativeCommand.BindVertexIndexBufferUsageexplicitvkCmdBindVertexBufferscoreAll elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag
VUID-vkCmdBindVertexBuffers-pBuffers-00628YNoneexplicitvkCmdBindVertexBufferscoreEach element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindVertexBuffers-pBuffers-04001YNegativeDescriptors.NullDescriptorsDisabledexplicitvkCmdBindVertexBufferscoreIf the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE
VUID-vkCmdBindVertexBuffers-pBuffers-04002YNegativeDescriptors.NullDescriptorsEnabledexplicitvkCmdBindVertexBufferscoreIf an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero
VUID-vkCmdBindVertexBuffers-pBuffers-parameterYNoneimplicitvkCmdBindVertexBufferscorepBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles
VUID-vkCmdBindVertexBuffers-pOffsets-00626YNegativeBuffer.VertexBufferOffsetexplicitvkCmdBindVertexBufferscoreAll elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindVertexBuffers-pOffsets-parameterYNoneimplicitvkCmdBindVertexBufferscorepOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers-videocodingYNoneimplicitvkCmdBindVertexBufferscoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindVertexBuffers2-bindingCount-arraylengthYNoneimplicitvkCmdBindVertexBuffers2coreIf any of pSizes, or pStrides are not NULL, bindingCount must be greater than 0
VUID-vkCmdBindVertexBuffers2-commandBuffer-cmdpoolYNoneimplicitvkCmdBindVertexBuffers2coreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindVertexBuffers2-commandBuffer-parameterYNoneimplicitvkCmdBindVertexBuffers2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindVertexBuffers2-commandBuffer-recordingYNoneimplicitvkCmdBindVertexBuffers2corecommandBuffer must be in the recording state
VUID-vkCmdBindVertexBuffers2-commonparentYNoneimplicitvkCmdBindVertexBuffers2coreBoth of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindVertexBuffers2-firstBinding-03355YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2corefirstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers2-firstBinding-03356YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2coreThe sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers2-pBuffers-03359YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2coreAll elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag
VUID-vkCmdBindVertexBuffers2-pBuffers-03360YNoneexplicitvkCmdBindVertexBuffers2coreEach element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindVertexBuffers2-pBuffers-04111YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2coreIf the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE
VUID-vkCmdBindVertexBuffers2-pBuffers-04112YNoneexplicitvkCmdBindVertexBuffers2coreIf an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero
VUID-vkCmdBindVertexBuffers2-pBuffers-parameterYNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersimplicitvkCmdBindVertexBuffers2corepBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles
VUID-vkCmdBindVertexBuffers2-pOffsets-03357YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2coreIf pSizes is not NULL, all elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindVertexBuffers2-pOffsets-parameterNNoneimplicitvkCmdBindVertexBuffers2corepOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-pSizes-03358YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffers, NegativeDynamicState.ExtendedDynamicStateBindVertexBuffersWholeSizeexplicitvkCmdBindVertexBuffers2coreIf pSizes is not NULL, all elements of pOffsets plus pSizes , where pSizes is not VK_WHOLE_SIZE, must be less than or equal to the size of the corresponding element in pBuffers
VUID-vkCmdBindVertexBuffers2-pSizes-parameterNNoneimplicitvkCmdBindVertexBuffers2coreIf pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-pStrides-03362YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2coreIf pStrides is not NULL each element of pStrides must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-vkCmdBindVertexBuffers2-pStrides-06209YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdBindVertexBuffers2coreIf pStrides is not NULL each element of pStrides must be either 0 or greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the VkVertexInputAttributeDescription::offset plus VkVertexInputAttributeDescription::format size
VUID-vkCmdBindVertexBuffers2-pStrides-parameterNNoneimplicitvkCmdBindVertexBuffers2coreIf pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-videocodingYNoneimplicitvkCmdBindVertexBuffers2coreThis command must only be called outside of a video coding scope
VUID-vkCmdBlitImage-aspectMask-00241YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-vkCmdBlitImage-aspectMask-00242YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-vkCmdBlitImage-commandBuffer-01834YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdBlitImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdBlitImage-commandBuffer-01835YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdBlitImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdBlitImage-commandBuffer-01836YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdBlitImagecoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdBlitImage-commandBuffer-cmdpoolYNoneimplicitvkCmdBlitImagecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBlitImage-commandBuffer-parameterYNoneimplicitvkCmdBlitImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBlitImage-commandBuffer-recordingYNoneimplicitvkCmdBlitImagecorecommandBuffer must be in the recording state
VUID-vkCmdBlitImage-commonparentYNoneimplicitvkCmdBlitImagecoreEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBlitImage-dstImage-00224YNoneexplicitvkCmdBlitImagecoredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdBlitImage-dstImage-00225YNoneexplicitvkCmdBlitImagecoreIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBlitImage-dstImage-00234YNegativeImage.MiscBlitTests, NegativeImage.SampleCountsexplicitvkCmdBlitImagecoredstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdBlitImage-dstImage-00250YNegativeImage.BlitOffsetsexplicitvkCmdBlitImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffsets[0].y must be 0 and dstOffsets[1].y must be 1
VUID-vkCmdBlitImage-dstImage-00252YNegativeImage.BlitOffsetsexplicitvkCmdBlitImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffsets[0].z must be 0 and dstOffsets[1].z must be 1
VUID-vkCmdBlitImage-dstImage-02000YNegativeImage.BlitFormatTypes, NegativeImage.BlitToDepthexplicitvkCmdBlitImagecoreThe format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT
VUID-vkCmdBlitImage-dstImage-02545YNoneexplicitvkCmdBlitImagecoredstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdBlitImage-dstImage-06422YNegativeImage.BlitFormatTypesexplicitvkCmdBlitImagecoredstImage must not use a format that requires a sampler Y'CBCR conversion
VUID-vkCmdBlitImage-dstImage-parameterYNoneimplicitvkCmdBlitImagecoredstImage must be a valid VkImage handle
VUID-vkCmdBlitImage-dstImageLayout-00226YNegativeImage.BlitLayoutexplicitvkCmdBlitImagecoredstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-vkCmdBlitImage-dstImageLayout-01399YNegativeImage.BlitLayoutexplicitvkCmdBlitImagecoredstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBlitImage-dstImageLayout-parameterYNoneimplicitvkCmdBlitImagecoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdBlitImage-dstOffset-00248YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreFor 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-00249YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreFor 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-dstOffset-00251YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreFor 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-dstSubresource-01706YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdBlitImage-dstSubresource-01708YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdBlitImage-filter-00237YNegativeImage.BlitFiltersexplicitvkCmdBlitImagecoreIf filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D
VUID-vkCmdBlitImage-filter-02001YNegativeImage.BlitFiltersexplicitvkCmdBlitImagecoreIf filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdBlitImage-filter-02002YNegativeImage.BlitFiltersexplicitvkCmdBlitImagecoreIf filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdBlitImage-filter-parameterYNoneimplicitvkCmdBlitImagecorefilter must be a valid VkFilter value
VUID-vkCmdBlitImage-pRegions-00215YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreThe source region specified by each element of pRegions must be a region that is contained within srcImage
VUID-vkCmdBlitImage-pRegions-00216YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreThe destination region specified by each element of pRegions must be a region that is contained within dstImage
VUID-vkCmdBlitImage-pRegions-00217YNegativeImage.BlitOverlapexplicitvkCmdBlitImagecoreThe 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-pRegions-parameterYNoneimplicitvkCmdBlitImagecorepRegions must be a valid pointer to an array of regionCount valid VkImageBlit structures
VUID-vkCmdBlitImage-regionCount-arraylengthYNoneimplicitvkCmdBlitImagecoreregionCount must be greater than 0
VUID-vkCmdBlitImage-renderpassYNoneimplicitvkCmdBlitImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdBlitImage-srcImage-00219YNoneexplicitvkCmdBlitImagecoresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdBlitImage-srcImage-00220YNoneexplicitvkCmdBlitImagecoreIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBlitImage-srcImage-00229YNegativeImage.BlitFormatTypesexplicitvkCmdBlitImagecoreIf either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat
VUID-vkCmdBlitImage-srcImage-00230YNegativeImage.BlitFormatTypesexplicitvkCmdBlitImagecoreIf either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat
VUID-vkCmdBlitImage-srcImage-00231YNegativeImage.BlitColorToDepth, NegativeImage.BlitFormatTypesexplicitvkCmdBlitImagecoreIf either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format
VUID-vkCmdBlitImage-srcImage-00232YNoneexplicitvkCmdBlitImagecoreIf srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST
VUID-vkCmdBlitImage-srcImage-00233YNegativeImage.MiscBlitTests, NegativeImage.SampleCountsexplicitvkCmdBlitImagecoresrcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdBlitImage-srcImage-00240YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreIf either srcImage or dstImage is of type VK_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-srcImage-00245YNegativeImage.BlitOffsetsexplicitvkCmdBlitImagecoreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffsets[0].y must be 0 and srcOffsets[1].y must be 1
VUID-vkCmdBlitImage-srcImage-00247YNegativeImage.BlitOffsetsexplicitvkCmdBlitImagecoreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1
VUID-vkCmdBlitImage-srcImage-01999YNegativeImage.BlitFormatTypesexplicitvkCmdBlitImagecoreThe format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT
VUID-vkCmdBlitImage-srcImage-06421YNegativeImage.BlitFormatTypesexplicitvkCmdBlitImagecoresrcImage must not use a format that requires a sampler Y'CBCR conversion
VUID-vkCmdBlitImage-srcImage-09459YNoneexplicitvkCmdBlitImagecoreIf srcImage and dstImage are the same, and an elements of pRegions contains the srcSubresource and dstSubresource with matching mipLevel and overlapping array layers, then the srcImageLayout and dstImageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-vkCmdBlitImage-srcImage-parameterYNoneimplicitvkCmdBlitImagecoresrcImage must be a valid VkImage handle
VUID-vkCmdBlitImage-srcImageLayout-00221YNegativeImage.BlitLayoutexplicitvkCmdBlitImagecoresrcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-vkCmdBlitImage-srcImageLayout-01398YNegativeImage.BlitLayoutexplicitvkCmdBlitImagecoresrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBlitImage-srcImageLayout-parameterYNoneimplicitvkCmdBlitImagecoresrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdBlitImage-srcOffset-00243YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreFor 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-00244YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreFor 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-srcOffset-00246YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreFor 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-srcSubresource-01705YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdBlitImage-srcSubresource-01707YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImagecoreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdBlitImage-videocodingYNoneimplicitvkCmdBlitImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdBlitImage2-commandBuffer-01834YNoneexplicitvkCmdBlitImage2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdBlitImage2-commandBuffer-01835YNoneexplicitvkCmdBlitImage2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdBlitImage2-commandBuffer-01836YNoneexplicitvkCmdBlitImage2coreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdBlitImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdBlitImage2coreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBlitImage2-commandBuffer-parameterYNoneimplicitvkCmdBlitImage2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBlitImage2-commandBuffer-recordingYNoneimplicitvkCmdBlitImage2corecommandBuffer must be in the recording state
VUID-vkCmdBlitImage2-pBlitImageInfo-parameterYNoneimplicitvkCmdBlitImage2corepBlitImageInfo must be a valid pointer to a valid VkBlitImageInfo2 structure
VUID-vkCmdBlitImage2-renderpassYNoneimplicitvkCmdBlitImage2coreThis command must only be called outside of a render pass instance
VUID-vkCmdBlitImage2-videocodingYNoneimplicitvkCmdBlitImage2coreThis command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786NNoneexplicitvkCmdBuildAccelerationStructureNVcoreEach VkAccelerationStructureInstanceKHR::accelerationStructureReference value in instanceData must be a valid device address containing a value obtained from vkGetAccelerationStructureHandleNV
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructureNVcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recordingYNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureimplicitvkCmdBuildAccelerationStructureNVcorecommandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructureNV-commonparentYNoneimplicitvkCmdBuildAccelerationStructureNVcoreEach of commandBuffer, dst, instanceData, scratch, and src that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBuildAccelerationStructureNV-dst-02488YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNVcoredst must have been created with compatible VkAccelerationStructureInfoNV where VkAccelerationStructureInfoNV::type and VkAccelerationStructureInfoNV::flags are identical, VkAccelerationStructureInfoNV::instanceCount and VkAccelerationStructureInfoNV::geometryCount for dst are greater than or equal to the build size and each geometry in VkAccelerationStructureInfoNV::pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs
VUID-vkCmdBuildAccelerationStructureNV-dst-07787YNoneexplicitvkCmdBuildAccelerationStructureNVcoredst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkCmdBuildAccelerationStructureNV-dst-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVcoredst must be a valid VkAccelerationStructureNV handle
VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241YNoneexplicitvkCmdBuildAccelerationStructureNVcoregeometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523NNoneexplicitvkCmdBuildAccelerationStructureNVcoreIf instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVcoreIf instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVcorepInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure
VUID-vkCmdBuildAccelerationStructureNV-renderpassYNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureimplicitvkCmdBuildAccelerationStructureNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructureNV-scratch-03522NNoneexplicitvkCmdBuildAccelerationStructureNVcorescratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-vkCmdBuildAccelerationStructureNV-scratch-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVcorescratch must be a valid VkBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-src-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVcoreIf src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle
VUID-vkCmdBuildAccelerationStructureNV-update-02489YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNVcoreIf update is VK_TRUE, src must not be VK_NULL_HANDLE
VUID-vkCmdBuildAccelerationStructureNV-update-02490YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNVcoreIf update is VK_TRUE, src must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV set in VkAccelerationStructureInfoNV::flags in the original build
VUID-vkCmdBuildAccelerationStructureNV-update-02491YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNVcoreIf update is VK_FALSE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset
VUID-vkCmdBuildAccelerationStructureNV-update-02492YNoneexplicitvkCmdBuildAccelerationStructureNVcoreIf update is VK_TRUE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset
VUID-vkCmdBuildAccelerationStructureNV-update-03524NNoneexplicitvkCmdBuildAccelerationStructureNVcoreIf update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances
VUID-vkCmdBuildAccelerationStructureNV-update-03525NNoneexplicitvkCmdBuildAccelerationStructureNVcoreIf update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances
VUID-vkCmdBuildAccelerationStructureNV-update-03526NNoneexplicitvkCmdBuildAccelerationStructureNVcoreIf update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing
VUID-vkCmdBuildAccelerationStructureNV-videocodingYNoneimplicitvkCmdBuildAccelerationStructureNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-None-03407NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureIndirectBuild feature must be enabled
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcorecommandBuffer must not be a protected command buffer
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-recordingYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcorecommandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03698YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03701NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03702NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03703NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03706NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03800YNegativeRayTracing.IndirectCmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770YNegativeRayTracing.UpdatedFirstVertexexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if the geometry uses indices, the firstVertex member of its corresponding VkAccelerationStructureBuildRangeInfoKHR structure must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData, geometry.triangles.transformData, geometry.aabbs.data, and geometry.instances.data members of all pInfos[i].pGeometries and pInfos[i].ppGeometries are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-infoCount-arraylengthYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreinfoCount must be greater than 0
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pIndirectDeviceAddresses, if the buffer from which it was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pIndirectDeviceAddresses[i], all device addresses between pIndirectDeviceAddresses[i] and pIndirectDeviceAddresses[i] + (pInfos[i].geometryCount × pIndirectStrides[i]) - 1 must be in the buffer device address range of the same buffer
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03647NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pIndirectDeviceAddresses, the buffer from which it was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03648NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreEach element of pIndirectDeviceAddresses must be a multiple of 4
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreEach VkAccelerationStructureBuildRangeInfoKHR structure referenced by any element of pIndirectDeviceAddresses must be a valid VkAccelerationStructureBuildRangeInfoKHR structure
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcorepIndirectDeviceAddresses must be a valid pointer to an array of infoCount VkDeviceAddress values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-03787NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreEach element of pIndirectStrides must be a multiple of 4
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcorepIndirectStrides must be a valid pointer to an array of infoCount uint32_t values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03652NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcorepInfos[i].dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and pMaxPrimitiveCounts = ppMaxPrimitiveCounts[i]
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03663NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03664NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03668NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03671NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreIf pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03672NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreIf pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03674NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03699YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03700YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03707YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03708YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03709NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03710YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03711NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in vertexFormat
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03712NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, and with geometry.triangles.indexType not equal to VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be aligned to the size in bytes of the type in indexType
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03714YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be aligned to 8 bytes
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03715YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_FALSE, geometry.instances.data.deviceAddress must be aligned to 16 bytes
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03716YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, geometry.instances.data.deviceAddress must be aligned to 8 bytes
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03717NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, each element of geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03758YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03759YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03760YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03761NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03762NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03763NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03764NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03765NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03766NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03767NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding ppMaxPrimitiveCounts[i][j] must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03802NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03804NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03805NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03806NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03807NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03808NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03809NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03810YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be aligned to 16 bytes
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03811NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03812NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03813NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03814NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-04630YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-06707NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR or 0
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcorepInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-03653NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreEach ppMaxPrimitiveCounts[i][j] must be greater than or equal to the primitiveCount value specified by the VkAccelerationStructureBuildRangeInfoKHR structure located at pIndirectDeviceAddresses[i] + (j × pIndirectStrides[i])
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreppMaxPrimitiveCounts must be a valid pointer to an array of infoCount uint32_t values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, the primitiveCount member of its corresponding VkAccelerationStructureBuildRangeInfoKHR structure must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-renderpassYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03704NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03705NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThe range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-srcAccelerationStructure-04629YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreIf the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-videocodingYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructuresKHR-None-03407NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreThe dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos
VUID-vkCmdBuildAccelerationStructuresKHR-accelerationStructure-08923YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructuresKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameterYNoneimplicitvkCmdBuildAccelerationStructuresKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-recordingYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRcorecommandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03698YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreThe dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos
VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03701YNegativeRayTracing.AccelerationStructuresOverlappingMemoryexplicitvkCmdBuildAccelerationStructuresKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03702YNegativeRayTracing.AccelerationStructuresOverlappingMemoryexplicitvkCmdBuildAccelerationStructuresKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03703YNegativeRayTracing.AccelerationStructuresOverlappingMemoryexplicitvkCmdBuildAccelerationStructuresKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03706NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreThe range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03800YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRcoreThe dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if the geometry uses indices, the firstVertex member of its corresponding VkAccelerationStructureBuildRangeInfoKHR structure must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-geometry-03673YNegativeRayTracing.BuffersAndBufferDeviceAddressesMapping, NegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRcoreThe buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData, geometry.triangles.transformData, geometry.aabbs.data, and geometry.instances.data members of all pInfos[i].pGeometries and pInfos[i].ppGeometries are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag
VUID-vkCmdBuildAccelerationStructuresKHR-infoCount-arraylengthYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRcoreinfoCount must be greater than 0
VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628YNegativeRayTracing.BuildAccelerationStructuresInvalidModeexplicitvkCmdBuildAccelerationStructuresKHRcoreThe mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreThe srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03663NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03664NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03667YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags in the build
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03668YNegativeRayTracing.AccelerationStructuresOverlappingMemoryexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03671NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreIf pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03672NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreIf pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03674YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRcoreThe buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03675NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03699YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03700YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03707YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03708YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03709NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03710YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03711NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in vertexFormat
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03712NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, and with geometry.triangles.indexType not equal to VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be aligned to the size in bytes of the type in indexType
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03714YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be aligned to 8 bytes
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03715YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_FALSE, geometry.instances.data.deviceAddress must be aligned to 16 bytes
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03716YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, geometry.instances.data.deviceAddress must be aligned to 8 bytes
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03717NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, each element of geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03758YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03759YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03760YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03761YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryTypeexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03762YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryFlagsexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03763YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryTriaglesFormatexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03764YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesMaxVertexexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03765YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesIndexTypeexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03766YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesTransformDataexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was NULL when srcAccelerationStructure was last built, then it must be NULL
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03767YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03801NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding ppBuildRangeInfos[i][j].primitiveCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03802YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03803NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03804NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03805NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03806NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03807NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03808NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03809NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03810YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be aligned to 16 bytes
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03811NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03812NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03813YNegativeRayTracing.InstanceBufferBadAddressexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03814YNegativeRayTracing.InstanceBufferBadMemoryexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-04630YNegativeRayTracing.UpdateAccelerationStructureKHRexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-06707NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR or 0
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-parameterYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRcorepInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreEach element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameterYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRcoreppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769NNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreFor each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, the primitiveCount member of its corresponding VkAccelerationStructureBuildRangeInfoKHR structure must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-renderpassYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03704YNegativeRayTracing.AccelerationStructuresOverlappingMemoryexplicitvkCmdBuildAccelerationStructuresKHRcoreThe range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03705YNegativeRayTracing.AccelerationStructuresOverlappingMemoryexplicitvkCmdBuildAccelerationStructuresKHRcoreThe range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command
VUID-vkCmdBuildAccelerationStructuresKHR-srcAccelerationStructure-04629YNoneexplicitvkCmdBuildAccelerationStructuresKHRcoreIf the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresKHR-videocodingYNoneimplicitvkCmdBuildAccelerationStructuresKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdBuildMicromapsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildMicromapsEXTcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameterYNoneimplicitvkCmdBuildMicromapsEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildMicromapsEXT-commandBuffer-recordingYNoneimplicitvkCmdBuildMicromapsEXTcorecommandBuffer must be in the recording state
VUID-vkCmdBuildMicromapsEXT-data-07510NNoneexplicitvkCmdBuildMicromapsEXTcoreThe buffers from which the buffer device addresses for all of the data and triangleArray members of all pInfos[i] are queried must have been created with the VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT usage flag
VUID-vkCmdBuildMicromapsEXT-dstMicromap-07463NNoneexplicitvkCmdBuildMicromapsEXTcoreThe dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle
VUID-vkCmdBuildMicromapsEXT-dstMicromap-07465NNoneexplicitvkCmdBuildMicromapsEXTcoreThe range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstMicromap member of any other element of pInfos, which is accessed by this command
VUID-vkCmdBuildMicromapsEXT-dstMicromap-07466NNoneexplicitvkCmdBuildMicromapsEXTcoreThe range of memory backing the dstMicromap member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command
VUID-vkCmdBuildMicromapsEXT-infoCount-arraylengthYNoneimplicitvkCmdBuildMicromapsEXTcoreinfoCount must be greater than 0
VUID-vkCmdBuildMicromapsEXT-mode-07462NNoneexplicitvkCmdBuildMicromapsEXTcoreThe mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value
VUID-vkCmdBuildMicromapsEXT-pInfos-07461NNoneexplicitvkCmdBuildMicromapsEXTcoreFor each pInfos[i], dstMicromap must have been created with a value of VkMicromapCreateInfoEXT::size greater than or equal to the memory size required by the build operation, as returned by vkGetMicromapBuildSizesEXT with pBuildInfo = pInfos[i]
VUID-vkCmdBuildMicromapsEXT-pInfos-07464NNoneexplicitvkCmdBuildMicromapsEXTcoreFor each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created
VUID-vkCmdBuildMicromapsEXT-pInfos-07508NNoneexplicitvkCmdBuildMicromapsEXTcoreFor each element of pInfos, the buffer used to create its dstMicromap member must be bound to device memory
VUID-vkCmdBuildMicromapsEXT-pInfos-07509NNoneexplicitvkCmdBuildMicromapsEXTcoreIf pInfos[i].mode is VK_BUILD_MICROMAP_MODE_BUILD_EXT, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkMicromapBuildSizesInfoEXT structure returned from a call to vkGetMicromapBuildSizesEXT with an identical VkMicromapBuildInfoEXT structure and primitive count
VUID-vkCmdBuildMicromapsEXT-pInfos-07511NNoneexplicitvkCmdBuildMicromapsEXTcoreFor each element of pInfos[i] the buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag
VUID-vkCmdBuildMicromapsEXT-pInfos-07512NNoneexplicitvkCmdBuildMicromapsEXTcoreFor each element of pInfos, its scratchData.deviceAddress, data.deviceAddress, and triangleArray.deviceAddress members must be valid device addresses obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildMicromapsEXT-pInfos-07513NNoneexplicitvkCmdBuildMicromapsEXTcoreFor each element of pInfos, if scratchData.deviceAddress, data.deviceAddress, or triangleArray.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBuildMicromapsEXT-pInfos-07514NNoneexplicitvkCmdBuildMicromapsEXTcoreFor each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildMicromapsEXT-pInfos-07515NNoneexplicitvkCmdBuildMicromapsEXTcoreFor each element of pInfos, its triangleArray.deviceAddress and data.deviceAddress members must be a multiple of 256
VUID-vkCmdBuildMicromapsEXT-pInfos-parameterYNoneimplicitvkCmdBuildMicromapsEXTcorepInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures
VUID-vkCmdBuildMicromapsEXT-renderpassYNoneimplicitvkCmdBuildMicromapsEXTcoreThis command must only be called outside of a render pass instance
VUID-vkCmdBuildMicromapsEXT-scratchData-07467NNoneexplicitvkCmdBuildMicromapsEXTcoreThe range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command
VUID-vkCmdBuildMicromapsEXT-videocodingYNoneimplicitvkCmdBuildMicromapsEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdClearAttachments-aspectMask-07271YNegativeCommand.MissingClearAttachment, NegativeDynamicRendering.ClearAttachmentsexplicitvkCmdClearAttachmentscoreIf the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_COLOR_BIT, the colorAttachment must be a valid color attachment index in the current render pass instance
VUID-vkCmdClearAttachments-aspectMask-07884YNegativeCommand.ClearAttachmentsDepth, NegativeCommand.ClearDsImageWithInvalidAspectexplicitvkCmdClearAttachmentscoreIf the current render pass instance does not use dynamic rendering, and the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_DEPTH_BIT, the current subpass instance's depth-stencil attachment must be either VK_ATTACHMENT_UNUSED or the attachment format must contain a depth component
VUID-vkCmdClearAttachments-aspectMask-07885YNegativeCommand.ClearAttachmentsStencil, NegativeCommand.ClearDsImageWithInvalidAspectexplicitvkCmdClearAttachmentscoreIf the current render pass instance does not use dynamic rendering, and the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_STENCIL_BIT, the current subpass instance's depth-stencil attachment must be either VK_ATTACHMENT_UNUSED or the attachment format must contain a stencil component
VUID-vkCmdClearAttachments-aspectMask-09298YNegativeAndroidExternalResolve.ClearAttachmentexplicitvkCmdClearAttachmentscoreIf the subpass this is recorded in performs an external format resolve, the aspectMask member of any element of pAttachments must not include VK_IMAGE_ASPECT_PLANE_i_BIT for any index i
VUID-vkCmdClearAttachments-attachmentCount-arraylengthYNoneimplicitvkCmdClearAttachmentscoreattachmentCount must be greater than 0
VUID-vkCmdClearAttachments-baseArrayLayer-00018YNegativeMultiview.ClearColorAttachmentsexplicitvkCmdClearAttachmentscoreIf the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one
VUID-vkCmdClearAttachments-commandBuffer-02504YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdClearAttachmentscoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be a protected image
VUID-vkCmdClearAttachments-commandBuffer-02505YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdClearAttachmentscoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be an unprotected image
VUID-vkCmdClearAttachments-commandBuffer-cmdpoolYNoneimplicitvkCmdClearAttachmentscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdClearAttachments-commandBuffer-parameterYNoneimplicitvkCmdClearAttachmentscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearAttachments-commandBuffer-recordingYNoneimplicitvkCmdClearAttachmentscorecommandBuffer must be in the recording state
VUID-vkCmdClearAttachments-layerCount-01934YNegativeCommand.ClearColorAttachmentsZeroLayercountexplicitvkCmdClearAttachmentscoreThe layerCount member of each element of pRects must not be 0
VUID-vkCmdClearAttachments-pAttachments-parameterYNoneimplicitvkCmdClearAttachmentscorepAttachments must be a valid pointer to an array of attachmentCount valid VkClearAttachment structures
VUID-vkCmdClearAttachments-pRects-00016YNegativeCommand.CmdClearAttachmentTests, NegativeCommand.SecondaryCommandBufferClearColorAttachmentsRenderArea, NegativeDynamicRendering.CmdClearAttachmentTestsexplicitvkCmdClearAttachmentscoreThe rectangular region specified by each element of pRects must be contained within the render area of the current render pass instance
VUID-vkCmdClearAttachments-pRects-06937YNegativeCommand.CmdClearAttachmentTests, NegativeDynamicRendering.CmdClearAttachmentTests, NegativeMultiview.ClearColorAttachmentsexplicitvkCmdClearAttachmentscoreThe layers specified by each element of pRects must be contained within every attachment that pAttachments refers to, i.e. for each element of pRects, VkClearRect::baseArrayLayer + VkClearRect::layerCount must be less than or equal to the number of layers rendered to in the current render pass instance
VUID-vkCmdClearAttachments-pRects-parameterYNoneimplicitvkCmdClearAttachmentscorepRects must be a valid pointer to an array of rectCount VkClearRect structures
VUID-vkCmdClearAttachments-rect-02682YNegativeCommand.ClearColorAttachmentsZeroExtentexplicitvkCmdClearAttachmentscoreThe rect member of each element of pRects must have an extent.width greater than 0
VUID-vkCmdClearAttachments-rect-02683YNegativeCommand.ClearColorAttachmentsZeroExtentexplicitvkCmdClearAttachmentscoreThe rect member of each element of pRects must have an extent.height greater than 0
VUID-vkCmdClearAttachments-rectCount-arraylengthYNoneimplicitvkCmdClearAttachmentscorerectCount must be greater than 0
VUID-vkCmdClearAttachments-renderpassYNegativeCommand.ClearAttachmentsOutsideRenderPass, NegativeCommand.ClearColorAttachmentsOutsideRenderPassimplicitvkCmdClearAttachmentscoreThis command must only be called inside of a render pass instance
VUID-vkCmdClearAttachments-videocodingYNoneimplicitvkCmdClearAttachmentscoreThis command must only be called outside of a video coding scope
VUID-vkCmdClearColorImage-aspectMask-02498YNegativeCommand.ClearImageAspectMaskexplicitvkCmdClearColorImagecoreThe VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkCmdClearColorImage-baseArrayLayer-01472YNegativeCommand.ClearColorImageWithRangeexplicitvkCmdClearColorImagecoreThe VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-vkCmdClearColorImage-baseMipLevel-01470YNegativeCommand.ClearColorImageWithRangeexplicitvkCmdClearColorImagecoreThe VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-vkCmdClearColorImage-commandBuffer-01805YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdClearColorImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image
VUID-vkCmdClearColorImage-commandBuffer-01806YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdClearColorImagecoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, must not be an unprotected image
VUID-vkCmdClearColorImage-commandBuffer-cmdpoolYNoneimplicitvkCmdClearColorImagecoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdClearColorImage-commandBuffer-parameterYNoneimplicitvkCmdClearColorImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearColorImage-commandBuffer-recordingYNoneimplicitvkCmdClearColorImagecorecommandBuffer must be in the recording state
VUID-vkCmdClearColorImage-commonparentYNoneimplicitvkCmdClearColorImagecoreBoth of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdClearColorImage-image-00002YNegativeCommand.ClearImageexplicitvkCmdClearColorImagecoreimage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdClearColorImage-image-00003YNoneexplicitvkCmdClearColorImagecoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdClearColorImage-image-00007YNegativeCommand.ClearImageexplicitvkCmdClearColorImagecoreimage must not have a compressed or depth/stencil format
VUID-vkCmdClearColorImage-image-01545YNegativeYcbcr.ClearColorImageFormatexplicitvkCmdClearColorImagecoreimage must not use any of the formats that require a sampler Y'CBCR conversion
VUID-vkCmdClearColorImage-image-01993YNegativeCommand.ClearColorImageWithMissingFeatureexplicitvkCmdClearColorImagecoreThe format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdClearColorImage-image-parameterYNoneimplicitvkCmdClearColorImagecoreimage must be a valid VkImage handle
VUID-vkCmdClearColorImage-imageLayout-00004YNegativeImage.ImageLayoutexplicitvkCmdClearColorImagecoreimageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice
VUID-vkCmdClearColorImage-imageLayout-01394YNegativeCommand.ClearColorImageImageLayout, NegativeImage.ImageLayoutexplicitvkCmdClearColorImagecoreimageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdClearColorImage-imageLayout-parameterYNoneimplicitvkCmdClearColorImagecoreimageLayout must be a valid VkImageLayout value
VUID-vkCmdClearColorImage-pColor-04961YNegativeCommand.CmdClearColorImageNullColorexplicitvkCmdClearColorImagecorepColor must be a valid pointer to a VkClearColorValue union
VUID-vkCmdClearColorImage-pRanges-01692YNegativeCommand.ClearColorImageWithRangeexplicitvkCmdClearColorImagecoreFor each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created
VUID-vkCmdClearColorImage-pRanges-01693YNegativeCommand.ClearColorImageWithRangeexplicitvkCmdClearColorImagecoreFor each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created
VUID-vkCmdClearColorImage-pRanges-parameterYNoneimplicitvkCmdClearColorImagecorepRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures
VUID-vkCmdClearColorImage-rangeCount-arraylengthYNoneimplicitvkCmdClearColorImagecorerangeCount must be greater than 0
VUID-vkCmdClearColorImage-renderpassYNegativeCommand.ClearColorImageWithinRenderPassimplicitvkCmdClearColorImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdClearColorImage-videocodingYNoneimplicitvkCmdClearColorImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdClearDepthStencilImage-aspectMask-02824YNegativeCommand.ClearDepthStencilImageWithInvalidAspectexplicitvkCmdClearDepthStencilImagecoreThe VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include bits other than VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476YNegativeCommand.ClearDepthStencilWithRangeexplicitvkCmdClearDepthStencilImagecoreThe VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474YNegativeCommand.ClearDepthStencilWithRangeexplicitvkCmdClearDepthStencilImagecoreThe VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-vkCmdClearDepthStencilImage-commandBuffer-01807YNoneexplicitvkCmdClearDepthStencilImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image
VUID-vkCmdClearDepthStencilImage-commandBuffer-01808YNoneexplicitvkCmdClearDepthStencilImagecoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, image must not be an unprotected image
VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpoolYNoneimplicitvkCmdClearDepthStencilImagecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdClearDepthStencilImage-commandBuffer-parameterYNoneimplicitvkCmdClearDepthStencilImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearDepthStencilImage-commandBuffer-recordingYNoneimplicitvkCmdClearDepthStencilImagecorecommandBuffer must be in the recording state
VUID-vkCmdClearDepthStencilImage-commonparentYNoneimplicitvkCmdClearDepthStencilImagecoreBoth of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdClearDepthStencilImage-image-00010YNoneexplicitvkCmdClearDepthStencilImagecoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdClearDepthStencilImage-image-00014YNegativeCommand.ClearImageexplicitvkCmdClearDepthStencilImagecoreimage must have a depth/stencil format
VUID-vkCmdClearDepthStencilImage-image-01994YNoneexplicitvkCmdClearDepthStencilImagecoreThe format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdClearDepthStencilImage-image-02825YNegativeCommand.ClearDepthStencilWithAspectexplicitvkCmdClearDepthStencilImagecoreIf the image's format does not have a stencil component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_STENCIL_BIT bit
VUID-vkCmdClearDepthStencilImage-image-02826YNegativeCommand.ClearImageexplicitvkCmdClearDepthStencilImagecoreIf the image's format does not have a depth component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_DEPTH_BIT bit
VUID-vkCmdClearDepthStencilImage-image-parameterYNoneimplicitvkCmdClearDepthStencilImagecoreimage must be a valid VkImage handle
VUID-vkCmdClearDepthStencilImage-imageLayout-00011YNegativeImage.ImageLayoutexplicitvkCmdClearDepthStencilImagecoreimageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice
VUID-vkCmdClearDepthStencilImage-imageLayout-00012YNegativeImage.ImageLayoutexplicitvkCmdClearDepthStencilImagecoreimageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdClearDepthStencilImage-imageLayout-parameterYNoneimplicitvkCmdClearDepthStencilImagecoreimageLayout must be a valid VkImageLayout value
VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameterYNoneimplicitvkCmdClearDepthStencilImagecorepDepthStencil must be a valid pointer to a valid VkClearDepthStencilValue structure
VUID-vkCmdClearDepthStencilImage-pRanges-01694YNegativeCommand.ClearDepthStencilWithRangeexplicitvkCmdClearDepthStencilImagecoreFor each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created
VUID-vkCmdClearDepthStencilImage-pRanges-01695YNegativeCommand.ClearDepthStencilWithRangeexplicitvkCmdClearDepthStencilImagecoreFor each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created
VUID-vkCmdClearDepthStencilImage-pRanges-02658YNegativeCommand.ClearDepthStencilWithAspectexplicitvkCmdClearDepthStencilImagecoreIf the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create image
VUID-vkCmdClearDepthStencilImage-pRanges-02659YNegativeCommand.ClearDepthStencilImage, NegativeCommand.ClearDepthStencilWithAspectexplicitvkCmdClearDepthStencilImagecoreIf the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image
VUID-vkCmdClearDepthStencilImage-pRanges-02660YNegativeCommand.ClearDepthStencilImage, NegativeCommand.ClearDepthStencilWithAspectexplicitvkCmdClearDepthStencilImagecoreIf the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image
VUID-vkCmdClearDepthStencilImage-pRanges-parameterYNoneimplicitvkCmdClearDepthStencilImagecorepRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures
VUID-vkCmdClearDepthStencilImage-rangeCount-arraylengthYNoneimplicitvkCmdClearDepthStencilImagecorerangeCount must be greater than 0
VUID-vkCmdClearDepthStencilImage-renderpassYNegativeCommand.ClearDepthStencilImageimplicitvkCmdClearDepthStencilImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdClearDepthStencilImage-videocodingYNoneimplicitvkCmdClearDepthStencilImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdControlVideoCodingKHR-bufferlevelYNoneimplicitvkCmdControlVideoCodingKHRcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdControlVideoCodingKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdControlVideoCodingKHRcoreThe VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdControlVideoCodingKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdControlVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdControlVideoCodingKHRcorecommandBuffer must be in the recording state
VUID-vkCmdControlVideoCodingKHR-flags-07017YNegativeVideo.ControlSessionUninitializedexplicitvkCmdControlVideoCodingKHRcoreIf pCodingControlInfo->flags does not include VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR, then the bound video session must not be in uninitialized state at the time the command is executed on the device
VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-08243YNegativeVideo.EncodeQualityLevelControlRequiresEncodeSession, NegativeVideo.EncodeRateControlRequiresEncodeSessionexplicitvkCmdControlVideoCodingKHRcoreIf the bound video session was not created with an encode operation, then pCodingControlInfo->pNext must not include VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR or VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR
VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-parameterYNoneimplicitvkCmdControlVideoCodingKHRcorepCodingControlInfo must be a valid pointer to a valid VkVideoCodingControlInfoKHR structure
VUID-vkCmdControlVideoCodingKHR-renderpassYNoneimplicitvkCmdControlVideoCodingKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdControlVideoCodingKHR-videocodingYNegativeVideo.VideoCodingScopeimplicitvkCmdControlVideoCodingKHRcoreThis command must only be called inside of a video coding scope
VUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925YNoneexplicitvkCmdCopyAccelerationStructureKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitvkCmdCopyAccelerationStructureKHRcoreThe buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitvkCmdCopyAccelerationStructureKHRcoreThe buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyAccelerationStructureKHRcorecommandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCmdCopyAccelerationStructureKHRcorepInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure
VUID-vkCmdCopyAccelerationStructureKHR-renderpassYNoneimplicitvkCmdCopyAccelerationStructureKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureKHR-videocodingYNoneimplicitvkCmdCopyAccelerationStructureKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyAccelerationStructureNV-buffer-03718YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVcoreThe buffer used to create src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureNV-buffer-03719YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVcoreThe buffer used to create dst must be bound to device memory
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureNVcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recordingYNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNVcorecommandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureNV-commonparentYNoneimplicitvkCmdCopyAccelerationStructureNVcoreEach of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyAccelerationStructureNV-dst-07791NNoneexplicitvkCmdCopyAccelerationStructureNVcoreThe range of memory backing dst that is accessed by this command must not overlap the memory backing src that is accessed by this command
VUID-vkCmdCopyAccelerationStructureNV-dst-07792YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVcoredst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkCmdCopyAccelerationStructureNV-dst-parameterYNoneimplicitvkCmdCopyAccelerationStructureNVcoredst must be a valid VkAccelerationStructureNV handle
VUID-vkCmdCopyAccelerationStructureNV-mode-03410YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVcoremode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
VUID-vkCmdCopyAccelerationStructureNV-mode-parameterYNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNVcoremode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-vkCmdCopyAccelerationStructureNV-renderpassYNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureNV-src-03411YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVcoreIf mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build
VUID-vkCmdCopyAccelerationStructureNV-src-04963YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVcoreThe source acceleration structure src must have been constructed prior to the execution of this command
VUID-vkCmdCopyAccelerationStructureNV-src-parameterYNoneimplicitvkCmdCopyAccelerationStructureNVcoresrc must be a valid VkAccelerationStructureNV handle
VUID-vkCmdCopyAccelerationStructureNV-videocodingYNoneimplicitvkCmdCopyAccelerationStructureNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559YNegativeRayTracing.CmdCopyAccelerationStructureToMemoryKHRexplicitvkCmdCopyAccelerationStructureToMemoryKHRcoreThe buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-accelerationStructure-08926YNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRcorecommandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739NNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHRcorepInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740YNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHRcorepInfo->dst.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741NNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHRcoreIf the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-parameterYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRcorepInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpassYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-videocodingYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBuffer-commandBuffer-01822YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBuffercoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer-commandBuffer-01823YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBuffercoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer-commandBuffer-01824YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBuffercoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBuffercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBuffer-commandBuffer-parameterYNoneimplicitvkCmdCopyBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBuffer-commandBuffer-recordingYNoneimplicitvkCmdCopyBuffercorecommandBuffer must be in the recording state
VUID-vkCmdCopyBuffer-commonparentYNoneimplicitvkCmdCopyBuffercoreEach of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyBuffer-dstBuffer-00120YNoneexplicitvkCmdCopyBuffercoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyBuffer-dstBuffer-00121YNoneexplicitvkCmdCopyBuffercoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBuffer-dstBuffer-parameterYNoneimplicitvkCmdCopyBuffercoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBuffer-dstOffset-00114YNegativeBuffer.ExtentsexplicitvkCmdCopyBuffercoreThe dstOffset member of each element of pRegions must be less than the size of dstBuffer
VUID-vkCmdCopyBuffer-pRegions-00117YNegativeBuffer.CompletelyOverlappingBufferCopy, NegativeBuffer.CopyingInterleavedRegions, NegativeBuffer.Extents, NegativeSparseBuffer.OverlappingBufferCopy, NegativeSparseBuffer.OverlappingBufferCopy2, NegativeSparseBuffer.OverlappingBufferCopy3explicitvkCmdCopyBuffercoreThe 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-pRegions-parameterYNoneimplicitvkCmdCopyBuffercorepRegions must be a valid pointer to an array of regionCount valid VkBufferCopy structures
VUID-vkCmdCopyBuffer-regionCount-arraylengthYNoneimplicitvkCmdCopyBuffercoreregionCount must be greater than 0
VUID-vkCmdCopyBuffer-renderpassYNoneimplicitvkCmdCopyBuffercoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyBuffer-size-00115YNegativeBuffer.ExtentsexplicitvkCmdCopyBuffercoreThe size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset
VUID-vkCmdCopyBuffer-size-00116YNegativeBuffer.ExtentsexplicitvkCmdCopyBuffercoreThe size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset
VUID-vkCmdCopyBuffer-srcBuffer-00118YNoneexplicitvkCmdCopyBuffercoresrcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyBuffer-srcBuffer-00119YNoneexplicitvkCmdCopyBuffercoreIf srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBuffer-srcBuffer-parameterYNoneimplicitvkCmdCopyBuffercoresrcBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBuffer-srcOffset-00113YNegativeBuffer.ExtentsexplicitvkCmdCopyBuffercoreThe srcOffset member of each element of pRegions must be less than the size of srcBuffer
VUID-vkCmdCopyBuffer-videocodingYNoneimplicitvkCmdCopyBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBuffer2-commandBuffer-01822YNoneexplicitvkCmdCopyBuffer2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-01823YNoneexplicitvkCmdCopyBuffer2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-01824YNoneexplicitvkCmdCopyBuffer2coreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBuffer2coreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBuffer2-commandBuffer-parameterYNoneimplicitvkCmdCopyBuffer2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBuffer2-commandBuffer-recordingYNoneimplicitvkCmdCopyBuffer2corecommandBuffer must be in the recording state
VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameterYNoneimplicitvkCmdCopyBuffer2corepCopyBufferInfo must be a valid pointer to a valid VkCopyBufferInfo2 structure
VUID-vkCmdCopyBuffer2-renderpassYNoneimplicitvkCmdCopyBuffer2coreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyBuffer2-videocodingYNoneimplicitvkCmdCopyBuffer2coreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-bufferRowLength-09106YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-bufferRowLength-09108YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, bufferRowLength divided by the 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-commandBuffer-01828YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBufferToImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBufferToImage-commandBuffer-01829YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBufferToImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyBufferToImage-commandBuffer-01830YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBufferToImagecoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyBufferToImage-commandBuffer-07737YNegativeCommand.ImageCopyTransferQueueFlagsexplicitvkCmdCopyBufferToImagecoreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-vkCmdCopyBufferToImage-commandBuffer-07739YNegativeCommand.DepthStencilImageCopyNoGraphicsQueueFlagsexplicitvkCmdCopyBufferToImagecoreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBufferToImagecoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBufferToImage-commandBuffer-parameterYNoneimplicitvkCmdCopyBufferToImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBufferToImage-commandBuffer-recordingYNegativeCommand.ImageBufferCopyimplicitvkCmdCopyBufferToImagecorecommandBuffer must be in the recording state
VUID-vkCmdCopyBufferToImage-commonparentYNoneimplicitvkCmdCopyBufferToImagecoreEach of commandBuffer, dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyBufferToImage-dstImage-00177YNegativeImage.UsageBitsexplicitvkCmdCopyBufferToImagecoredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyBufferToImage-dstImage-00207YNegativeCommand.CompressedImageMipCopyexplicitvkCmdCopyBufferToImagecoreFor 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 texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-00208YNegativeCommand.CompressedImageMipCopyexplicitvkCmdCopyBufferToImagecoreFor 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 texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-00209YNoneexplicitvkCmdCopyBufferToImagecoreFor 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 texel block extent depth of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-01997YNoneexplicitvkCmdCopyBufferToImagecoreThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdCopyBufferToImage-dstImage-07274YNegativeCommand.CompressedImageMipCopyexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-07275YNegativeCommand.CompressedImageMipCopyexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-07276YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-07966YNoneexplicitvkCmdCopyBufferToImagecoreIf dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBufferToImage-dstImage-07969YNoneexplicitvkCmdCopyBufferToImagecoredstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyBufferToImage-dstImage-07973YNoneexplicitvkCmdCopyBufferToImagecoredstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyBufferToImage-dstImage-07975YNegativeCommand.ImageCopyTransferQueueFlags, NegativeCommand.MiscImageLayerexplicitvkCmdCopyBufferToImagecoreIf dstImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size
VUID-vkCmdCopyBufferToImage-dstImage-07976YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyBufferToImagecoreIf dstImage has a 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 Compatible Formats of Planes of Multi-Planar Formats
VUID-vkCmdCopyBufferToImage-dstImage-07978YNoneexplicitvkCmdCopyBufferToImagecoreIf dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-vkCmdCopyBufferToImage-dstImage-07979YNoneexplicitvkCmdCopyBufferToImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
VUID-vkCmdCopyBufferToImage-dstImage-07980YNegativeCommand.MiscImageLayerexplicitvkCmdCopyBufferToImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
VUID-vkCmdCopyBufferToImage-dstImage-07981YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyBufferToImagecoreIf dstImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-vkCmdCopyBufferToImage-dstImage-07983YNoneexplicitvkCmdCopyBufferToImagecoreIf dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1
VUID-vkCmdCopyBufferToImage-dstImage-parameterYNoneimplicitvkCmdCopyBufferToImagecoredstImage must be a valid VkImage handle
VUID-vkCmdCopyBufferToImage-dstImageLayout-00180YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyBufferToImagecoredstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-vkCmdCopyBufferToImage-dstImageLayout-01396YNoneexplicitvkCmdCopyBufferToImagecoredstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyBufferToImage-dstImageLayout-parameterYNoneimplicitvkCmdCopyBufferToImagecoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyBufferToImage-imageOffset-07738YNegativeCommand.CompressedImageMipCopy, NegativeImage.MinImageTransferGranularityexplicitvkCmdCopyBufferToImagecoreThe 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 VkQueueFamilyProperties
VUID-vkCmdCopyBufferToImage-imageOffset-09104YNegativeCommand.ImageBufferCopy, NegativeCommand.MiscImageLayer, NegativeImage.CopyBufferToCompressedImageexplicitvkCmdCopyBufferToImagecoreFor 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-imageSubresource-07967YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyBufferToImagecoreThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyBufferToImage-imageSubresource-07968YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyBufferToImagecoreIf imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyBufferToImage-imageSubresource-07970YNegativeCommand.ImageBufferCopy, NegativeCommand.MiscImageLayer, NegativeImage.CopyBufferToCompressedImageexplicitvkCmdCopyBufferToImagecoreThe image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage
VUID-vkCmdCopyBufferToImage-imageSubresource-07971YNegativeCommand.ImageBufferCopy, NegativeImage.CopyBufferToCompressedImageexplicitvkCmdCopyBufferToImagecoreFor 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-07972YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyBufferToImagecoreFor 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-imageSubresource-09105YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage
VUID-vkCmdCopyBufferToImage-pRegions-00171YNegativeCommand.CompressedImageMipCopy, NegativeCommand.CopyImageRemainingLayers, NegativeCommand.ImageBufferCopyexplicitvkCmdCopyBufferToImagecoresrcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
VUID-vkCmdCopyBufferToImage-pRegions-00173YNoneexplicitvkCmdCopyBufferToImagecoreThe 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-pRegions-07931NNoneexplicitvkCmdCopyBufferToImagecoreIf 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-pRegions-parameterYNoneimplicitvkCmdCopyBufferToImagecorepRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures
VUID-vkCmdCopyBufferToImage-regionCount-arraylengthYNoneimplicitvkCmdCopyBufferToImagecoreregionCount must be greater than 0
VUID-vkCmdCopyBufferToImage-renderpassYNoneimplicitvkCmdCopyBufferToImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyBufferToImage-srcBuffer-00174YNegativeImage.UsageBitsexplicitvkCmdCopyBufferToImagecoresrcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyBufferToImage-srcBuffer-00176YNoneexplicitvkCmdCopyBufferToImagecoreIf srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBufferToImage-srcBuffer-parameterYNoneimplicitvkCmdCopyBufferToImagecoresrcBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBufferToImage-videocodingYNoneimplicitvkCmdCopyBufferToImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBufferToImage2-commandBuffer-01828YNoneexplicitvkCmdCopyBufferToImage2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBufferToImage2-commandBuffer-01829YNoneexplicitvkCmdCopyBufferToImage2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyBufferToImage2-commandBuffer-01830NNoneexplicitvkCmdCopyBufferToImage2coreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyBufferToImage2-commandBuffer-07737YNoneexplicitvkCmdCopyBufferToImage2coreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pCopyBufferToImageInfo->pRegions must be a multiple of 4
VUID-vkCmdCopyBufferToImage2-commandBuffer-07739YNoneexplicitvkCmdCopyBufferToImage2coreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pCopyBufferToImageInfo->pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBufferToImage2coreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBufferToImage2-commandBuffer-parameterYNoneimplicitvkCmdCopyBufferToImage2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBufferToImage2-commandBuffer-recordingYNoneimplicitvkCmdCopyBufferToImage2corecommandBuffer must be in the recording state
VUID-vkCmdCopyBufferToImage2-imageOffset-07738YNegativeCommand.CompressedImageMipCopyexplicitvkCmdCopyBufferToImage2coreThe imageOffset and imageExtent members of each element of pCopyBufferToImageInfo->pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameterYNoneimplicitvkCmdCopyBufferToImage2corepCopyBufferToImageInfo must be a valid pointer to a valid VkCopyBufferToImageInfo2 structure
VUID-vkCmdCopyBufferToImage2-renderpassYNoneimplicitvkCmdCopyBufferToImage2coreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyBufferToImage2-videocodingYNoneimplicitvkCmdCopyBufferToImage2coreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyImage-None-01549YNegativeCommand.CopyImageFormatSizeMismatch, NegativeYcbcr.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImagecoreIn a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied
VUID-vkCmdCopyImage-apiVersion-07932YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf the VK_KHR_maintenance1 extension is not enabled, or VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, and either srcImage or dstImage is of type VK_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-apiVersion-07933YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage and dstImage must have the same VkImageType
VUID-vkCmdCopyImage-apiVersion-08969YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf the VK_KHR_maintenance1 extension is not enabled, and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
VUID-vkCmdCopyImage-aspect-06662YNegativeImage.ImageCopyMissingUsageexplicitvkCmdCopyImagecoreIf the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage
VUID-vkCmdCopyImage-aspect-06663YNegativeCommand.CopyCommands2V13, NegativeImage.ImageCopyMissingUsageexplicitvkCmdCopyImagecoreIf the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage
VUID-vkCmdCopyImage-aspect-06664YNegativeImage.ImageCopyMissingUsageexplicitvkCmdCopyImagecoreIf the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage
VUID-vkCmdCopyImage-aspect-06665YNegativeImage.ImageCopyMissingUsageexplicitvkCmdCopyImagecoreIf the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and dstImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create dstImage
VUID-vkCmdCopyImage-aspectMask-00142YNegativeCommand.CopyImageAspectMismatchexplicitvkCmdCopyImagecoreFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-vkCmdCopyImage-aspectMask-00143YNegativeCommand.CopyImageAspectMismatchexplicitvkCmdCopyImagecoreFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-vkCmdCopyImage-commandBuffer-01825YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImage-commandBuffer-01826YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyImage-commandBuffer-01827YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImagecoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyImage-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImagecoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImage-commandBuffer-parameterYNoneimplicitvkCmdCopyImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImage-commandBuffer-recordingYNegativeCommand.CopyImageAspectMismatchimplicitvkCmdCopyImagecorecommandBuffer must be in the recording state
VUID-vkCmdCopyImage-commonparentYNoneimplicitvkCmdCopyImagecoreEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyImage-dstImage-00152YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1
VUID-vkCmdCopyImage-dstImage-01557YNegativeYcbcr.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImagecoreIf dstImage has a 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 VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkCmdCopyImage-dstImage-01732YNegativeCommand.CopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor 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 texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyImage-dstImage-01733YNegativeCommand.CopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor 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 texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyImage-dstImage-01734YNoneexplicitvkCmdCopyImagecoreFor 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 texel block extent depth of the VkFormat of dstImage
VUID-vkCmdCopyImage-dstImage-01786YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1
VUID-vkCmdCopyImage-dstImage-01788YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0
VUID-vkCmdCopyImage-dstImage-01792YNegativeCommand.CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreIf dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount
VUID-vkCmdCopyImage-dstImage-01996YNoneexplicitvkCmdCopyImagecoreThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdCopyImage-dstImage-04444YNoneexplicitvkCmdCopyImagecoreIf dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1
VUID-vkCmdCopyImage-dstImage-07966YNegativeImage.CopyImageMemoryexplicitvkCmdCopyImagecoreIf dstImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImage-dstImage-07969YNoneexplicitvkCmdCopyImagecoredstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyImage-dstImage-08714YNegativeYcbcr.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImagecoreIf dstImage has a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-vkCmdCopyImage-dstImage-parameterYNoneimplicitvkCmdCopyImagecoredstImage must be a valid VkImage handle
VUID-vkCmdCopyImage-dstImageLayout-00133YNegativeImage.ImageLayoutexplicitvkCmdCopyImagecoredstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-vkCmdCopyImage-dstImageLayout-01395YNegativeImage.ImageLayoutexplicitvkCmdCopyImagecoredstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImage-dstImageLayout-parameterYNoneimplicitvkCmdCopyImagecoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImage-dstOffset-00150YNegativeCommand.CopyImageDstSizeExceeded, NegativeCommand.CopyImageMultiPlaneSizeExceeded, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreFor 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-00151YNegativeCommand.CopyImageDstSizeExceeded, NegativeCommand.CopyImageMultiPlaneSizeExceeded, NegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreFor 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-dstOffset-00153YNegativeCommand.CopyImageDstSizeExceeded, NegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf dstImage is of type VK_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-dstOffset-01784YNegativeCommand.CopyImageCompressedBlockAlignment, NegativeImage.MinImageTransferGranularity, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreThe 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 VkQueueFamilyProperties
VUID-vkCmdCopyImage-dstSubresource-07967YNoneexplicitvkCmdCopyImagecoreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyImage-dstSubresource-07968YNegativeCommand.CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreIf dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyImage-pRegions-00124YNegativeImage.OverlappingImageCopyexplicitvkCmdCopyImagecoreThe 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-pRegions-07278YNegativeCommand.CopyImageCompressedBlockAlignment, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07279YNegativeCommand.CopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07280YNoneexplicitvkCmdCopyImagecoreFor each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07281YNegativeCommand.CopyImageCompressedBlockAlignment, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-07282YNegativeCommand.CopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-07283YNoneexplicitvkCmdCopyImagecoreFor each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-parameterYNoneimplicitvkCmdCopyImagecorepRegions must be a valid pointer to an array of regionCount valid VkImageCopy structures
VUID-vkCmdCopyImage-regionCount-arraylengthYNoneimplicitvkCmdCopyImagecoreregionCount must be greater than 0
VUID-vkCmdCopyImage-renderpassYNoneimplicitvkCmdCopyImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyImage-srcImage-00136YNegativeCommand.CopyImageSampleCountMismatchexplicitvkCmdCopyImagecoreThe sample count of srcImage and dstImage must match
VUID-vkCmdCopyImage-srcImage-00146YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
VUID-vkCmdCopyImage-srcImage-01548YNegativeCommand.CopyImageAspectMismatch, NegativeCommand.CopyImageDepthStencilFormatMismatch, NegativeCommand.CopyImageFormatSizeMismatchexplicitvkCmdCopyImagecoreIf the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be size-compatible
VUID-vkCmdCopyImage-srcImage-01551YNegativeCommand.CopyImageAspectMismatchexplicitvkCmdCopyImagecoreIf neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match
VUID-vkCmdCopyImage-srcImage-01556YNegativeYcbcr.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImagecoreIf srcImage has a 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 VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkCmdCopyImage-srcImage-01728YNegativeCommand.CopyImageCompressedBlockAlignment, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreFor 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 texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImage-srcImage-01729YNegativeCommand.CopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor 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 texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImage-srcImage-01730YNoneexplicitvkCmdCopyImagecoreFor 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 texel block extent depth of the VkFormat of srcImage
VUID-vkCmdCopyImage-srcImage-01785YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
VUID-vkCmdCopyImage-srcImage-01787YNegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0
VUID-vkCmdCopyImage-srcImage-01790YNegativeCommand.CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreIf srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
VUID-vkCmdCopyImage-srcImage-01791YNegativeCommand.CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreIf srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount
VUID-vkCmdCopyImage-srcImage-01995YNoneexplicitvkCmdCopyImagecoreThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdCopyImage-srcImage-04443YNoneexplicitvkCmdCopyImagecoreIf srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1
VUID-vkCmdCopyImage-srcImage-07743YNegativeCommand.CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreIf srcImage and dstImage have a different VkImageType, and maintenance5 is not enabled, one must be VK_IMAGE_TYPE_3D and the other must be VK_IMAGE_TYPE_2D
VUID-vkCmdCopyImage-srcImage-07966YNegativeImage.CopyImageMemoryexplicitvkCmdCopyImagecoreIf srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImage-srcImage-07969YNoneexplicitvkCmdCopyImagecoresrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyImage-srcImage-08713YNegativeYcbcr.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImagecoreIf srcImage has a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-vkCmdCopyImage-srcImage-08793YNegativeCommand.CopyImageLayerCountMismatch, NegativeCommand.CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreIf srcImage and dstImage have the same VkImageType, for each element of pRegions, if neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match
VUID-vkCmdCopyImage-srcImage-08794YNegativeImage.CopyImageRemainingArrayLayersexplicitvkCmdCopyImagecoreIf srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer
VUID-vkCmdCopyImage-srcImage-09247YNegativeCommand.CopyDifferentFormatTexelBlockExtentexplicitvkCmdCopyImagecoreIf the VkFormat of each of srcImage and dstImage is a compressed image format, the formats must have the same texel block extent
VUID-vkCmdCopyImage-srcImage-09460YNegativeImage.SameImageCopyexplicitvkCmdCopyImagecoreIf srcImage and dstImage are the same, and any elements of pRegions contains the srcSubresource and dstSubresource with matching mipLevel and overlapping array layers, then the srcImageLayout and dstImageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-vkCmdCopyImage-srcImage-parameterYNoneimplicitvkCmdCopyImagecoresrcImage must be a valid VkImage handle
VUID-vkCmdCopyImage-srcImageLayout-00128YNegativeImage.ImageLayoutexplicitvkCmdCopyImagecoresrcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-vkCmdCopyImage-srcImageLayout-01917YNegativeImage.ImageLayoutexplicitvkCmdCopyImagecoresrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImage-srcImageLayout-parameterYNoneimplicitvkCmdCopyImagecoresrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImage-srcOffset-00144YNegativeCommand.CopyImageMultiPlaneSizeExceeded, NegativeCommand.CopyImageSrcSizeExceededexplicitvkCmdCopyImagecoreFor 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-00145YNegativeCommand.CopyImageMultiPlaneSizeExceeded, NegativeCommand.CopyImageSrcSizeExceeded, NegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreFor 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-srcOffset-00147YNegativeCommand.CopyImageSrcSizeExceeded, NegativeCommand.CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf srcImage is of type VK_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-srcOffset-01783YNegativeCommand.CopyImageCompressedBlockAlignment, NegativeImage.MinImageTransferGranularity, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreThe 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 VkQueueFamilyProperties
VUID-vkCmdCopyImage-srcSubresource-07967YNoneexplicitvkCmdCopyImagecoreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdCopyImage-srcSubresource-07968YNegativeCommand.CopyImageTypeExtentMismatch, NegativeCommand.CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdCopyImage-videocodingYNoneimplicitvkCmdCopyImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyImage2-commandBuffer-01825YNoneexplicitvkCmdCopyImage2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImage2-commandBuffer-01826YNoneexplicitvkCmdCopyImage2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyImage2-commandBuffer-01827YNoneexplicitvkCmdCopyImage2coreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImage2coreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImage2-commandBuffer-parameterYNoneimplicitvkCmdCopyImage2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImage2-commandBuffer-recordingYNoneimplicitvkCmdCopyImage2corecommandBuffer must be in the recording state
VUID-vkCmdCopyImage2-pCopyImageInfo-parameterYNoneimplicitvkCmdCopyImage2corepCopyImageInfo must be a valid pointer to a valid VkCopyImageInfo2 structure
VUID-vkCmdCopyImage2-renderpassYNoneimplicitvkCmdCopyImage2coreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyImage2-videocodingYNoneimplicitvkCmdCopyImage2coreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108YNoneexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, bufferRowLength divided by the 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-commandBuffer-01831YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImageToBuffercoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImageToBuffer-commandBuffer-01832YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImageToBuffercoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyImageToBuffer-commandBuffer-01833YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImageToBuffercoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyImageToBuffer-commandBuffer-07746YNoneexplicitvkCmdCopyImageToBuffercoreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImageToBuffercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImageToBuffer-commandBuffer-parameterYNoneimplicitvkCmdCopyImageToBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImageToBuffer-commandBuffer-recordingYNegativeCommand.ImageBufferCopyimplicitvkCmdCopyImageToBuffercorecommandBuffer must be in the recording state
VUID-vkCmdCopyImageToBuffer-commonparentYNoneimplicitvkCmdCopyImageToBuffercoreEach of commandBuffer, dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyImageToBuffer-dstBuffer-00191YNoneexplicitvkCmdCopyImageToBuffercoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyImageToBuffer-dstBuffer-00192YNoneexplicitvkCmdCopyImageToBuffercoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImageToBuffer-dstBuffer-parameterYNoneimplicitvkCmdCopyImageToBuffercoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyImageToBuffer-imageOffset-07747YNegativeCommand.CompressedImageMipCopy, NegativeCommand.ImageBufferCopy, NegativeImage.MinImageTransferGranularityexplicitvkCmdCopyImageToBuffercoreThe 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 VkQueueFamilyProperties
VUID-vkCmdCopyImageToBuffer-imageOffset-09104YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreFor 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-imageSubresource-07967YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdCopyImageToBuffer-imageSubresource-07968YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreIf imageSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdCopyImageToBuffer-imageSubresource-07970YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreThe image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage
VUID-vkCmdCopyImageToBuffer-imageSubresource-07971YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreFor 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-07972YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreFor 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-imageSubresource-09105YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage
VUID-vkCmdCopyImageToBuffer-pRegions-00183YNegativeCommand.CompressedImageMipCopy, NegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoredstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
VUID-vkCmdCopyImageToBuffer-pRegions-00184YNoneexplicitvkCmdCopyImageToBuffercoreThe 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-pRegions-parameterYNoneimplicitvkCmdCopyImageToBuffercorepRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures
VUID-vkCmdCopyImageToBuffer-regionCount-arraylengthYNoneimplicitvkCmdCopyImageToBuffercoreregionCount must be greater than 0
VUID-vkCmdCopyImageToBuffer-renderpassYNoneimplicitvkCmdCopyImageToBuffercoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyImageToBuffer-srcImage-00186YNoneexplicitvkCmdCopyImageToBuffercoresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyImageToBuffer-srcImage-00207YNegativeCommand.CompressedImageMipCopy, NegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreFor 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 texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-00208YNegativeCommand.CompressedImageMipCopy, NegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreFor 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 texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-00209YNoneexplicitvkCmdCopyImageToBuffercoreFor 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 texel block extent depth of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-01998YNoneexplicitvkCmdCopyImageToBuffercoreThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdCopyImageToBuffer-srcImage-07274YNegativeCommand.CompressedImageMipCopyexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-07275YNegativeCommand.CompressedImageMipCopyexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-07276YNoneexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-07966YNoneexplicitvkCmdCopyImageToBuffercoreIf srcImage is non-sparse then the image or the specified disjoint plane must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImageToBuffer-srcImage-07969YNoneexplicitvkCmdCopyImageToBuffercoresrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyImageToBuffer-srcImage-07973YNoneexplicitvkCmdCopyImageToBuffercoresrcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyImageToBuffer-srcImage-07975YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreIf srcImage does not have either a depth/stencil format or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size
VUID-vkCmdCopyImageToBuffer-srcImage-07976YNoneexplicitvkCmdCopyImageToBuffercoreIf srcImage has a 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 Compatible Formats of Planes of Multi-Planar Formats
VUID-vkCmdCopyImageToBuffer-srcImage-07978YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoreIf srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-vkCmdCopyImageToBuffer-srcImage-07979YNoneexplicitvkCmdCopyImageToBuffercoreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
VUID-vkCmdCopyImageToBuffer-srcImage-07980YNoneexplicitvkCmdCopyImageToBuffercoreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
VUID-vkCmdCopyImageToBuffer-srcImage-07981YNoneexplicitvkCmdCopyImageToBuffercoreIf srcImage has a multi-planar image format, then for each element of pRegions, imageSubresource.aspectMask must be a single valid multi-planar aspect mask bit
VUID-vkCmdCopyImageToBuffer-srcImage-07983YNoneexplicitvkCmdCopyImageToBuffercoreIf srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1
VUID-vkCmdCopyImageToBuffer-srcImage-parameterYNoneimplicitvkCmdCopyImageToBuffercoresrcImage must be a valid VkImage handle
VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189YNegativeCommand.ImageBufferCopyexplicitvkCmdCopyImageToBuffercoresrcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397YNoneexplicitvkCmdCopyImageToBuffercoresrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameterYNoneimplicitvkCmdCopyImageToBuffercoresrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImageToBuffer-videocodingYNoneimplicitvkCmdCopyImageToBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01831YNoneexplicitvkCmdCopyImageToBuffer2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01832YNoneexplicitvkCmdCopyImageToBuffer2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01833YNoneexplicitvkCmdCopyImageToBuffer2coreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyImageToBuffer2-commandBuffer-07746YNoneexplicitvkCmdCopyImageToBuffer2coreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pCopyImageToBufferInfo->pRegions must be a multiple of 4
VUID-vkCmdCopyImageToBuffer2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImageToBuffer2coreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameterYNoneimplicitvkCmdCopyImageToBuffer2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImageToBuffer2-commandBuffer-recordingYNoneimplicitvkCmdCopyImageToBuffer2corecommandBuffer must be in the recording state
VUID-vkCmdCopyImageToBuffer2-imageOffset-07747YNoneexplicitvkCmdCopyImageToBuffer2coreThe imageOffset and imageExtent members of each element of pCopyImageToBufferInfo->pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameterYNoneimplicitvkCmdCopyImageToBuffer2corepCopyImageToBufferInfo must be a valid pointer to a valid VkCopyImageToBufferInfo2 structure
VUID-vkCmdCopyImageToBuffer2-renderpassYNoneimplicitvkCmdCopyImageToBuffer2coreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyImageToBuffer2-videocodingYNoneimplicitvkCmdCopyImageToBuffer2coreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryIndirectNV-None-07653NNoneexplicitvkCmdCopyMemoryIndirectNVcoreThe indirectCopy feature must be enabled
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-07656NNoneexplicitvkCmdCopyMemoryIndirectNVcoreThe VkCommandPool that commandBuffer was allocated from must support at least one of the VkPhysicalDeviceCopyMemoryIndirectPropertiesNV::supportedQueues
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryIndirectNVcoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryIndirectNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryIndirectNVcorecommandBuffer must be in the recording state
VUID-vkCmdCopyMemoryIndirectNV-copyBufferAddress-07654NNoneexplicitvkCmdCopyMemoryIndirectNVcorecopyBufferAddress must be 4 byte aligned
VUID-vkCmdCopyMemoryIndirectNV-renderpassYNoneimplicitvkCmdCopyMemoryIndirectNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryIndirectNV-stride-07655NNoneexplicitvkCmdCopyMemoryIndirectNVcorestride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryIndirectCommandNV)
VUID-vkCmdCopyMemoryIndirectNV-videocodingYNoneimplicitvkCmdCopyMemoryIndirectNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927YNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745YNegativeRayTracing.CmdCopyMemoryToAccelerationStructureKHRexplicitvkCmdCopyMemoryToAccelerationStructureKHRcoreThe buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRcorecommandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742NNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHRcorepInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743YNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHRcorepInfo->src.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744NNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHRcoreIf the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRcorepInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpassYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-videocodingYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToImageIndirectNV-None-07660NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreThe indirectCopy feature must be enabled
VUID-vkCmdCopyMemoryToImageIndirectNV-aspectMask-07662NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreThe aspectMask member for every subresource in pImageSubresources must only have a single bit set
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-07674NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each region, the aspectMask member of pImageSubresources must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcorecommandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToImageIndirectNV-commonparentYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcoreBoth of commandBuffer, and dstImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyMemoryToImageIndirectNV-copyCount-arraylengthYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcorecopyCount must be greater than 0
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07661NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoredstImage must not be a protected image
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07663NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreThe image region specified by each element in copyBufferAddress must be a region that is contained within dstImage
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07664NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07665NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07673NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoredstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07973NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoredstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcoredstImage must be a valid VkImage handle
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07667NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoredstImageLayout must specify the layout of the image subresources of dstImage at the time this command is executed on a VkDevice
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07669NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoredstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07672NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreThe imageOffset and imageExtent members of each region must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07675NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreFor each region in copyBufferAddress, 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 subresource
VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-08764NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreIf layerCount is not VK_REMAINING_ARRAY_LAYERS, the specified baseArrayLayer + layerCount of each region must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyMemoryToImageIndirectNV-mipLevel-07670NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreThe specified mipLevel of each region must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyMemoryToImageIndirectNV-offset-07676NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcoreoffset must be 4 byte aligned
VUID-vkCmdCopyMemoryToImageIndirectNV-pImageSubresources-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcorepImageSubresources must be a valid pointer to an array of copyCount valid VkImageSubresourceLayers structures
VUID-vkCmdCopyMemoryToImageIndirectNV-renderpassYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToImageIndirectNV-stride-07677NNoneexplicitvkCmdCopyMemoryToImageIndirectNVcorestride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryToImageIndirectCommandNV)
VUID-vkCmdCopyMemoryToImageIndirectNV-videocodingYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToMicromapEXT-buffer-07546NNoneexplicitvkCmdCopyMemoryToMicromapEXTcoreThe buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryToMicromapEXTcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToMicromapEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToMicromapEXTcorecommandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543NNoneexplicitvkCmdCopyMemoryToMicromapEXTcorepInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07544NNoneexplicitvkCmdCopyMemoryToMicromapEXTcorepInfo->src.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07545NNoneexplicitvkCmdCopyMemoryToMicromapEXTcoreIf the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-parameterYNoneimplicitvkCmdCopyMemoryToMicromapEXTcorepInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure
VUID-vkCmdCopyMemoryToMicromapEXT-renderpassYNoneimplicitvkCmdCopyMemoryToMicromapEXTcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToMicromapEXT-videocodingYNoneimplicitvkCmdCopyMemoryToMicromapEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMicromapEXT-buffer-07529NNoneexplicitvkCmdCopyMicromapEXTcoreThe buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyMicromapEXT-buffer-07530NNoneexplicitvkCmdCopyMicromapEXTcoreThe buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMicromapEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMicromapEXTcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMicromapEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMicromapEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMicromapEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMicromapEXTcorecommandBuffer must be in the recording state
VUID-vkCmdCopyMicromapEXT-pInfo-parameterYNoneimplicitvkCmdCopyMicromapEXTcorepInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure
VUID-vkCmdCopyMicromapEXT-renderpassYNoneimplicitvkCmdCopyMicromapEXTcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMicromapEXT-videocodingYNoneimplicitvkCmdCopyMicromapEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMicromapToMemoryEXT-buffer-07539NNoneexplicitvkCmdCopyMicromapToMemoryEXTcoreThe buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMicromapToMemoryEXTcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMicromapToMemoryEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMicromapToMemoryEXTcorecommandBuffer must be in the recording state
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536NNoneexplicitvkCmdCopyMicromapToMemoryEXTcorepInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07537NNoneexplicitvkCmdCopyMicromapToMemoryEXTcorepInfo->dst.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07538NNoneexplicitvkCmdCopyMicromapToMemoryEXTcoreIf the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-parameterYNoneimplicitvkCmdCopyMicromapToMemoryEXTcorepInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure
VUID-vkCmdCopyMicromapToMemoryEXT-renderpassYNoneimplicitvkCmdCopyMicromapToMemoryEXTcoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMicromapToMemoryEXT-videocodingYNoneimplicitvkCmdCopyMicromapToMemoryEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyQueryPoolResults-None-07429YNegativeQuery.ActiveCmdCopyQueryPoolResultsexplicitvkCmdCopyQueryPoolResultscoreAll queries used by the command must not be active
VUID-vkCmdCopyQueryPoolResults-None-08752YNoneexplicitvkCmdCopyQueryPoolResultscoreAll queries used by the command must have been made available by prior executed commands
VUID-vkCmdCopyQueryPoolResults-None-09402YNegativeQuery.GetQueryPoolResultsWithoutResetexplicitvkCmdCopyQueryPoolResultscoreAll queries used by the command must not be uninitialized when the command is executed
VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyQueryPoolResultscoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameterYNoneimplicitvkCmdCopyQueryPoolResultscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyQueryPoolResults-commandBuffer-recordingYNoneimplicitvkCmdCopyQueryPoolResultscorecommandBuffer must be in the recording state
VUID-vkCmdCopyQueryPoolResults-commonparentYNoneimplicitvkCmdCopyQueryPoolResultscoreEach of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultscoredstBuffer must have enough storage, from dstOffset, to contain the result of each query, as described here
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825YNoneexplicitvkCmdCopyQueryPoolResultscoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826YNoneexplicitvkCmdCopyQueryPoolResultscoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameterYNoneimplicitvkCmdCopyQueryPoolResultscoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyQueryPoolResults-dstOffset-00819YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultscoredstOffset must be less than the size of dstBuffer
VUID-vkCmdCopyQueryPoolResults-firstQuery-09436YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultscorefirstQuery must be less than the number of queries in queryPool
VUID-vkCmdCopyQueryPoolResults-firstQuery-09437YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultscoreThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdCopyQueryPoolResults-flags-00822YNegativeQuery.StrideexplicitvkCmdCopyQueryPoolResultscoreIf VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4
VUID-vkCmdCopyQueryPoolResults-flags-00823YNegativeQuery.StrideexplicitvkCmdCopyQueryPoolResultscoreIf VK_QUERY_RESULT_64_BIT is set in flags then dstOffset and stride must be multiples of 8
VUID-vkCmdCopyQueryPoolResults-flags-09443YNegativeVideo.CopyQueryPoolResultsStatusBitexplicitvkCmdCopyQueryPoolResultscoreIf flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
VUID-vkCmdCopyQueryPoolResults-flags-parameterYNoneimplicitvkCmdCopyQueryPoolResultscoreflags must be a valid combination of VkQueryResultFlagBits values
VUID-vkCmdCopyQueryPoolResults-queryCount-09438YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultscoreIf queryCount is greater than 1, stride must not be zero
VUID-vkCmdCopyQueryPoolResults-queryPool-parameterYNegativeQuery.CmdCopyQueryPoolResultsWithoutQueryPoolimplicitvkCmdCopyQueryPoolResultscorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdCopyQueryPoolResults-queryType-02734YNegativeQuery.PerformanceQueryIntelexplicitvkCmdCopyQueryPoolResultscorevkCmdCopyQueryPoolResults must not be called if the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
VUID-vkCmdCopyQueryPoolResults-queryType-03232YNoneexplicitvkCmdCopyQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, VkPhysicalDevicePerformanceQueryPropertiesKHR::allowCommandBufferQueryCopies must be VK_TRUE
VUID-vkCmdCopyQueryPoolResults-queryType-09439YNegativeQuery.PoolPartialTimestampexplicitvkCmdCopyQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT
VUID-vkCmdCopyQueryPoolResults-queryType-09440YNegativeQuery.PerformanceIncompletePassesexplicitvkCmdCopyQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, VK_QUERY_RESULT_PARTIAL_BIT, or VK_QUERY_RESULT_64_BIT
VUID-vkCmdCopyQueryPoolResults-queryType-09441YNoneexplicitvkCmdCopyQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been recorded once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
VUID-vkCmdCopyQueryPoolResults-queryType-09442YNegativeVideo.CopyQueryPoolResultsStatusBitexplicitvkCmdCopyQueryPoolResultscoreIf 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-renderpassYNoneimplicitvkCmdCopyQueryPoolResultscoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyQueryPoolResults-videocodingYNoneimplicitvkCmdCopyQueryPoolResultscoreThis command must only be called outside of a video coding scope
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-cmdpoolYNoneimplicitvkCmdCuLaunchKernelNVXcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameterYNoneimplicitvkCmdCuLaunchKernelNVXcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-recordingYNoneimplicitvkCmdCuLaunchKernelNVXcorecommandBuffer must be in the recording state
VUID-vkCmdCuLaunchKernelNVX-pLaunchInfo-parameterYNoneimplicitvkCmdCuLaunchKernelNVXcorepLaunchInfo must be a valid pointer to a valid VkCuLaunchInfoNVX structure
VUID-vkCmdCuLaunchKernelNVX-videocodingYNoneimplicitvkCmdCuLaunchKernelNVXcoreThis command must only be called outside of a video coding scope
VUID-vkCmdCudaLaunchKernelNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCudaLaunchKernelNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameterYNoneimplicitvkCmdCudaLaunchKernelNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCudaLaunchKernelNV-commandBuffer-recordingYNoneimplicitvkCmdCudaLaunchKernelNVcorecommandBuffer must be in the recording state
VUID-vkCmdCudaLaunchKernelNV-pLaunchInfo-parameterYNoneimplicitvkCmdCudaLaunchKernelNVcorepLaunchInfo must be a valid pointer to a valid VkCudaLaunchInfoNV structure
VUID-vkCmdCudaLaunchKernelNV-videocodingYNoneimplicitvkCmdCudaLaunchKernelNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDebugMarkerBeginEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerBeginEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerBeginEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameterYNoneimplicitvkCmdDebugMarkerBeginEXTcorepMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure
VUID-vkCmdDebugMarkerBeginEXT-videocodingYNoneimplicitvkCmdDebugMarkerBeginEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239NNoneexplicitvkCmdDebugMarkerEndEXTcoreThere must be an outstanding vkCmdDebugMarkerBeginEXT command prior to the vkCmdDebugMarkerEndEXT on the queue that commandBuffer is submitted to
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240NNoneexplicitvkCmdDebugMarkerEndEXTcoreIf commandBuffer is a secondary command buffer, there must be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDebugMarkerEndEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerEndEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerEndEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDebugMarkerEndEXT-videocodingYNoneimplicitvkCmdDebugMarkerEndEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDebugMarkerInsertEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerInsertEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerInsertEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameterYNoneimplicitvkCmdDebugMarkerInsertEXTcorepMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure
VUID-vkCmdDebugMarkerInsertEXT-videocodingYNoneimplicitvkCmdDebugMarkerInsertEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDecodeVideoKHR-None-07011YNegativeVideo.DecodeSessionUninitializedexplicitvkCmdDecodeVideoKHRcoreThe bound video session must not be in uninitialized state at the time the command is executed on the device
VUID-vkCmdDecodeVideoKHR-None-07258YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, then the decode output picture must represent a frame
VUID-vkCmdDecodeVideoKHR-None-08249YNegativeVideo.DecodeSessionNotDecodeexplicitvkCmdDecodeVideoKHRcoreThe bound video session must have been created with a decode operation
VUID-vkCmdDecodeVideoKHR-StdVideoH264PictureParameterSet-07155YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the bound video session parameters object must contain a StdVideoH264PictureParameterSet entry with seq_parameter_set_id and pic_parameter_set_id matching StdVideoDecodeH264PictureInfo::seq_parameter_set_id and StdVideoDecodeH264PictureInfo::pic_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo
VUID-vkCmdDecodeVideoKHR-StdVideoH264SequenceParameterSet-07154YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the bound video session parameters object must contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching StdVideoDecodeH264PictureInfo::seq_parameter_set_id that is provided in the pStdPictureInfo member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo
VUID-vkCmdDecodeVideoKHR-StdVideoH265PictureParameterSet-07162YNegativeVideo.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id, StdVideoDecodeH265PictureInfo::pps_seq_parameter_set_id, and StdVideoDecodeH265PictureInfo::pps_pic_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo
VUID-vkCmdDecodeVideoKHR-StdVideoH265SequenceParameterSet-07161YNegativeVideo.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265SequenceParameterSet entry with sps_video_parameter_set_id and sps_seq_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id and StdVideoDecodeH265PictureInfo::pps_seq_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo
VUID-vkCmdDecodeVideoKHR-StdVideoH265VideoParameterSet-07160YNegativeVideo.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching StdVideoDecodeH265PictureInfo::sps_video_parameter_set_id that is provided in the pStdPictureInfo member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo
VUID-vkCmdDecodeVideoKHR-activeReferencePictureCount-07150YNegativeVideo.DecodeTooManyReferences, NegativeVideo.DecodeTooManyReferencesH264InterlacedexplicitvkCmdDecodeVideoKHRcoreactiveReferencePictureCount must be less than or equal to the VkVideoSessionCreateInfoKHR::maxActiveReferencePictures specified when the bound video session was created
VUID-vkCmdDecodeVideoKHR-bufferlevelYNoneimplicitvkCmdDecodeVideoKHRcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDecodeVideoKHR-codedOffset-07257YNegativeVideo.DecodeSetupAndRefCodedOffsetexplicitvkCmdDecodeVideoKHRcoreThe codedOffset member of the VkVideoPictureResourceInfoKHR structure pointed to by the pPictureResource member of each element of pDecodeInfo->pReferenceSlots must be an integer multiple of codedOffsetGranularity
VUID-vkCmdDecodeVideoKHR-commandBuffer-07136YNegativeVideo.DecodeProtectedNoFaultBitstreamBufferexplicitvkCmdDecodeVideoKHRcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pDecodeInfo->srcBuffer must not be a protected buffer
VUID-vkCmdDecodeVideoKHR-commandBuffer-07137YNegativeVideo.DecodeProtectedNoFaultBitstreamBufferexplicitvkCmdDecodeVideoKHRcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, then pDecodeInfo->srcBuffer must be a protected buffer
VUID-vkCmdDecodeVideoKHR-commandBuffer-07147YNegativeVideo.DecodeProtectedNoFaultDecodeOutputexplicitvkCmdDecodeVideoKHRcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pDecodeInfo->dstPictureResource.imageViewBinding must not have been created from a protected image
VUID-vkCmdDecodeVideoKHR-commandBuffer-07148YNegativeVideo.DecodeProtectedNoFaultDecodeOutputexplicitvkCmdDecodeVideoKHRcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, then pDecodeInfo->dstPictureResource.imageViewBinding must have been created from a protected image
VUID-vkCmdDecodeVideoKHR-commandBuffer-cmdpoolYNegativeVideo.DecodeInlineQueryIncompatibleQueueFamily, NegativeVideo.DecodeSessionNotDecodeimplicitvkCmdDecodeVideoKHRcoreThe VkCommandPool that commandBuffer was allocated from must support decode operations
VUID-vkCmdDecodeVideoKHR-commandBuffer-parameterYNoneimplicitvkCmdDecodeVideoKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecodeVideoKHR-commandBuffer-recordingYNoneimplicitvkCmdDecodeVideoKHRcorecommandBuffer must be in the recording state
VUID-vkCmdDecodeVideoKHR-dpbBottomFieldUseCount-07178YNegativeVideo.DecodeDuplicateFrameFieldH264InterlacedexplicitvkCmdDecodeVideoKHRcoreAll elements of dpbBottomFieldUseCount must be less than or equal to 1
VUID-vkCmdDecodeVideoKHR-dpbFrameUseCount-07176YNegativeVideo.DecodeDuplicateFrame, NegativeVideo.DecodeDuplicateFrameFieldH264Interlaced, NegativeVideo.DecodeDuplicateRefResourceexplicitvkCmdDecodeVideoKHRcoreAll elements of dpbFrameUseCount must be less than or equal to 1
VUID-vkCmdDecodeVideoKHR-dpbTopFieldUseCount-07177YNegativeVideo.DecodeDuplicateFrameFieldH264InterlacedexplicitvkCmdDecodeVideoKHRcoreAll elements of dpbTopFieldUseCount must be less than or equal to 1
VUID-vkCmdDecodeVideoKHR-opCount-07134YNegativeVideo.DecodeQueryTooManyOperationsexplicitvkCmdDecodeVideoKHRcoreFor each active query, the active query index corresponding to the query type of that query plus opCount must be less than or equal to the last activatable query index corresponding to the query type of that query plus one
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07135YNegativeVideo.DecodeIncompatBufferProfileexplicitvkCmdDecodeVideoKHRcorepDecodeInfo->srcBuffer must be compatible with the video profile the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07138YNegativeVideo.DecodeBufferOffsetAlignmentexplicitvkCmdDecodeVideoKHRcorepDecodeInfo->srcBufferOffset must be an integer multiple of VkVideoCapabilitiesKHR::minBitstreamBufferOffsetAlignment, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07139YNegativeVideo.DecodeBufferRangeAlignmentexplicitvkCmdDecodeVideoKHRcorepDecodeInfo->srcBufferRange must be an integer multiple of VkVideoCapabilitiesKHR::minBitstreamBufferSizeAlignment, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07140YNegativeVideo.DecodeInvalidOutputAndSetupCoincideexplicitvkCmdDecodeVideoKHRcoreIf pDecodeInfo->pSetupReferenceSlot is not NULL and VkVideoDecodeCapabilitiesKHR::flags does not include VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then the video picture resources specified by pDecodeInfo->dstPictureResource and pDecodeInfo->pSetupReferenceSlot->pPictureResource must not match
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07141YNegativeVideo.DecodeInvalidCodecInfoH264, NegativeVideo.DecodeInvalidCodecInfoH265, NegativeVideo.DecodeInvalidOutputAndSetupDistinct, NegativeVideo.DecodeInvalidResourceLayerexplicitvkCmdDecodeVideoKHRcoreIf pDecodeInfo->pSetupReferenceSlot is not NULL and VkVideoDecodeCapabilitiesKHR::flags does not include VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then the video picture resources specified by pDecodeInfo->dstPictureResource and pDecodeInfo->pSetupReferenceSlot->pPictureResource must match
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07142YNegativeVideo.DecodeIncompatOutputPicProfileexplicitvkCmdDecodeVideoKHRcorepDecodeInfo->dstPictureResource.imageViewBinding must be compatible with the video profile the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07143YNegativeVideo.DecodeOutputFormatMismatchexplicitvkCmdDecodeVideoKHRcoreThe format of pDecodeInfo->dstPictureResource.imageViewBinding must match the VkVideoSessionCreateInfoKHR::pictureFormat the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07144YNegativeVideo.DecodeOutputCodedOffsetExtent, NegativeVideo.DecodeSetupAndRefCodedOffsetexplicitvkCmdDecodeVideoKHRcorepDecodeInfo->dstPictureResource.codedOffset must be an integer multiple of codedOffsetGranularity
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07145YNegativeVideo.DecodeOutputCodedOffsetExtentexplicitvkCmdDecodeVideoKHRcorepDecodeInfo->dstPictureResource.codedExtent must be between minCodedExtent and maxCodedExtent, inclusive, the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07146YNegativeVideo.DecodeInvalidOutputAndSetupCoincide, NegativeVideo.DecodeOutputMissingDecodeDstUsageexplicitvkCmdDecodeVideoKHRcorepDecodeInfo->dstPictureResource.imageViewBinding must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07149YNegativeVideo.DecodeInvalidResourceLayer, NegativeVideo.DecodeSetupAndRefCodedOffset, NegativeVideo.DecodeSetupResourceNotBoundexplicitvkCmdDecodeVideoKHRcoreIf pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->pPictureResource must match one of the bound reference picture resource
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07151YNegativeVideo.DecodeDuplicateRefResource, NegativeVideo.DecodeInvalidRefSlotIndex, NegativeVideo.DecodeInvalidResourceLayer, NegativeVideo.DecodeRefResourceNotBoundToDPBSlot, NegativeVideo.DecodeSetupAndRefCodedOffsetexplicitvkCmdDecodeVideoKHRcoreThe pPictureResource member of each element of pDecodeInfo->pReferenceSlots must match one of the bound reference picture resource associated with the DPB slot index specified in the slotIndex member of that element
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07156YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and pDecodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pDecodeInfo->pSetupReferenceSlot must include a VkVideoDecodeH264DpbSlotInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07163YNegativeVideo.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and pDecodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pDecodeInfo->pSetupReferenceSlot must include a VkVideoDecodeH265DpbSlotInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07170YNegativeVideo.DecodeInvalidSetupSlotIndexexplicitvkCmdDecodeVideoKHRcoreIf pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->slotIndex must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when the bound video session was created
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07173YNegativeVideo.DecodeSetupAndRefCodedOffsetexplicitvkCmdDecodeVideoKHRcoreIf pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->pPictureResource->codedOffset must be an integer multiple of codedOffsetGranularity
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07252YNegativeVideo.DecodeImageLayoutsexplicitvkCmdDecodeVideoKHRcoreIf pDecodeInfo->pSetupReferenceSlot is NULL or pDecodeInfo->pSetupReferenceSlot->pPictureResource does not refer to the same image subresource as pDecodeInfo->dstPictureResource, then the image subresource referred to by pDecodeInfo->dstPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR layout at the time the video decode operation is executed on the device
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07253YNegativeVideo.DecodeImageLayoutsexplicitvkCmdDecodeVideoKHRcoreIf pDecodeInfo->pSetupReferenceSlot is not NULL and pDecodeInfo->pSetupReferenceSlot->pPictureResource refers to the same image subresource as pDecodeInfo->dstPictureResource, then the image subresource referred to by pDecodeInfo->dstPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07254YNegativeVideo.DecodeImageLayoutsexplicitvkCmdDecodeVideoKHRcoreIf pDecodeInfo->pSetupReferenceSlot is not NULL, then the image subresource referred to by pDecodeInfo->pSetupReferenceSlot->pPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07259YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, and pDecodeInfo->pSetupReferenceSlot is not NULL, then the reconstructed picture must represent a frame
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07260YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR but was not created with interlaced frame support, then each active reference picture corresponding to the elements of pDecodeInfo->pReferenceSlots must represent a frame
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07261YNegativeVideo.DecodeFieldFrameMismatchH264, NegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a frame, then the reconstructed picture must also represent a frame
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07262YNegativeVideo.DecodeFieldFrameMismatchH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a top field, then the reconstructed picture must also represent a top field
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07263YNegativeVideo.DecodeFieldFrameMismatchH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and the decode output picture represents a bottom field, then the reconstructed picture must also represent a bottom field
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07264YNegativeVideo.DecodeDuplicateRefResource, NegativeVideo.DecodeDuplicateRefResourceH264InterlacedexplicitvkCmdDecodeVideoKHRcoreEach video picture resource corresponding to the pPictureResource member specified in the elements of pDecodeInfo->pReferenceSlots must be unique within pDecodeInfo->pReferenceSlots
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07266YNegativeVideo.DecodeRefPictureKindMismatchH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a frame, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a frame picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07267YNegativeVideo.DecodeInvalidationOnlyH264Interlaced, NegativeVideo.DecodeRefPictureKindMismatchH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a top field, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a top field picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07268YNegativeVideo.DecodeInvalidationOnlyH264Interlaced, NegativeVideo.DecodeRefPictureKindMismatchH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and an active reference picture corresponding to any element of pDecodeInfo->pReferenceSlots represents a bottom field, then the DPB slot index of the bound video session specified by the slotIndex member of that element must be currently associated with a bottom field picture matching the video picture resource specified by the pPictureResource member of the same element at the time the command is executed on the device
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-08376YNegativeVideo.DecodeSetupNullexplicitvkCmdDecodeVideoKHRcorepDecodeInfo->pSetupReferenceSlot must not be NULL unless the bound video session was created with VkVideoSessionCreateInfoKHR::maxDpbSlots equal to zero
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-parameterYNoneimplicitvkCmdDecodeVideoKHRcorepDecodeInfo must be a valid pointer to a valid VkVideoDecodeInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pNext-07152YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of pDecodeInfo must include a VkVideoDecodeH264PictureInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pNext-07157YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of each element of pDecodeInfo->pReferenceSlots must include a VkVideoDecodeH264DpbSlotInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pNext-07158YNegativeVideo.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain of pDecodeInfo must include a VkVideoDecodeH265PictureInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pNext-07164YNegativeVideo.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain of each element of pDecodeInfo->pReferenceSlots must include a VkVideoDecodeH265DpbSlotInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pNext-08365YNegativeVideo.DecodeInlineQueryOpCount, NegativeVideo.DecodeInlineQueryOutOfBoundsexplicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and the pNext chain of pDecodeInfo includes a VkVideoInlineQueryInfoKHR structure with its queryPool member specifying a valid VkQueryPool handle, then VkVideoInlineQueryInfoKHR::queryCount must equal opCount
VUID-vkCmdDecodeVideoKHR-pNext-08366YNegativeVideo.DecodeInlineQueryUnavailableexplicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and the pNext chain of pDecodeInfo includes a VkVideoInlineQueryInfoKHR structure with its queryPool member specifying a valid VkQueryPool handle, then all the queries used by the command, as specified by the VkVideoInlineQueryInfoKHR structure, must be unavailable
VUID-vkCmdDecodeVideoKHR-pPictureResource-07255YNegativeVideo.DecodeImageLayoutsexplicitvkCmdDecodeVideoKHRcoreThe image subresource referred to by the pPictureResource member of each element of pDecodeInfo->pReferenceSlots must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device
VUID-vkCmdDecodeVideoKHR-pSliceOffsets-07153YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then all elements of the pSliceOffsets member of the VkVideoDecodeH264PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange
VUID-vkCmdDecodeVideoKHR-pSliceSegmentOffsets-07159YNegativeVideo.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then all elements of the pSliceSegmentOffsets member of the VkVideoDecodeH265PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange
VUID-vkCmdDecodeVideoKHR-queryPool-08368YNegativeVideo.DecodeInlineQueryProfileMismatch, NegativeVideo.DecodeInlineQueryTypeexplicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, then the queryPool specified in the VkVideoInlineQueryInfoKHR structure included in the pNext chain of pDecodeInfo must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with
VUID-vkCmdDecodeVideoKHR-queryType-08367YNegativeVideo.DecodeInlineQueryTypeexplicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, then the queryType used to create the queryPool specified in the VkVideoInlineQueryInfoKHR structure included in the pNext chain of pDecodeInfo must be VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR
VUID-vkCmdDecodeVideoKHR-queryType-08369YNegativeVideo.DecodeInlineQueryIncompatibleQueueFamilyexplicitvkCmdDecodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and the queryType used to create the queryPool specified in the VkVideoInlineQueryInfoKHR structure included in the pNext chain of pDecodeInfo is VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the VkCommandPool that commandBuffer was allocated from must have been created with a queue family index that supports result status queries, as indicated by VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport
VUID-vkCmdDecodeVideoKHR-renderpassYNoneimplicitvkCmdDecodeVideoKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDecodeVideoKHR-slotIndex-07256YNegativeVideo.DecodeInvalidRefSlotIndex, NegativeVideo.DecodeInvalidResourceLayerexplicitvkCmdDecodeVideoKHRcoreThe slotIndex member of each element of pDecodeInfo->pReferenceSlots must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when the bound video session was created
VUID-vkCmdDecodeVideoKHR-videocodingYNoneimplicitvkCmdDecodeVideoKHRcoreThis command must only be called inside of a video coding scope
VUID-vkCmdDecompressMemoryIndirectCountNV-None-07692NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreThe memoryDecompression feature must be enabled
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDecompressMemoryIndirectCountNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameterYNoneimplicitvkCmdDecompressMemoryIndirectCountNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-recordingYNoneimplicitvkCmdDecompressMemoryIndirectCountNVcorecommandBuffer must be in the recording state
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07693NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreIf indirectCommandsAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07694NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreThe VkBuffer that indirectCommandsAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07696NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreIf indirectCommandsCountAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07697NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreThe VkBuffer that indirectCommandsCountAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07698NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreindirectCommandsCountAddress must be a multiple of 4
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07699NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreThe count stored in indirectCommandsCountAddress must be less than or equal to VkPhysicalDeviceMemoryDecompressionPropertiesNV::maxDecompressionIndirectCount
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07701NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreIf the count stored in indirectCommandsCountAddress is equal to 1, (offset + sizeof(VkDecompressMemoryRegionNV)) must be less than or equal to the size of the VkBuffer that indirectCommandsAddress comes from
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07702NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreIf the count stored in indirectCommandsCountAddress is greater than 1, indirectCommandsAddress + sizeof(VkDecompressMemoryRegionNV) + (stride × (count stored in countBuffer - 1)) must be less than or equal to the last valid address in the VkBuffer that indirectCommandsAddress was created from
VUID-vkCmdDecompressMemoryIndirectCountNV-offset-07695NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcoreoffset must be a multiple of 4
VUID-vkCmdDecompressMemoryIndirectCountNV-renderpassYNoneimplicitvkCmdDecompressMemoryIndirectCountNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDecompressMemoryIndirectCountNV-stride-07700NNoneexplicitvkCmdDecompressMemoryIndirectCountNVcorestride must be a multiple of 4 and must be greater than or equal to sizeof(VkDecompressMemoryRegionNV)
VUID-vkCmdDecompressMemoryIndirectCountNV-videocodingYNoneimplicitvkCmdDecompressMemoryIndirectCountNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDecompressMemoryNV-None-07684NNoneexplicitvkCmdDecompressMemoryNVcoreThe memoryDecompression feature must be enabled
VUID-vkCmdDecompressMemoryNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDecompressMemoryNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDecompressMemoryNV-commandBuffer-parameterYNoneimplicitvkCmdDecompressMemoryNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecompressMemoryNV-commandBuffer-recordingYNoneimplicitvkCmdDecompressMemoryNVcorecommandBuffer must be in the recording state
VUID-vkCmdDecompressMemoryNV-decompressRegionCount-arraylengthYNoneimplicitvkCmdDecompressMemoryNVcoredecompressRegionCount must be greater than 0
VUID-vkCmdDecompressMemoryNV-pDecompressMemoryRegions-parameterYNoneimplicitvkCmdDecompressMemoryNVcorepDecompressMemoryRegions must be a valid pointer to an array of decompressRegionCount valid VkDecompressMemoryRegionNV structures
VUID-vkCmdDecompressMemoryNV-renderpassYNoneimplicitvkCmdDecompressMemoryNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDecompressMemoryNV-videocodingYNoneimplicitvkCmdDecompressMemoryNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatch-ConstOffset-06551YNoneexplicitvkCmdDispatchcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatch-None-02691YNoneexplicitvkCmdDispatchcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDispatch-None-02692YNoneexplicitvkCmdDispatchcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDispatch-None-02693YNoneexplicitvkCmdDispatchcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDispatch-None-06479YNoneexplicitvkCmdDispatchcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDispatch-None-06550YNoneexplicitvkCmdDispatchcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatch-None-07288NNoneexplicitvkCmdDispatchcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDispatch-None-07888YNoneexplicitvkCmdDispatchcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDispatch-None-08114YNegativeGpuAVDescriptorIndexing.ArrayOOBGraphics, NegativeGpuAVDescriptorIndexing.BasicHLSLRuntimeArrayexplicitvkCmdDispatchcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatch-None-08115YNegativeDescriptorBuffer.InconsistentSetexplicitvkCmdDispatchcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatch-None-08116NNoneexplicitvkCmdDispatchcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatch-None-08117YNegativeDescriptorBuffer.InconsistentBufferexplicitvkCmdDispatchcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatch-None-08119NNoneexplicitvkCmdDispatchcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatch-None-08600YNegativeDescriptors.DispatchWithUnboundSet, NegativePipeline.NotCompatibleForSetexplicitvkCmdDispatchcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatch-None-08601NNoneexplicitvkCmdDispatchcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatch-None-08604NNoneexplicitvkCmdDispatchcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatch-None-08605NNoneexplicitvkCmdDispatchcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatch-None-08606YNegativePipeline.BadPipelineObjectexplicitvkCmdDispatchcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatch-None-08607YNoneexplicitvkCmdDispatchcoreIf the 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 VK_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-08608YNoneexplicitvkCmdDispatchcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatch-None-08609YNoneexplicitvkCmdDispatchcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDispatch-None-08610YNoneexplicitvkCmdDispatchcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-08611YNoneexplicitvkCmdDispatchcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDispatch-None-08612YNegativeGpuAVOOB.TexelFetchexplicitvkCmdDispatchcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08613YNegativeGpuAVOOB.ImageLoad, NegativeGpuAVOOB.ImageStore, NegativeGpuAVOOB.Matrix, NegativeGpuAVOOB.StorageBuffer, NegativeGpuAVOOB.VectorexplicitvkCmdDispatchcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDispatchcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatchcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatch-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDispatchcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatch-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDispatchcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDispatch-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDispatchcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatchcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDispatchcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDispatchcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDispatchcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDispatchcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatch-OpImageWrite-04469YNegativeShaderStorageTexel.UnknownWriteLessComponentexplicitvkCmdDispatchcoreIf a VkBufferView 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-OpImageWrite-08795YNegativeShaderStorageImage.UnknownWriteLessComponentexplicitvkCmdDispatchcoreIf a VkImageView created with a format other than VK_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-08796YNegativeShaderStorageImage.UnknownWriteComponentA8UnormexplicitvkCmdDispatchcoreIf a VkImageView created with the format VK_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-OpTypeImage-07027YNegativeShaderStorageImage.MissingFormatWriteForFormatexplicitvkCmdDispatchcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatch-OpTypeImage-07028YNegativeShaderStorageImage.MissingFormatReadForFormatexplicitvkCmdDispatchcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatch-OpTypeImage-07029YNegativeShaderStorageTexel.MissingFormatWriteForFormatexplicitvkCmdDispatchcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatch-OpTypeImage-07030YNoneexplicitvkCmdDispatchcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatch-SampledType-04470YNegativeAtomic.ImageInt64Drawtime32explicitvkCmdDispatchcoreIf a VkImageView with a VkFormat 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-04471YNegativeAtomic.ImageInt64Drawtime64explicitvkCmdDispatchcoreIf a VkImageView with a VkFormat 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-04472YNoneexplicitvkCmdDispatchcoreIf a VkBufferView with a VkFormat 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-04473YNoneexplicitvkCmdDispatchcoreIf a VkBufferView with a VkFormat 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-commandBuffer-02707YNoneexplicitvkCmdDispatchcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDispatch-commandBuffer-02712YNoneexplicitvkCmdDispatchcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource
VUID-vkCmdDispatch-commandBuffer-02713NNoneexplicitvkCmdDispatchcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource
VUID-vkCmdDispatch-commandBuffer-04617NNoneexplicitvkCmdDispatchcoreIf any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDispatch-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatch-commandBuffer-parameterYNoneimplicitvkCmdDispatchcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatch-commandBuffer-recordingYNoneimplicitvkCmdDispatchcorecommandBuffer must be in the recording state
VUID-vkCmdDispatch-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDispatch-filterCubic-02694YNoneexplicitvkCmdDispatchcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatch-filterCubicMinmax-02695YNoneexplicitvkCmdDispatchcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatch-flags-02696YNoneexplicitvkCmdDispatchcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDispatch-format-07753YNoneexplicitvkCmdDispatchcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDispatch-groupCountX-00386YNegativeShaderCompute.CmdDispatchExceedLimits, NegativeShaderObject.ComputeShaderGroupCountexplicitvkCmdDispatchcoregroupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdDispatch-groupCountY-00387YNegativeShaderCompute.CmdDispatchExceedLimits, NegativeShaderObject.ComputeShaderGroupCountexplicitvkCmdDispatchcoregroupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdDispatch-groupCountZ-00388YNegativeShaderCompute.CmdDispatchExceedLimits, NegativeShaderObject.ComputeShaderGroupCountexplicitvkCmdDispatchcoregroupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdDispatch-magFilter-04553YNoneexplicitvkCmdDispatchcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatch-maintenance4-08602YNegativeShaderObject.ComputeShaderMissingPushConstexplicitvkCmdDispatchcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatch-mipmapMode-04770YNoneexplicitvkCmdDispatchcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatch-reductionMode-09213NNoneexplicitvkCmdDispatchcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDispatch-renderpassYNoneimplicitvkCmdDispatchcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDispatch-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDispatch-sparseImageInt64Atomics-04474YNegativeAtomic.ImageInt64DrawtimeSparseexplicitvkCmdDispatchcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-04475NNoneexplicitvkCmdDispatchcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-storageBuffers-06936NNoneexplicitvkCmdDispatchcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-uniformBuffers-06935NNoneexplicitvkCmdDispatchcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-videocodingYNoneimplicitvkCmdDispatchcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatch-viewType-07752YNoneexplicitvkCmdDispatchcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDispatchBase-ConstOffset-06551YNoneexplicitvkCmdDispatchBasecoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatchBase-None-02691YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDispatchBase-None-02692YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDispatchBase-None-02693YNoneexplicitvkCmdDispatchBasecoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDispatchBase-None-06479YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDispatchBase-None-06550YNoneexplicitvkCmdDispatchBasecoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatchBase-None-07288NNoneexplicitvkCmdDispatchBasecoreAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchBase-None-07888YNoneexplicitvkCmdDispatchBasecoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDispatchBase-None-08114YNoneexplicitvkCmdDispatchBasecoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchBase-None-08115YNoneexplicitvkCmdDispatchBasecoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchBase-None-08116NNoneexplicitvkCmdDispatchBasecoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchBase-None-08117YNoneexplicitvkCmdDispatchBasecoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchBase-None-08119NNoneexplicitvkCmdDispatchBasecoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchBase-None-08600YNoneexplicitvkCmdDispatchBasecoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchBase-None-08601NNoneexplicitvkCmdDispatchBasecoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchBase-None-08604NNoneexplicitvkCmdDispatchBasecoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchBase-None-08605NNoneexplicitvkCmdDispatchBasecoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchBase-None-08606YNoneexplicitvkCmdDispatchBasecoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchBase-None-08607YNoneexplicitvkCmdDispatchBasecoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchBase-None-08608YNoneexplicitvkCmdDispatchBasecoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchBase-None-08609YNoneexplicitvkCmdDispatchBasecoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDispatchBase-None-08610YNoneexplicitvkCmdDispatchBasecoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdDispatchBase-None-08611YNoneexplicitvkCmdDispatchBasecoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdDispatchBase-None-08612YNoneexplicitvkCmdDispatchBasecoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdDispatchBase-None-08613YNoneexplicitvkCmdDispatchBasecoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchBasecoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDispatchBasecoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchBase-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatchBasecoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDispatchBasecoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDispatchBasecoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDispatchBasecoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchBase-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatchBasecoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDispatchBasecoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDispatchBasecoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDispatchBasecoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDispatchBasecoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchBase-OpImageWrite-04469YNoneexplicitvkCmdDispatchBasecoreIf a VkBufferView 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-vkCmdDispatchBase-OpImageWrite-08795YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDispatchBase-OpImageWrite-08796YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDispatchBase-OpTypeImage-07027YNoneexplicitvkCmdDispatchBasecoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchBase-OpTypeImage-07028YNoneexplicitvkCmdDispatchBasecoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchBase-OpTypeImage-07029YNoneexplicitvkCmdDispatchBasecoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchBase-OpTypeImage-07030YNoneexplicitvkCmdDispatchBasecoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchBase-SampledType-04470YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView with a VkFormat 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-vkCmdDispatchBase-SampledType-04471YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView with a VkFormat 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-vkCmdDispatchBase-SampledType-04472YNoneexplicitvkCmdDispatchBasecoreIf a VkBufferView with a VkFormat 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-vkCmdDispatchBase-SampledType-04473YNoneexplicitvkCmdDispatchBasecoreIf a VkBufferView with a VkFormat 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-vkCmdDispatchBase-baseGroupX-00421YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasecorebaseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdDispatchBase-baseGroupX-00422YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasecorebaseGroupY must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdDispatchBase-baseGroupX-00427YNegativeShaderCompute.DispatchBaseFlagexplicitvkCmdDispatchBasecoreIf any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-vkCmdDispatchBase-baseGroupZ-00423YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasecorebaseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdDispatchBase-commandBuffer-02707YNoneexplicitvkCmdDispatchBasecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDispatchBase-commandBuffer-02712YNoneexplicitvkCmdDispatchBasecoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource
VUID-vkCmdDispatchBase-commandBuffer-02713NNoneexplicitvkCmdDispatchBasecoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource
VUID-vkCmdDispatchBase-commandBuffer-04617NNoneexplicitvkCmdDispatchBasecoreIf any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDispatchBase-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchBasecoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatchBase-commandBuffer-parameterYNoneimplicitvkCmdDispatchBasecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchBase-commandBuffer-recordingYNoneimplicitvkCmdDispatchBasecorecommandBuffer must be in the recording state
VUID-vkCmdDispatchBase-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchBasecoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDispatchBase-filterCubic-02694YNoneexplicitvkCmdDispatchBasecoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchBase-filterCubicMinmax-02695YNoneexplicitvkCmdDispatchBasecoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchBase-flags-02696YNoneexplicitvkCmdDispatchBasecoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDispatchBase-format-07753YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDispatchBase-groupCountX-00424YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasecoregroupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] minus baseGroupX
VUID-vkCmdDispatchBase-groupCountY-00425YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasecoregroupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY
VUID-vkCmdDispatchBase-groupCountZ-00426YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasecoregroupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ
VUID-vkCmdDispatchBase-magFilter-04553YNoneexplicitvkCmdDispatchBasecoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchBase-maintenance4-08602YNoneexplicitvkCmdDispatchBasecoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchBase-mipmapMode-04770YNoneexplicitvkCmdDispatchBasecoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchBase-reductionMode-09213NNoneexplicitvkCmdDispatchBasecoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDispatchBase-renderpassYNoneimplicitvkCmdDispatchBasecoreThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchBase-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchBasecoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDispatchBasecoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-vkCmdDispatchBase-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDispatchBasecoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-vkCmdDispatchBase-storageBuffers-06936NNoneexplicitvkCmdDispatchBasecoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-vkCmdDispatchBase-uniformBuffers-06935NNoneexplicitvkCmdDispatchBasecoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-vkCmdDispatchBase-videocodingYNoneimplicitvkCmdDispatchBasecoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchBase-viewType-07752YNoneexplicitvkCmdDispatchBasecoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDispatchGraphAMDX-ConstOffset-06551NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatchGraphAMDX-NodeMaxPayloadsAMDX-09188NNoneexplicitvkCmdDispatchGraphAMDXcoreExecution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately
VUID-vkCmdDispatchGraphAMDX-None-02691NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDispatchGraphAMDX-None-02692NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDispatchGraphAMDX-None-02693NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDispatchGraphAMDX-None-06479NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDispatchGraphAMDX-None-06550NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatchGraphAMDX-None-07288NNoneexplicitvkCmdDispatchGraphAMDXcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchGraphAMDX-None-07888NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDispatchGraphAMDX-None-08114NNoneexplicitvkCmdDispatchGraphAMDXcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphAMDX-None-08115NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphAMDX-None-08116NNoneexplicitvkCmdDispatchGraphAMDXcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphAMDX-None-08117NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphAMDX-None-08119NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchGraphAMDX-None-08600NNoneexplicitvkCmdDispatchGraphAMDXcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphAMDX-None-08601NNoneexplicitvkCmdDispatchGraphAMDXcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphAMDX-None-08604NNoneexplicitvkCmdDispatchGraphAMDXcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphAMDX-None-08605NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchGraphAMDX-None-08606NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphAMDX-None-08607NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphAMDX-None-08608NNoneexplicitvkCmdDispatchGraphAMDXcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchGraphAMDX-None-08609NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDispatchGraphAMDX-None-08610NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDispatchGraphAMDX-None-08611NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDispatchGraphAMDX-None-08612NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphAMDX-None-08613NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchGraphAMDXcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDispatchGraphAMDXcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatchGraphAMDXcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchGraphAMDX-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatchGraphAMDXcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDispatchGraphAMDXcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDispatchGraphAMDXcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDispatchGraphAMDXcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDispatchGraphAMDXcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchGraphAMDX-OpImageWrite-04469NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08795NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08796NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07027NNoneexplicitvkCmdDispatchGraphAMDXcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07028NNoneexplicitvkCmdDispatchGraphAMDXcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07029NNoneexplicitvkCmdDispatchGraphAMDXcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07030NNoneexplicitvkCmdDispatchGraphAMDXcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphAMDX-SampledType-04470NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDispatchGraphAMDX-SampledType-04471NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDispatchGraphAMDX-SampledType-04472NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDispatchGraphAMDX-SampledType-04473NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDispatchGraphAMDX-bufferlevelYNoneimplicitvkCmdDispatchGraphAMDXcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDispatchGraphAMDX-commandBuffer-02707NNoneexplicitvkCmdDispatchGraphAMDXcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDispatchGraphAMDX-commandBuffer-09181NNoneexplicitvkCmdDispatchGraphAMDXcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDispatchGraphAMDX-commandBuffer-09182NNoneexplicitvkCmdDispatchGraphAMDXcorecommandBuffer must be a primary command buffer
VUID-vkCmdDispatchGraphAMDX-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchGraphAMDXcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameterYNoneimplicitvkCmdDispatchGraphAMDXcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchGraphAMDX-commandBuffer-recordingYNoneimplicitvkCmdDispatchGraphAMDXcorecommandBuffer must be in the recording state
VUID-vkCmdDispatchGraphAMDX-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDispatchGraphAMDX-filterCubic-02694NNoneexplicitvkCmdDispatchGraphAMDXcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchGraphAMDX-filterCubicMinmax-02695NNoneexplicitvkCmdDispatchGraphAMDXcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchGraphAMDX-flags-02696NNoneexplicitvkCmdDispatchGraphAMDXcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDispatchGraphAMDX-format-07753NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDispatchGraphAMDX-infos-09146NNoneexplicitvkCmdDispatchGraphAMDXcoreHost memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes
VUID-vkCmdDispatchGraphAMDX-magFilter-04553NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchGraphAMDX-maintenance4-08602NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphAMDX-maxComputeWorkGroupCount-09186NNoneexplicitvkCmdDispatchGraphAMDXcoreExecution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount
VUID-vkCmdDispatchGraphAMDX-maxExecutionGraphShaderPayloadCount-09187NNoneexplicitvkCmdDispatchGraphAMDXcoreExecution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads
VUID-vkCmdDispatchGraphAMDX-mipmapMode-04770NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchGraphAMDX-pCountInfo-09145NNoneexplicitvkCmdDispatchGraphAMDXcorepCountInfo->infos must be a host pointer to a memory allocation at least as large as the product of count and stride
VUID-vkCmdDispatchGraphAMDX-pCountInfo-09147NNoneexplicitvkCmdDispatchGraphAMDXcoreFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a host pointer to a memory allocation at least as large as the product of payloadCount and payloadStride
VUID-vkCmdDispatchGraphAMDX-pCountInfo-09148NNoneexplicitvkCmdDispatchGraphAMDXcoreFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX
VUID-vkCmdDispatchGraphAMDX-pCountInfo-09149NNoneexplicitvkCmdDispatchGraphAMDXcoreFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, host memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes
VUID-vkCmdDispatchGraphAMDX-pCountInfo-parameterYNoneimplicitvkCmdDispatchGraphAMDXcorepCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure
VUID-vkCmdDispatchGraphAMDX-reductionMode-09213NNoneexplicitvkCmdDispatchGraphAMDXcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDispatchGraphAMDX-renderpassYNoneimplicitvkCmdDispatchGraphAMDXcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchGraphAMDX-scratch-09183NNoneexplicitvkCmdDispatchGraphAMDXcorescratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline
VUID-vkCmdDispatchGraphAMDX-scratch-09184NNoneexplicitvkCmdDispatchGraphAMDXcorescratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag
VUID-vkCmdDispatchGraphAMDX-scratch-09185NNoneexplicitvkCmdDispatchGraphAMDXcoreDevice memory in the range [scratch,scratch VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
VUID-vkCmdDispatchGraphAMDX-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDispatchGraphAMDXcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDispatchGraphAMDX-storageBuffers-06936NNoneexplicitvkCmdDispatchGraphAMDXcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphAMDX-uniformBuffers-06935NNoneexplicitvkCmdDispatchGraphAMDXcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphAMDX-videocodingYNoneimplicitvkCmdDispatchGraphAMDXcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchGraphAMDX-viewType-07752NNoneexplicitvkCmdDispatchGraphAMDXcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDispatchGraphIndirectAMDX-ConstOffset-06551NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatchGraphIndirectAMDX-NodeMaxPayloadsAMDX-09188NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreExecution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately
VUID-vkCmdDispatchGraphIndirectAMDX-None-02691NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-None-02692NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDispatchGraphIndirectAMDX-None-02693NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDispatchGraphIndirectAMDX-None-06479NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-None-06550NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatchGraphIndirectAMDX-None-07288NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchGraphIndirectAMDX-None-07888NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-None-08114NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphIndirectAMDX-None-08115NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphIndirectAMDX-None-08116NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphIndirectAMDX-None-08117NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphIndirectAMDX-None-08119NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchGraphIndirectAMDX-None-08600NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphIndirectAMDX-None-08601NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphIndirectAMDX-None-08604NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphIndirectAMDX-None-08605NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchGraphIndirectAMDX-None-08606NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphIndirectAMDX-None-08607NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphIndirectAMDX-None-08608NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchGraphIndirectAMDX-None-08609NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDispatchGraphIndirectAMDX-None-08610NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDispatchGraphIndirectAMDX-None-08611NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDispatchGraphIndirectAMDX-None-08612NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphIndirectAMDX-None-08613NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-04469NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08795NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08796NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07027NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07028NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07029NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07030NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04470NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04471NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04472NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04473NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDispatchGraphIndirectAMDX-bufferlevelYNoneimplicitvkCmdDispatchGraphIndirectAMDXcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-02707NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09181NNoneexplicitvkCmdDispatchGraphIndirectAMDXcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09182NNoneexplicitvkCmdDispatchGraphIndirectAMDXcorecommandBuffer must be a primary command buffer
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchGraphIndirectAMDXcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameterYNoneimplicitvkCmdDispatchGraphIndirectAMDXcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-recordingYNoneimplicitvkCmdDispatchGraphIndirectAMDXcorecommandBuffer must be in the recording state
VUID-vkCmdDispatchGraphIndirectAMDX-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-filterCubic-02694NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchGraphIndirectAMDX-filterCubicMinmax-02695NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchGraphIndirectAMDX-flags-02696NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDispatchGraphIndirectAMDX-format-07753NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDispatchGraphIndirectAMDX-infos-09153NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreDevice memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectAMDX-magFilter-04553NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphIndirectAMDX-maxComputeWorkGroupCount-09186NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreExecution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount
VUID-vkCmdDispatchGraphIndirectAMDX-maxExecutionGraphShaderPayloadCount-09187NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreExecution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads
VUID-vkCmdDispatchGraphIndirectAMDX-mipmapMode-04770NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09150NNoneexplicitvkCmdDispatchGraphIndirectAMDXcorepCountInfo->infos must be a device pointer to a memory allocation at least as large as the product of count and stride when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09151NNoneexplicitvkCmdDispatchGraphIndirectAMDXcorepCountInfo->infos must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09152NNoneexplicitvkCmdDispatchGraphIndirectAMDXcorepCountInfo->infos must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09154NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a device pointer to a memory allocation at least as large as the product of payloadCount and payloadStride when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09155NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09156NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09157NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09158NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, device memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-parameterYNoneimplicitvkCmdDispatchGraphIndirectAMDXcorepCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure
VUID-vkCmdDispatchGraphIndirectAMDX-reductionMode-09213NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDispatchGraphIndirectAMDX-renderpassYNoneimplicitvkCmdDispatchGraphIndirectAMDXcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09183NNoneexplicitvkCmdDispatchGraphIndirectAMDXcorescratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline
VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09184NNoneexplicitvkCmdDispatchGraphIndirectAMDXcorescratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag
VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09185NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreDevice memory in the range [scratch,scratch VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
VUID-vkCmdDispatchGraphIndirectAMDX-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDispatchGraphIndirectAMDX-storageBuffers-06936NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphIndirectAMDX-uniformBuffers-06935NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphIndirectAMDX-videocodingYNoneimplicitvkCmdDispatchGraphIndirectAMDXcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchGraphIndirectAMDX-viewType-07752NNoneexplicitvkCmdDispatchGraphIndirectAMDXcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDispatchGraphIndirectCountAMDX-ConstOffset-06551NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatchGraphIndirectCountAMDX-NodeMaxPayloadsAMDX-09188NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreExecution of this command must not cause any shader that declares NodeMaxPayloadsAMDX to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each NodeMaxPayloadsAMDX decoration separately
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02691NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02692NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02693NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06479NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06550NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07288NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07888NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08114NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08115NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08116NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08117NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08119NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08600NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08601NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08604NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08605NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08606NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08608NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08609NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08610NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08611NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08612NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08613NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-04469NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08795NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08796NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07027NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07028NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07029NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07030NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04470NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04471NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04472NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04473NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDispatchGraphIndirectCountAMDX-bufferlevelYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-02707NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09181NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09182NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorecommandBuffer must be a primary command buffer
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameterYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-recordingYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcorecommandBuffer must be in the recording state
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09159NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorecountInfo must be a device pointer to a memory allocation containing a valid VkDispatchGraphCountInfoAMDX structure when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09160NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorecountInfo must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09161NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorecountInfo must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09162NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorecountInfo->infos must be a device pointer to a memory allocation at least as large as the product of count and stride when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09163NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorecountInfo->infos must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09164NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorecountInfo->infos must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09166NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a device pointer to a memory allocation at least as large as the product of payloadCount and payloadStride when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09167NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09168NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09169NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor each VkDispatchGraphInfoAMDX structure in countInfo->infos, nodeIndex must be a valid node index in the currently bound execution graph pipeline, as returned by vkGetExecutionGraphPipelineNodeIndexAMDX when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09170NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreFor each VkDispatchGraphInfoAMDX structure in countInfo->infos, device memory locations at indexes in the range [payloads, payloads + (payloadCount * payloadStride)), at a granularity of payloadStride must contain a payload matching the size of the input payload expected by the node in nodeIndex in the first bytes when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectCountAMDX-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubic-02694NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubicMinmax-02695NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchGraphIndirectCountAMDX-flags-02696NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDispatchGraphIndirectCountAMDX-format-07753NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDispatchGraphIndirectCountAMDX-infos-09165NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreDevice memory locations at indexes in the range [infos, infos + (count*stride)), at a granularity of stride must contain valid VkDispatchGraphInfoAMDX structures in the first 24 bytes when this command is executed on the device
VUID-vkCmdDispatchGraphIndirectCountAMDX-magFilter-04553NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-maintenance4-08602NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchGraphIndirectCountAMDX-maxComputeWorkGroupCount-09186NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreExecution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a MaxNumWorkgroupsAMDX decoration in the dispatched node or maxComputeWorkGroupCount
VUID-vkCmdDispatchGraphIndirectCountAMDX-maxExecutionGraphShaderPayloadCount-09187NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreExecution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads
VUID-vkCmdDispatchGraphIndirectCountAMDX-mipmapMode-04770NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-reductionMode-09213NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDispatchGraphIndirectCountAMDX-renderpassYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09183NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorescratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline
VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09184NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcorescratch must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag
VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09185NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreDevice memory in the range [scratch,scratch VkExecutionGraphPipelineScratchSizeAMDX::size) must have been initialized with vkCmdInitializeGraphScratchMemoryAMDX using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
VUID-vkCmdDispatchGraphIndirectCountAMDX-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDispatchGraphIndirectCountAMDX-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDispatchGraphIndirectCountAMDX-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDispatchGraphIndirectCountAMDX-storageBuffers-06936NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphIndirectCountAMDX-uniformBuffers-06935NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDispatchGraphIndirectCountAMDX-videocodingYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchGraphIndirectCountAMDX-viewType-07752NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDispatchIndirect-ConstOffset-06551YNoneexplicitvkCmdDispatchIndirectcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatchIndirect-None-02691YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDispatchIndirect-None-02692YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDispatchIndirect-None-02693YNoneexplicitvkCmdDispatchIndirectcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDispatchIndirect-None-06479YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDispatchIndirect-None-06550YNoneexplicitvkCmdDispatchIndirectcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatchIndirect-None-07288NNoneexplicitvkCmdDispatchIndirectcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchIndirect-None-07888YNoneexplicitvkCmdDispatchIndirectcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDispatchIndirect-None-08114YNoneexplicitvkCmdDispatchIndirectcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchIndirect-None-08115YNoneexplicitvkCmdDispatchIndirectcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchIndirect-None-08116NNoneexplicitvkCmdDispatchIndirectcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchIndirect-None-08117YNoneexplicitvkCmdDispatchIndirectcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDispatchIndirect-None-08119NNoneexplicitvkCmdDispatchIndirectcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchIndirect-None-08600YNoneexplicitvkCmdDispatchIndirectcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchIndirect-None-08601NNoneexplicitvkCmdDispatchIndirectcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchIndirect-None-08604NNoneexplicitvkCmdDispatchIndirectcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDispatchIndirect-None-08605NNoneexplicitvkCmdDispatchIndirectcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDispatchIndirect-None-08606YNegativePipeline.BadPipelineObjectexplicitvkCmdDispatchIndirectcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchIndirect-None-08607YNoneexplicitvkCmdDispatchIndirectcoreIf the 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 VK_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-08608YNoneexplicitvkCmdDispatchIndirectcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchIndirect-None-08609YNoneexplicitvkCmdDispatchIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDispatchIndirect-None-08610YNoneexplicitvkCmdDispatchIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-08611YNoneexplicitvkCmdDispatchIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDispatchIndirect-None-08612YNoneexplicitvkCmdDispatchIndirectcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08613YNoneexplicitvkCmdDispatchIndirectcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchIndirectcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDispatchIndirectcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatchIndirectcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDispatchIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDispatchIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDispatchIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatchIndirectcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDispatchIndirectcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDispatchIndirectcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDispatchIndirectcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDispatchIndirectcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageWrite-04469YNoneexplicitvkCmdDispatchIndirectcoreIf a VkBufferView 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-OpImageWrite-08795YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView created with a format other than VK_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-08796YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView created with the format VK_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-OpTypeImage-07027YNoneexplicitvkCmdDispatchIndirectcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchIndirect-OpTypeImage-07028YNoneexplicitvkCmdDispatchIndirectcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchIndirect-OpTypeImage-07029YNoneexplicitvkCmdDispatchIndirectcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchIndirect-OpTypeImage-07030YNoneexplicitvkCmdDispatchIndirectcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDispatchIndirect-SampledType-04470YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView with a VkFormat 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-04471YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView with a VkFormat 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-04472YNoneexplicitvkCmdDispatchIndirectcoreIf a VkBufferView with a VkFormat 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-04473YNoneexplicitvkCmdDispatchIndirectcoreIf a VkBufferView with a VkFormat 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-buffer-02708YNoneexplicitvkCmdDispatchIndirectcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDispatchIndirect-buffer-02709YNoneexplicitvkCmdDispatchIndirectcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDispatchIndirect-buffer-parameterYNoneimplicitvkCmdDispatchIndirectcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDispatchIndirect-commandBuffer-02707YNoneexplicitvkCmdDispatchIndirectcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDispatchIndirect-commandBuffer-02711YNoneexplicitvkCmdDispatchIndirectcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDispatchIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchIndirectcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatchIndirect-commandBuffer-parameterYNoneimplicitvkCmdDispatchIndirectcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchIndirect-commandBuffer-recordingYNoneimplicitvkCmdDispatchIndirectcorecommandBuffer must be in the recording state
VUID-vkCmdDispatchIndirect-commonparentYNoneimplicitvkCmdDispatchIndirectcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDispatchIndirect-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchIndirectcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDispatchIndirect-filterCubic-02694YNoneexplicitvkCmdDispatchIndirectcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695YNoneexplicitvkCmdDispatchIndirectcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDispatchIndirect-flags-02696YNoneexplicitvkCmdDispatchIndirectcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDispatchIndirect-format-07753YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDispatchIndirect-magFilter-04553YNoneexplicitvkCmdDispatchIndirectcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchIndirect-maintenance4-08602YNoneexplicitvkCmdDispatchIndirectcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchIndirect-mipmapMode-04770YNoneexplicitvkCmdDispatchIndirectcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchIndirect-offset-00407YNegativePipeline.BadPipelineObjectexplicitvkCmdDispatchIndirectcoreThe sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer
VUID-vkCmdDispatchIndirect-offset-02710YNoneexplicitvkCmdDispatchIndirectcoreoffset must be a multiple of 4
VUID-vkCmdDispatchIndirect-reductionMode-09213NNoneexplicitvkCmdDispatchIndirectcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDispatchIndirect-renderpassYNoneimplicitvkCmdDispatchIndirectcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchIndirectcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDispatchIndirectcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-04475NNoneexplicitvkCmdDispatchIndirectcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-storageBuffers-06936NNoneexplicitvkCmdDispatchIndirectcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-uniformBuffers-06935NNoneexplicitvkCmdDispatchIndirectcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-videocodingYNoneimplicitvkCmdDispatchIndirectcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchIndirect-viewType-07752YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDraw-ConstOffset-06551YNegativeYcbcr.DrawConstOffsetexplicitvkCmdDrawcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDraw-Input-07939YNegativeDynamicState.VertexInputLocationMissingexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDraw-Input-08734NNoneexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDraw-None-02691YNegativeAtomic.InvalidStorageOperationexplicitvkCmdDrawcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDraw-None-02692YNegativeSampler.ImageViewFormatUnsupportedFilterexplicitvkCmdDrawcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDraw-None-02693YNegativeCommand.ImageFilterCubicSamplerInCmdDrawexplicitvkCmdDrawcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDraw-None-02721YNegativeDynamicState.ExtendedDynamicStateSetViewportScissor, NegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpass, NegativeVertexInput.AttributeAlignment, NegativeVertexInput.BindVertexOffset, NegativeVertexInput.VertextBindingexplicitvkCmdDrawcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDraw-None-04007YNegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpass, NegativeVertexInput.VertextBindingexplicitvkCmdDrawcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDraw-None-04008YNegativeVertexInput.VertextBindingexplicitvkCmdDrawcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDraw-None-04875YNegativeDynamicState.ExtendedDynamicState2PatchControlPointsEnabled, NegativeShaderObject.MissingCmdSetPatchControlPointsEXTexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04876YNegativeDynamicState.ExtendedDynamicState2EnabledexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04877YNegativeDynamicState.ExtendedDynamicState2EnabledexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04879YNegativeDynamicState.ExtendedDynamicState2Enabled, NegativeShaderObject.MissingCmdSetPrimitiveRestartEnableEXTexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04912YNegativeDynamicState.MissingCmdSetVertexInputexplicitvkCmdDrawcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDraw-None-04914YNegativeDynamicState.MissingCmdSetVertexInputexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDraw-None-06479YNegativeDescriptors.SampledImageDepthComparisonForFormatexplicitvkCmdDrawcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDraw-None-06537YNegativeDescriptors.ImageSubresourceOverlapBetweenRenderPassAndDescriptorSetsexplicitvkCmdDrawcoreMemory 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-06539YNegativeDescriptors.DescriptorWriteFromReadAttachmentexplicitvkCmdDrawcoreIf 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-06550YNegativeYcbcr.DrawFetchexplicitvkCmdDrawcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDraw-None-06666YNegativeDynamicState.DrawNotSetSampleLocations, NegativeDynamicState.StateNotSetWithCommandBufferResetexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-06886YNegativeCommand.DepthStencilStateForReadOnlyLayoutexplicitvkCmdDrawcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDraw-None-06887YNegativeCommand.DepthStencilStateForReadOnlyLayoutexplicitvkCmdDrawcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDraw-None-07288NNoneexplicitvkCmdDrawcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDraw-None-07469NNoneexplicitvkCmdDrawcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDraw-None-07619YNegativeDynamicState.DrawNotSetTessellationDomainOriginexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07620YNegativeDynamicState.DrawNotSetDepthClampEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07621YNegativeDynamicState.DrawNotSetPolygonModeexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07622YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07623YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07624YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07625YNegativeDynamicState.DrawNotSetAlphaToOneEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07626YNegativeDynamicState.DrawNotSetLogicOpEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07627YNegativeDynamicState.ColorBlendEnableNotSetexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07628YNegativeDynamicState.ColorBlendEquationNotSet, NegativeDynamicState.DrawNotSetColorBlendEquationexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07629YNegativeDynamicState.ColorWriteMaskNotSetexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07630YNegativeDynamicState.DrawNotSetRasterizationStreamexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07631YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07632YNegativeDynamicState.DrawNotSetExtraPrimitiveOverestimationSizeexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07633YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07634YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07635YNegativeDynamicState.ColorBlendAdvancedNotSetexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07636YNegativeDynamicState.DrawNotSetProvokingVertexModeexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07637YNegativeDynamicState.DrawNotSetLineRasterizationModeexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07638YNegativeDynamicState.DrawNotSetLineStippleEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07639YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07640YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07641YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07642YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07643YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07644YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07645YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07646YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07647YNegativeDynamicState.ShadingRateImageEnableNotSetexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07648YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07649YNegativeDynamicState.CoverageReductionModeNotSetexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07748NNoneexplicitvkCmdDrawcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDraw-None-07749YNegativeDynamicState.ColorWriteNotSetexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07751YNegativeDynamicState.DiscardRectanglesNotSet, NegativeDynamicState.StateNotSetWithCommandBufferResetBitmaskexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDraw-None-07831YNegativeDynamicState.ViewportAndScissorUndefinedDrawState, NegativeDynamicState.ViewportNotBound, NegativeViewportInheritance.BasicUsageexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07832YNegativeDynamicState.ScissorNotBound, NegativeDynamicState.ViewportAndScissorUndefinedDrawState, NegativeViewportInheritance.BasicUsageexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07833YNegativeDynamicState.LineWidthNotBound, NegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpassexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07834YNegativeDynamicState.DepthBiasNotBound, PositiveDynamicState.SetDepthBias2EXTDepthBiasClampDisabled, PositiveDynamicState.SetDepthBias2EXTDepthBiasClampEnabledexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07835YNegativeDynamicState.BlendConstantsNotBoundexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07836YNegativeDynamicState.DepthBoundsNotBound, NegativeDynamicState.DepthBoundsTestEnableStateexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07837YNegativeDynamicState.StencilReadNotBoundexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07838YNegativeDynamicState.StencilWriteNotBoundexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07839YNegativeDynamicState.StencilRefNotBoundexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07840YNegativeDynamicState.DrawNotSetCullModeexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07841YNegativeDynamicState.DrawNotSetFrontFaceexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07842YNegativeDynamicState.DrawNotSetPrimitiveTopology, NegativeShaderObject.MissingCmdSetPrimitiveTopologyEXTexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07843YNegativeDynamicState.DrawNotSetDepthTestEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07844YNegativeDynamicState.DrawNotSetDepthWriteEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07845YNegativeDynamicState.DrawNotSetDepthCompareOpexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07846YNegativeDynamicState.DrawNotSetDepthBoundsTestEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07847YNegativeDynamicState.DrawNotSetStencilTestEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07848YNegativeDynamicState.DrawNotSetStencilOpexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07849YNegativeDynamicState.LineStippleNotBoundexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07850YNegativeViewportInheritance.BasicUsage, NegativeViewportInheritance.MultiViewportexplicitvkCmdDrawcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07878YNegativeDynamicState.DrawNotSetExclusiveScissorexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07879YNegativeDynamicState.DrawNotSetExclusiveScissorexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07880YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07881YNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07888YNegativeAtomic.InvalidStorageOperationexplicitvkCmdDrawcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDraw-None-08114YNegativeDescriptors.DescriptorSetSamplerDestroyed, NegativeDescriptors.DynamicOffsetWithNullBuffer, NegativeDescriptors.ImageDescriptorLayoutMismatch, NegativeGpuAVDescriptorIndexing.ArrayOOBGraphics, NegativeGpuAVDescriptorIndexing.UpdateAfterBind, NegativeObjectLifetime.CmdBufferBufferViewDestroyed, NegativePushDescriptor.ImageLayout, NegativeShaderObject.DescriptorNotUpdatedexplicitvkCmdDrawcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDraw-None-08115YNoneexplicitvkCmdDrawcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDraw-None-08116NNoneexplicitvkCmdDrawcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDraw-None-08117YNoneexplicitvkCmdDrawcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDraw-None-08119NNoneexplicitvkCmdDrawcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDraw-None-08600YNegativeDescriptors.DescriptorSetCompatibility, NegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpass, NegativeShaderObject.IncompatibleDescriptorSetexplicitvkCmdDrawcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDraw-None-08601NNoneexplicitvkCmdDrawcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDraw-None-08604NNoneexplicitvkCmdDrawcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDraw-None-08605NNoneexplicitvkCmdDrawcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDraw-None-08606YNegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpass, NegativePipeline.BadPipelineObjectexplicitvkCmdDrawcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDraw-None-08607YNegativeShaderObject.DrawWithMissingShaders, NegativeShaderObject.DrawWithNoShadersBound, NegativeShaderObject.DrawWithoutBindingMeshShadersWhenEnabled, NegativeShaderObject.MissingFragmentShaderBind, NegativeShaderObject.MissingGeometryBind, NegativeShaderObject.MissingMeshShaderBind, NegativeShaderObject.MissingTaskShaderBind, NegativeShaderObject.MissingTessellationControlBind, NegativeShaderObject.MissingTessellationEvaluationBind, NegativeShaderObject.MissingVertexShaderBindexplicitvkCmdDrawcoreIf the 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 VK_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-08608YNegativeDynamicState.SetAfterStaticPipeline, NegativeDynamicState.SetDepthBias2EXTDepthBiasControlFeaturesDisabled, NegativeDynamicState.SettingCommands, NegativeGraphicsLibrary.DynamicPrimitiveTopolgyIngoreStateexplicitvkCmdDrawcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDraw-None-08609YNegativeGpuAV.UnnormalizedCoordinatesSeparateSamplerSharedSampler, NegativeSampler.UnnormalizedCoordinatesCombinedSampler, NegativeSampler.UnnormalizedCoordinatesSeparateSampler, NegativeSampler.UnnormalizedCoordinatesSeparateSamplerSharedSamplerexplicitvkCmdDrawcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDraw-None-08610YNegativeGpuAV.ShareOpSampledImage, NegativeGpuAV.UnnormalizedCoordinatesSeparateSamplerSharedSampler, NegativeSampler.UnnormalizedCoordinatesCombinedSampler, NegativeSampler.UnnormalizedCoordinatesSeparateSampler, NegativeSampler.UnnormalizedCoordinatesSeparateSamplerSharedImage, NegativeSampler.UnnormalizedCoordinatesSeparateSamplerSharedSamplerexplicitvkCmdDrawcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-08611YNegativeSampler.UnnormalizedCoordinatesCombinedSampler, NegativeSampler.UnnormalizedCoordinatesCopyObject, NegativeSampler.UnnormalizedCoordinatesSeparateSampler, NegativeShaderImageAccess.UnnormalizedCoordinatesFunctionexplicitvkCmdDrawcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDraw-None-08612YNegativeGpuAVOOB.UniformBufferTooSmall, NegativeGpuAVOOB.UniformBufferTooSmallArray, NegativeGpuAVOOB.UniformBufferTooSmallNestedStructexplicitvkCmdDrawcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08613YNegativeGpuAV.SelectInstrumentedShaders, NegativeGpuAVOOB.Geometry, NegativeGpuAVOOB.StorageBufferTooSmall, PositiveGpuAVShaderObject.SelectInstrumentedShadersexplicitvkCmdDrawcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08617YNegativeShaderObject.MissingPolygonLineCmdSetLineWidthEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08618YNegativeShaderObject.MissingPrimitiveTopologyLineCmdSetLineWidthEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08619YNegativeShaderObject.MissingLineWidthSetexplicitvkCmdDrawcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08620YNegativeShaderObject.MissingCmdSetDepthBiasEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08621YNegativeShaderObject.MissingCmdSetBlendConstantsEXTexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08622YNegativeShaderObject.MissingCmdSetDepthBoundsEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08623YNegativeShaderObject.MissingCmdSetStencilCompareMaskEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08624YNegativeShaderObject.MissingCmdSetStencilWriteMaskEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08625YNegativeShaderObject.MissingCmdSetStencilReferenceEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08626YNegativeShaderObject.MissingCmdSetSampleLocationsEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08627YNegativeShaderObject.MissingCmdSetCullModeEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08628YNegativeShaderObject.MissingCmdSetFrontFaceEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08629YNegativeShaderObject.MissingCmdSetDepthTestEnableEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08630YNegativeShaderObject.MissingCmdSetDepthWriteEnableEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08631YNegativeShaderObject.MissingCmdSetDepthCompareOpexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08632YNegativeShaderObject.MissingCmdSetDepthBoundsTestEnableexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08633YNegativeShaderObject.MissingCmdSetStencilTestEnableexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08634YNegativeShaderObject.MissingCmdSetStencilOpexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08635YNegativeShaderObject.DifferentViewportAndScissorCount, NegativeShaderObject.NotSettingViewportAndScissorexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDraw-None-08636YNegativeShaderObject.InvalidViewportWScalingexplicitvkCmdDrawcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-None-08637YNegativeShaderObject.InvalidShadingRatePaletteViewportCountexplicitvkCmdDrawcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-None-08638YNegativeShaderObject.InvalidExclusiveScissorCountexplicitvkCmdDrawcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08639YNegativeShaderObject.MissingCmdSetRasterizerDiscardEnableexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08640YNegativeShaderObject.MissingCmdSetDepthBiasEnableexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08641YNegativeShaderObject.MissingCmdSetLogicOpexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDraw-None-08643YNegativeShaderObject.BlendEnabledWithNonBlendableFormatexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDraw-None-08644YNegativeShaderObject.RasterizationSamplesMismatchexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT 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-08646YNegativeShaderObject.MissingColorWriteEnableexplicitvkCmdDrawcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08647YNegativeShaderObject.ColorWriteEnableAttachmentCountexplicitvkCmdDrawcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT 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-08648YNegativeShaderObject.MissingCmdSetDiscardRectangleEnableEXTexplicitvkCmdDrawcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08649YNegativeShaderObject.MissingCmdSetDiscardRectangleModeEXTexplicitvkCmdDrawcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08650YNegativeShaderObject.MissingCmdSetDepthClampEnableEXTexplicitvkCmdDrawcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08651YNegativeShaderObject.MissingCmdSetPolygonModeEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08652YNegativeShaderObject.MissingCmdSetRasterizationSamplesEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08653YNegativeShaderObject.MissingCmdSetSampleMaskEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08654YNegativeShaderObject.MissingCmdSetAlphaToCoverageEnableEXTexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08655YNegativeShaderObject.MissingCmdSetAlphaToOneEnableEXTexplicitvkCmdDrawcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08656YNegativeShaderObject.MissingCmdSetLogicOpEnableEXTexplicitvkCmdDrawcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08657YNegativeShaderObject.MissingCmdSetColorBlendEnableEXTexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08658YNegativeShaderObject.MissingCmdSetColorBlendAdvancedEXT, NegativeShaderObject.MissingCmdSetColorBlendEquationEXT, NegativeShaderObject.MissingCmdSetColorBlendEquationEXTActiveAttachmentsexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08659YNegativeShaderObject.MissingCmdSetColorWriteMaskEXTexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08660YNegativeShaderObject.MissingCmdSetRasterizationStreamEXTexplicitvkCmdDrawcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08661YNegativeShaderObject.MissingCmdSetConservativeRasterizationModeEXTexplicitvkCmdDrawcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08662YNegativeShaderObject.MissingCmdSetExtraPrimitiveOverestimationSizeEXTexplicitvkCmdDrawcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08663YNegativeShaderObject.MissingCmdSetDepthClipEnableEXTexplicitvkCmdDrawcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08664YNegativeShaderObject.MissingCmdSetSampleLocationsEnableEXTexplicitvkCmdDrawcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08665YNegativeShaderObject.MissingCmdSetProvokingVertexModeEXTexplicitvkCmdDrawcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08666YNegativeShaderObject.MissingPolygonModeCmdSetLineRasterizationModeEXTexplicitvkCmdDrawcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08667YNegativeShaderObject.MissingPrimitiveTopologyCmdSetLineRasterizationModeEXTexplicitvkCmdDrawcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08668YNegativeShaderObject.MissingLineRasterizationModeexplicitvkCmdDrawcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08669YNegativeShaderObject.MissingPolygonModeCmdSetLineStippleEnableEXTexplicitvkCmdDrawcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08670YNegativeShaderObject.MissingPrimitiveTopologyCmdSetLineStippleEnableEXTexplicitvkCmdDrawcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08671YNegativeShaderObject.MissingLineStippleEnableexplicitvkCmdDrawcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08672YNegativeShaderObject.MissingCmdSetLineStippleEXTexplicitvkCmdDrawcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08673YNegativeShaderObject.MissingCmdSetDepthClipNegativeOneToOneEXTexplicitvkCmdDrawcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08674YNegativeShaderObject.MissingCmdSetViewportWScalingEnableNVexplicitvkCmdDrawcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08675YNegativeShaderObject.MissingCmdSetViewportSwizzleNVexplicitvkCmdDrawcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08676YNegativeShaderObject.MissingCmdSetCoverageToColorEnableNVexplicitvkCmdDrawcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08677YNegativeShaderObject.MissingCmdSetCoverageToColorLocationNVexplicitvkCmdDrawcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08678YNegativeShaderObject.MissingCmdSetCoverageModulationModeNVexplicitvkCmdDrawcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08679YNegativeShaderObject.MissingCmdSetCoverageModulationTableEnableNVexplicitvkCmdDrawcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08680YNegativeShaderObject.MissingCmdSetCoverageModulationTableNVexplicitvkCmdDrawcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08681YNegativeShaderObject.MissingCmdSetShadingRateImageEnableNVexplicitvkCmdDrawcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08682YNegativeShaderObject.MissingCmdSetRepresentativeFragmentTestEnableNVexplicitvkCmdDrawcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08683YNegativeShaderObject.MissingCmdSetCoverageReductionModeNVexplicitvkCmdDrawcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08684YNegativeShaderObject.DrawWithNoShadersBound, NegativeShaderObject.MissingVertexShaderBindexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDraw-None-08685YNegativeShaderObject.MissingTessellationControlBindexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDraw-None-08686YNegativeShaderObject.MissingTessellationEvaluationBindexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDraw-None-08687YNegativeShaderObject.DrawWithMissingShaders, NegativeShaderObject.MissingGeometryBindexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDraw-None-08688YNegativeShaderObject.DrawWithNoShadersBound, NegativeShaderObject.MissingFragmentShaderBindexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDraw-None-08689YNegativeShaderObject.DrawWithoutBindingMeshShadersWhenEnabled, NegativeShaderObject.MissingTaskShaderBindexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDraw-None-08690YNegativeShaderObject.DrawWithoutBindingMeshShadersWhenEnabled, NegativeShaderObject.MissingMeshShaderBindexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDraw-None-08693YNegativeShaderObject.VertAndMeshShaderBothBound, NegativeShaderObject.VertAndTaskShadersBoundexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDraw-None-08694YNegativeShaderObject.MeshShaderWithMissingTaskShaderexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDraw-None-08695YNegativeShaderObject.TaskAndMeshShaderWithNoTaskFlagexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDraw-None-08696YNegativeShaderObject.VertAndMeshShaderBothBound, NegativeShaderObject.VertAndTaskShadersBoundexplicitvkCmdDrawcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDraw-None-08698YNegativeShaderObject.MissingLinkedShaderBindexplicitvkCmdDrawcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDraw-None-08699YNegativeShaderObject.BindShaderBetweenLinkedShadersexplicitvkCmdDrawcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDraw-None-08876YNegativeShaderObject.DrawWithShadersInNonDynamicRenderPassexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDraw-None-08877YNegativeDynamicState.DrawNotSetAttachmentFeedbackLoopEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08878YNegativeShaderObject.DifferentShaderPushConstantRangesexplicitvkCmdDrawcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDraw-None-08879YNegativeShaderObject.DifferentShaderDescriptorLayoutsexplicitvkCmdDrawcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDraw-None-08880YNegativeShaderObject.MissingCmdSetAttachmentFeedbackLoopEnableEXTexplicitvkCmdDrawcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08885YNegativeShaderObject.DrawWithGraphicsShadersWhenMeshShaderIsBound, NegativeShaderObject.MeshShaderWithMissingTaskShader, NegativeShaderObject.TaskAndMeshShaderWithNoTaskFlag, NegativeShaderObject.VertAndMeshShaderBothBound, NegativeShaderObject.VertAndTaskShadersBoundexplicitvkCmdDrawcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDraw-None-09000YNegativeDescriptors.DescriptorReadFromWriteAttachmentexplicitvkCmdDrawcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09001YNoneexplicitvkCmdDrawcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09002YNegativeDescriptors.ImageSubresourceOverlapBetweenAttachmentsAndDescriptorSetsexplicitvkCmdDrawcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09003YNoneexplicitvkCmdDrawcoreIf 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-09116YNegativeShaderObject.InvalidColorWriteMaskexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDraw-None-09203YNegativeShaderObject.MismatchedFormat64ComponentsexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNegativeDynamicState.DynamicRasterizationSamplesWithMSRTSSexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDraw-None-09232YNegativeShaderObject.MissingCmdSetViewportWScalingNVexplicitvkCmdDrawcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-09237YNegativeShaderObject.MissingCmdSetTessellationDomainOriginEXTexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-09363YNegativeAndroidExternalResolve.DrawDynamicRasterizationSamplesexplicitvkCmdDrawcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDraw-None-09364YNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDraw-None-09365YNegativeAndroidExternalResolve.DrawDynamicRasterizationSamplesexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDraw-None-09366YNoneexplicitvkCmdDrawcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDraw-None-09368YNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDraw-None-09369YNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDraw-None-09462YNegativeVertexInput.UnsupportedDynamicStateDivisorexplicitvkCmdDrawcoreIf shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDraw-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDraw-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDraw-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDraw-OpImageWrite-04469YNoneexplicitvkCmdDrawcoreIf a VkBufferView 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-OpImageWrite-08795YNoneexplicitvkCmdDrawcoreIf a VkImageView created with a format other than VK_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-08796YNoneexplicitvkCmdDrawcoreIf a VkImageView created with the format VK_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-OpTypeImage-07027YNoneexplicitvkCmdDrawcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDraw-OpTypeImage-07028YNoneexplicitvkCmdDrawcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDraw-OpTypeImage-07029YNoneexplicitvkCmdDrawcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDraw-OpTypeImage-07030YNoneexplicitvkCmdDrawcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDraw-OpTypeImage-07468NNoneexplicitvkCmdDrawcoreIf 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-SampledType-04470YNoneexplicitvkCmdDrawcoreIf a VkImageView with a VkFormat 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-04471YNoneexplicitvkCmdDrawcoreIf a VkImageView with a VkFormat 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-04472YNoneexplicitvkCmdDrawcoreIf a VkBufferView with a VkFormat 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-04473YNoneexplicitvkCmdDrawcoreIf a VkBufferView with a VkFormat 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-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480YNegativeDynamicState.AdvancedBlendMaxAttachmentsexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDraw-alphaToCoverageEnable-08919YNegativeDynamicState.AlphaToCoverageOutputNoAlphaexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDraw-alphaToCoverageEnable-08920YNegativeShaderObject.AlphaToCoverageexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDraw-attachmentCount-07750YNegativeDynamicState.ColorWriteNotSetexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDraw-blendEnable-04727YNegativeCommand.DrawBlendEnabledFormatFeaturesexplicitvkCmdDrawcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDraw-colorAttachmentCount-06179YNegativeDynamicRendering.MistmatchingAttachmentFormatsexplicitvkCmdDrawcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDraw-colorAttachmentCount-06185YNegativeDynamicRendering.MismatchingMixedAttachmentSamplesColorexplicitvkCmdDrawcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDraw-colorAttachmentCount-09362YNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDraw-colorAttachmentCount-09372YNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDraw-commandBuffer-02707YNoneexplicitvkCmdDrawcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDraw-commandBuffer-02712YNoneexplicitvkCmdDrawcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource
VUID-vkCmdDraw-commandBuffer-02713NNoneexplicitvkCmdDrawcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource
VUID-vkCmdDraw-commandBuffer-04617NNoneexplicitvkCmdDrawcoreIf any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDraw-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDraw-commandBuffer-parameterYNoneimplicitvkCmdDrawcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDraw-commandBuffer-recordingYNoneimplicitvkCmdDrawcorecommandBuffer must be in the recording state
VUID-vkCmdDraw-conservativePointAndLineRasterization-07499YNegativeDynamicState.InvalidConservativeRasterizationModeexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDraw-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDraw-coverageReductionMode-07491NNoneexplicitvkCmdDrawcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDraw-coverageToColorEnable-07490NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDraw-cubicRangeClamp-09212NNoneexplicitvkCmdDrawcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910YNegativeDynamicRendering.MistmatchingAttachmentFormatsexplicitvkCmdDrawcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911YNegativeDynamicRendering.MistmatchingAttachmentFormats3ColorexplicitvkCmdDrawcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912YNegativeDynamicRendering.MismatchingAttachmentFormats2explicitvkCmdDrawcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913YNegativeDynamicRendering.MismatchingAttachmentFormats2explicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08914YNegativeDynamicRendering.MismatchingDepthAttachmentFormatInSecondaryCmdBuffer, NegativeDynamicRendering.MistmatchingAttachmentFormatsexplicitvkCmdDrawcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08915YNegativeDynamicRendering.MistmatchingAttachmentFormats3DepthStencilexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916YNegativeDynamicRendering.MismatchingAttachmentFormats2explicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08917YNegativeDynamicRendering.MistmatchingAttachmentFormatsexplicitvkCmdDrawcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08918YNegativeDynamicRendering.MistmatchingAttachmentFormats3DepthStencilexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-exclusiveScissor-09235YNegativeShaderObject.MissingCmdSetExclusiveScissorEnableNVexplicitvkCmdDrawcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-filterCubic-02694YNegativeCommand.FilterCubicSamplerInCmdDrawexplicitvkCmdDrawcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDraw-filterCubicMinmax-02695YNegativeCommand.FilterCubicSamplerInCmdDrawexplicitvkCmdDrawcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDraw-firstAttachment-07476YNegativeDynamicState.ColorBlendAttchmentexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDraw-firstAttachment-07477YNegativeDynamicState.DrawNotSetColorBlendEquationexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDraw-firstAttachment-07478YNegativeDynamicRendering.DynamicColorBlendAttchmentexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDraw-firstAttachment-07479YNegativeDynamicState.DrawNotSetColorBlendAdvancedexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDraw-flags-02696YNegativeSampler.AddressModeWithCornerSampledNVexplicitvkCmdDrawcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDraw-format-07753YNegativeCommand.DrawTimeImageComponentTypeMismatchWithPipeline, NegativeShaderImageAccess.ComponentTypeMismatchFunctionTwoArgs, NegativeShaderImageAccess.FunctionOpImageexplicitvkCmdDrawcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDraw-format-08936YNegativeShaderObject.Mismatched64BitAttributeTypeexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNegativeShaderObject.Mismatched32BitAttributeTypeexplicitvkCmdDrawcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDraw-imageView-06172NNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDraw-imageView-06173NNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDraw-imageView-06174NNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDraw-imageView-06175NNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDraw-imageView-06176NNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDraw-imageView-06177NNoneexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDraw-imageView-06183YNegativeDynamicRendering.PipelineMissingFlagsexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDraw-imageView-06184YNegativeDynamicRendering.PipelineMissingFlagsexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDraw-logicOp-04878YNegativeDynamicState.ExtendedDynamicState2LogicOpEnabledexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDraw-magFilter-04553YNegativePipeline.SampledInvalidImageViews, NegativeSampler.ImageViewFormatUnsupportedFilter, NegativeShaderImageAccess.MultipleFunctionCalls, NegativeShaderObject.MissingImageFilterLinearBitexplicitvkCmdDrawcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDraw-maintenance4-08602YNegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpass, NegativeShaderPushConstants.DrawWithoutUpdateexplicitvkCmdDrawcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688YNegativeMultiview.DynamicRenderingMaxMultiviewInstanceIndex, NegativeMultiview.MaxInstanceIndex, NegativeShaderObject.MaxMultiviewInstanceIndexexplicitvkCmdDrawcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDraw-mipmapMode-04770YNegativePipeline.SampledInvalidImageViewsexplicitvkCmdDrawcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284YNegativeDynamicState.InvalidSampleMaskSamples, NegativeDynamicState.RasterizationSamples, NegativePipeline.NumSamplesMismatchexplicitvkCmdDrawcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285YNegativeDynamicRendering.MistmatchingAttachmentSamplesColorexplicitvkCmdDrawcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_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-07286YNegativeDynamicRendering.CommandDraw, NegativeDynamicRendering.MistmatchingAttachmentSamplesDepthStencilexplicitvkCmdDrawcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287YNegativeDynamicRendering.CommandDraw, NegativeDynamicRendering.MistmatchingAttachmentSamplesDepthStencilexplicitvkCmdDrawcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDraw-pColorAttachments-08963YNegativePipeline.MissingPipelineFormatexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-pColorBlendEnables-07470YNegativeDynamicState.MissingColorAttachmentBlendBitexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDraw-pDepthAttachment-06186YNegativeDynamicRendering.MismatchingMixedAttachmentSamplesDepthStencilexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDraw-pDepthAttachment-08964YNegativePipeline.MissingPipelineFormatexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-pDynamicStates-08715YNegativeDynamicRendering.CommandDrawWithShaderTileImageReadexplicitvkCmdDrawcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDraw-pDynamicStates-08716YNegativeDynamicRendering.CommandDrawWithShaderTileImageReadexplicitvkCmdDrawcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDraw-pFragmentSize-09370YNoneexplicitvkCmdDrawcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDraw-pFragmentSize-09371YNoneexplicitvkCmdDrawcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDraw-pNext-07935YNegativePipeline.MismatchedRasterizationSamplesexplicitvkCmdDrawcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDraw-pNext-09461YNegativeVertexInput.UnsupportedDivisorexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDraw-pStencilAttachment-06187YNegativeDynamicRendering.MismatchingMixedAttachmentSamplesDepthStencilexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDraw-pStencilAttachment-08965YNegativePipeline.MissingPipelineFormatexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-pStrides-04913YNegativeDynamicState.MissingCmdBindVertexBuffers2explicitvkCmdDrawcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDraw-pipelineFragmentShadingRate-09238YNegativeShaderObject.MissingCmdSetFragmentShadingRateKHRexplicitvkCmdDrawcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552YNegativeFragmentShadingRate.PrimitiveFragmentShadingRateWriteMultiViewportLimitDynamicexplicitvkCmdDrawcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642YNegativeShaderObject.InvalidViewportCountexplicitvkCmdDrawcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709YNegativeQuery.PrimitivesGeneratedStreamsexplicitvkCmdDrawcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481YNegativeDynamicState.PGQNonZeroRasterizationStreamsexplicitvkCmdDrawcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708YNegativeQuery.PrimitivesGeneratedDiscardEnabled, NegativeShaderObject.PrimitivesGeneratedQueryexplicitvkCmdDrawcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDraw-rasterizationSamples-07471YNegativeDynamicState.DynamicRasterizationSamplesexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDraw-rasterizationSamples-07474YNegativeAndroidExternalResolve.DrawDynamicRasterizationSamples, NegativeDynamicState.InvalidSampleMaskSamples, NegativeDynamicState.RasterizationSamplesexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDraw-rasterizationSamples-07489NNoneexplicitvkCmdDrawcoreIf 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-rasterizationSamples-07494NNoneexplicitvkCmdDrawcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDraw-rasterizationSamples-09367YNoneexplicitvkCmdDrawcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDraw-rasterizerDiscardEnable-09236YNegativeShaderObject.MissingCmdSetDiscardRectangleEXTexplicitvkCmdDrawcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-rasterizerDiscardEnable-09417YNegativeShaderObject.MissingCmdSetColorBlendEnableEXT, NegativeShaderObject.MissingCmdSetColorBlendEnableEXTForActiveAttachmentexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDraw-rasterizerDiscardEnable-09418YNegativeShaderObject.MissingCmdSetColorBlendEquationEXTexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDraw-rasterizerDiscardEnable-09419YNegativeShaderObject.MissingCmdSetColorWriteMaskEXT, NegativeShaderObject.MissingCmdSetColorWriteMaskEXTActiveAttachmentsexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDraw-rasterizerDiscardEnable-09420YNegativeShaderObject.CoverageToColorInvalidFormatexplicitvkCmdDrawcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDraw-reductionMode-09213NNoneexplicitvkCmdDrawcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDraw-renderPass-02684YNegativeMultiview.DrawWithPipelineIncompatibleWithRenderPass, NegativeRenderPass.DrawWithPipelineIncompatibleWithRenderPass, NegativeRenderPass.DrawWithPipelineIncompatibleWithRenderPassFragmentDensityMap, NegativeRenderPass.IncompatibleRenderPassSubpassFlagsexplicitvkCmdDrawcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDraw-renderPass-06198YNegativeDynamicRendering.PipelineexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDraw-renderpassYNegativeCommand.DrawOutsideRenderPass, NegativeShaderObject.DrawWithShadersOutsideRenderPassimplicitvkCmdDrawcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDraw-sampleLocationsEnable-02689YNegativeDynamicState.SampleLocationsexplicitvkCmdDrawcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDraw-sampleLocationsEnable-07484YNegativeDynamicState.DynamicSampleLocationsEnableexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDraw-sampleLocationsEnable-07485YNegativeDynamicState.DynamicSampleLocationsGridSizeexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDraw-sampleLocationsEnable-07486YNegativeDynamicState.DynamicSampleLocationsGridSizeexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDraw-sampleLocationsEnable-07487YNegativeDynamicState.InterpolateAtSampleexplicitvkCmdDrawcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDraw-sampleLocationsEnable-07936YNegativeDynamicState.SampleLocationsEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDraw-sampleLocationsEnable-07937YNegativeDynamicState.SampleLocationsEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDraw-sampleLocationsEnable-07938YNegativeDynamicState.SampleLocationsEnableexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDraw-sampleLocationsPerPixel-07482YNegativeDynamicState.SampleLocationsSamplesMismatchexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDraw-sampleLocationsPerPixel-07483YNegativeDynamicState.DynamicSampleLocationsRasterizationSamplesMismatchexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDraw-samples-07472YNegativeDynamicState.InvalidSampleMaskSamplesexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDraw-samples-07473YNegativeDynamicState.InvalidSampleMaskSamplesexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDraw-scissorCount-03418YNegativeDynamicState.ExtendedDynamicStateViewportScissorDrawexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDraw-selectableCubicWeights-09214NNoneexplicitvkCmdDrawcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDraw-shadingRateImage-09233YNegativeShaderObject.MissingCmdSetCoarseSampleOrderNVexplicitvkCmdDrawcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-shadingRateImage-09234YNegativeShaderObject.MissingCmdSetViewportShadingRatePaletteNVexplicitvkCmdDrawcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-04475NNoneexplicitvkCmdDrawcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-stage-06481YNegativeMesh.DrawCmdsexplicitvkCmdDrawcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDraw-stage-07073YNegativeQuery.InvalidMeshQueryAtDrawexplicitvkCmdDrawcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDraw-stippledLineEnable-07495YNegativeDynamicState.RasterizationLineModeRectangularexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07496YNegativeDynamicState.RasterizationLineModeBresenhamexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07497YNegativeDynamicState.RasterizationLineModeSmoothexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07498YNegativeDynamicState.RasterizationLineModeDefaultexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDraw-storageBuffers-06936NNoneexplicitvkCmdDrawcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-subpass-02685YNegativeSubpass.PipelineSubpassIndex, NegativeSyncVal.RenderPassAsyncHazardexplicitvkCmdDrawcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDraw-uniformBuffers-06935NNoneexplicitvkCmdDrawcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-videocodingYNoneimplicitvkCmdDrawcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDraw-viewMask-06178YNegativeDynamicRendering.MismatchingViewMaskexplicitvkCmdDrawcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDraw-viewType-07752YNegativeCommand.DrawTimeImageViewTypeMismatchWithPipeline, NegativeCommand.DrawTimeImageViewTypeMismatchWithPipelineFunction, NegativeGpuAVDescriptorIndexing.UpdateAfterBindImageViewTypeMismatchexplicitvkCmdDrawcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDraw-viewportCount-03417YNegativeDynamicState.ExtendedDynamicStateViewportScissorDrawexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDraw-viewportCount-03419YNegativeDynamicState.ExtendedDynamicStateViewportScissorDraw, NegativeDynamicState.MissingScissorWithCountexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDraw-viewportCount-04137NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-viewportCount-04138NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-viewportCount-04139NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-viewportCount-04140NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-viewportCount-07492NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-viewportCount-07493NNoneexplicitvkCmdDrawcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-viewportCount-09421YNegativeShaderObject.InvalidViewportSwizzleCountexplicitvkCmdDrawcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-ClusterCullingHUAWEI-07823NNoneexplicitvkCmdDrawClusterHUAWEIcoreThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI Execution Model.
VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawClusterHUAWEI-None-02691NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawClusterHUAWEI-None-02692NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-02693NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawClusterHUAWEI-None-04876NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-04877NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-06479NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawClusterHUAWEI-None-06537NNoneexplicitvkCmdDrawClusterHUAWEIcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawClusterHUAWEI-None-06539NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawClusterHUAWEI-None-06550NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawClusterHUAWEI-None-06666NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-06886NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawClusterHUAWEI-None-06887NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawClusterHUAWEI-None-07074NNoneexplicitvkCmdDrawClusterHUAWEIcoreTransform Feedback Queries must not be active
VUID-vkCmdDrawClusterHUAWEI-None-07075NNoneexplicitvkCmdDrawClusterHUAWEIcorePrimitives Generated Queries must not be active
VUID-vkCmdDrawClusterHUAWEI-None-07288NNoneexplicitvkCmdDrawClusterHUAWEIcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawClusterHUAWEI-None-07469NNoneexplicitvkCmdDrawClusterHUAWEIcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawClusterHUAWEI-None-07619NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07620NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07621NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07622NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07623NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07624NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07625NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07626NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07627NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07628NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07629NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07630NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07631NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07632NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07633NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07634NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07635NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07636NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07637NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07638NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07639NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07640NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07641NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07642NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07643NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07644NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07645NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07646NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07647NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07648NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07649NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07748NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawClusterHUAWEI-None-07749NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07751NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawClusterHUAWEI-None-07819NNoneexplicitvkCmdDrawClusterHUAWEIcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT, or VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-07831NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07832NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07833NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07834NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07835NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07836NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07837NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07838NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07839NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07840NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07841NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07843NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07844NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07845NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07846NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07847NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07848NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07849NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07850NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07878NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07879NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07880NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07881NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07888NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawClusterHUAWEI-None-08114NNoneexplicitvkCmdDrawClusterHUAWEIcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-08115NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-08116NNoneexplicitvkCmdDrawClusterHUAWEIcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-08117NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-08119NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawClusterHUAWEI-None-08600NNoneexplicitvkCmdDrawClusterHUAWEIcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawClusterHUAWEI-None-08601NNoneexplicitvkCmdDrawClusterHUAWEIcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawClusterHUAWEI-None-08604NNoneexplicitvkCmdDrawClusterHUAWEIcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawClusterHUAWEI-None-08605NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawClusterHUAWEI-None-08606NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawClusterHUAWEI-None-08607NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawClusterHUAWEI-None-08608NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawClusterHUAWEI-None-08609NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawClusterHUAWEI-None-08610NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawClusterHUAWEI-None-08611NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawClusterHUAWEI-None-08612NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawClusterHUAWEI-None-08613NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawClusterHUAWEI-None-08617NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08618NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08619NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08620NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08621NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08622NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08623NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08624NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08625NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08626NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08627NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08628NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08629NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08630NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08631NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08632NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08633NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08634NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08635NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawClusterHUAWEI-None-08636NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-None-08637NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-None-08638NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08639NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08640NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08641NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawClusterHUAWEI-None-08643NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawClusterHUAWEI-None-08644NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawClusterHUAWEI-None-08646NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08647NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawClusterHUAWEI-None-08648NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08649NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08650NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08651NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08652NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08653NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08654NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08655NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08656NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08657NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08658NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08659NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08660NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08661NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08662NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08663NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08664NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08665NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08666NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08667NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08668NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08669NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08670NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08671NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08672NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08673NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08674NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08675NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08676NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08677NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08678NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08679NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08680NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08681NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08682NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08683NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08684NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawClusterHUAWEI-None-08685NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawClusterHUAWEI-None-08686NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawClusterHUAWEI-None-08687NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawClusterHUAWEI-None-08688NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawClusterHUAWEI-None-08689NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-08690NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-08693NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawClusterHUAWEI-None-08694NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawClusterHUAWEI-None-08695NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawClusterHUAWEI-None-08696NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawClusterHUAWEI-None-08698NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawClusterHUAWEI-None-08699NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawClusterHUAWEI-None-08876NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawClusterHUAWEI-None-08877NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08878NNoneexplicitvkCmdDrawClusterHUAWEIcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawClusterHUAWEI-None-08879NNoneexplicitvkCmdDrawClusterHUAWEIcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawClusterHUAWEI-None-08880NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-09000NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawClusterHUAWEI-None-09001NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawClusterHUAWEI-None-09002NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawClusterHUAWEI-None-09003NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawClusterHUAWEI-None-09116NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawClusterHUAWEI-None-09211NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawClusterHUAWEI-None-09232NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-09237NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-09363NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawClusterHUAWEI-None-09364NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-09365NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-09366NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-09368NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-09369NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawClusterHUAWEI-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-04469NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08795NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08796NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07027NNoneexplicitvkCmdDrawClusterHUAWEIcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07028NNoneexplicitvkCmdDrawClusterHUAWEIcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07029NNoneexplicitvkCmdDrawClusterHUAWEIcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07030NNoneexplicitvkCmdDrawClusterHUAWEIcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07468NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawClusterHUAWEI-SampledType-04470NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawClusterHUAWEI-SampledType-04471NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawClusterHUAWEI-SampledType-04472NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawClusterHUAWEI-SampledType-04473NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-advancedBlendMaxColorAttachments-07480NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08919NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08920NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawClusterHUAWEI-attachmentCount-07750NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawClusterHUAWEI-blendEnable-04727NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06179NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06185NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09362NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09372NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawClusterHUAWEI-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawClusterHUAWEIcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdDrawClusterHUAWEIcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawClusterHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdDrawClusterHUAWEIcorecommandBuffer must be in the recording state
VUID-vkCmdDrawClusterHUAWEI-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawClusterHUAWEI-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawClusterHUAWEI-coverageReductionMode-07491NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawClusterHUAWEI-coverageToColorEnable-07490NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawClusterHUAWEI-cubicRangeClamp-09212NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08910NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08913NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08914NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08915NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08916NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08917NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08918NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-exclusiveScissor-09235NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-filterCubic-02694NNoneexplicitvkCmdDrawClusterHUAWEIcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawClusterHUAWEI-filterCubicMinmax-02695NNoneexplicitvkCmdDrawClusterHUAWEIcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07476NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07477NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07478NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07479NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawClusterHUAWEI-flags-02696NNoneexplicitvkCmdDrawClusterHUAWEIcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawClusterHUAWEI-format-07753NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawClusterHUAWEI-groupCountX-07820NNoneexplicitvkCmdDrawClusterHUAWEIcoregroupCountX must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[0]
VUID-vkCmdDrawClusterHUAWEI-groupCountY-07821NNoneexplicitvkCmdDrawClusterHUAWEIcoregroupCountY must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[1]
VUID-vkCmdDrawClusterHUAWEI-groupCountZ-07822NNoneexplicitvkCmdDrawClusterHUAWEIcoregroupCountZ must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[2]
VUID-vkCmdDrawClusterHUAWEI-imageView-06172NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawClusterHUAWEI-imageView-06173NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawClusterHUAWEI-imageView-06174NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawClusterHUAWEI-imageView-06175NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawClusterHUAWEI-imageView-06176NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawClusterHUAWEI-imageView-06177NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawClusterHUAWEI-imageView-06183NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawClusterHUAWEI-imageView-06184NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-logicOp-04878NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawClusterHUAWEI-magFilter-04553NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawClusterHUAWEI-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawClusterHUAWEI-maxMultiviewInstanceIndex-02688NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawClusterHUAWEI-mipmapMode-04770NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07285NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07286NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07287NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawClusterHUAWEI-pColorAttachments-08963NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-pColorBlendEnables-07470NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-06186NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-08964NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08716NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09370NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09371NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-pNext-07935NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-06187NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-08965NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterHUAWEI-pipelineFragmentShadingRate-09238NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-pipelineStatistics-07076NNoneexplicitvkCmdDrawClusterHUAWEIcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-08642NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07471NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07474NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07489NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07494NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-09367NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09236NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09416NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09417NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09418NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09419NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09420NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawClusterHUAWEI-reductionMode-09213NNoneexplicitvkCmdDrawClusterHUAWEIcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawClusterHUAWEI-renderPass-02684NNoneexplicitvkCmdDrawClusterHUAWEIcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawClusterHUAWEI-renderPass-06198NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawClusterHUAWEI-renderpassYNoneimplicitvkCmdDrawClusterHUAWEIcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-02689NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07484NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07485NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07486NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07487NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07936NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07937NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07938NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterHUAWEI-samples-07472NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawClusterHUAWEI-samples-07473NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterHUAWEI-scissorCount-03418NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawClusterHUAWEI-selectableCubicWeights-09214NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09233NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawClusterHUAWEI-stage-06480NNoneexplicitvkCmdDrawClusterHUAWEIcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawClusterHUAWEI-stage-07073NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07495NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07496NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07497NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07498NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawClusterHUAWEI-storageBuffers-06936NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawClusterHUAWEI-subpass-02685NNoneexplicitvkCmdDrawClusterHUAWEIcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawClusterHUAWEI-uniformBuffers-06935NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawClusterHUAWEI-videocodingYNoneimplicitvkCmdDrawClusterHUAWEIcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawClusterHUAWEI-viewMask-06178NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawClusterHUAWEI-viewType-07752NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawClusterHUAWEI-viewportCount-03417NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawClusterHUAWEI-viewportCount-03419NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawClusterHUAWEI-viewportCount-04137NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-viewportCount-04138NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-viewportCount-04139NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-viewportCount-04140NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-viewportCount-07492NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-viewportCount-07493NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterHUAWEI-viewportCount-09421NNoneexplicitvkCmdDrawClusterHUAWEIcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-ClusterCullingHUAWEI-07824NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI Execution Model.
VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-02692NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-02693NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawClusterIndirectHUAWEI-None-04876NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06479NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06537NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06887NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07074NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreTransform Feedback Queries must not be active
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07075NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcorePrimitives Generated Queries must not be active
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07288NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07469NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07619NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07620NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07621NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07622NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07623NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07624NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07625NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07626NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07627NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07628NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07629NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07630NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07631NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07632NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07633NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07634NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07635NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07636NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07637NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07638NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07639NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07641NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07642NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07643NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07644NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07645NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07646NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07647NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07648NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07649NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07748NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07749NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07751NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07831NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07832NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07833NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07848NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07849NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07850NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07878NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07879NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07880NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07881NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07888NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08114NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08115NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08116NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08117NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08119NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08600NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08604NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08605NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08606NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08608NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08609NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08610NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08611NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08612NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08613NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08617NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08621NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08622NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08623NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08624NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08625NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08626NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08627NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08628NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08629NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08630NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08631NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08632NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08633NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08634NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08635NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08638NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08639NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08640NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08641NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08643NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08644NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08646NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08647NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08648NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08649NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08650NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08651NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08652NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08653NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08654NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08655NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08656NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08657NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08658NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08659NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08660NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08661NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08662NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08663NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08664NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08665NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08666NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08667NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08668NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08669NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08670NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08671NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08673NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08674NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08675NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08676NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08677NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08678NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08679NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08680NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08681NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08682NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08683NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08684NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08685NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08686NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08687NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08688NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08689NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08690NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08693NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08694NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08695NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08696NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08698NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08699NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08877NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09000NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09001NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09002NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09003NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09116NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09211NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09232NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09237NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09363NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09364NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09365NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09366NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09368NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09369NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-04469NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08795NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08796NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07027NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07028NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07029NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07030NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07468NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04470NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04471NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04472NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04473NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-advancedBlendMaxColorAttachments-07480NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08919NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08920NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawClusterIndirectHUAWEI-attachmentCount-07750NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-blendEnable-04727NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawClusterIndirectHUAWEI-buffer-parameterYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06179NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06185NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09362NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09372NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcorecommandBuffer must be in the recording state
VUID-vkCmdDrawClusterIndirectHUAWEI-commonparentYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawClusterIndirectHUAWEI-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawClusterIndirectHUAWEI-coverageReductionMode-07491NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawClusterIndirectHUAWEI-coverageToColorEnable-07490NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawClusterIndirectHUAWEI-cubicRangeClamp-09212NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02718NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02719NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoredrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08910NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08913NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08914NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08915NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08916NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08917NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08918NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-exclusiveScissor-09235NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubic-02694NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubicMinmax-02695NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07476NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07477NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07478NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07479NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-flags-02696NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawClusterIndirectHUAWEI-format-07753NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06172NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06173NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06174NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06175NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06176NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06177NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06183NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06184NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-logicOp-04878NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawClusterIndirectHUAWEI-magFilter-04553NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawClusterIndirectHUAWEI-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawClusterIndirectHUAWEI-maxMultiviewInstanceIndex-02688NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawClusterIndirectHUAWEI-mipmapMode-04770NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07285NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07286NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07287NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawClusterIndirectHUAWEI-offset-07918NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreoffset must be a multiple of VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::indirectBufferOffsetAlignment
VUID-vkCmdDrawClusterIndirectHUAWEI-pColorAttachments-08963NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-pColorBlendEnables-07470NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-06186NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-08964NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08716NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09370NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09371NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-pNext-07935NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-06187NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-08965NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineFragmentShadingRate-09238NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineStatistics-07076NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-08642NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07471NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07474NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07489NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07494NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-09367NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09236NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09416NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09417NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09418NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09419NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09420NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawClusterIndirectHUAWEI-reductionMode-09213NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-02684NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-06198NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawClusterIndirectHUAWEI-renderpassYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-02689NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07484NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07485NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07486NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07487NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07936NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07937NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07938NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07472NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07473NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterIndirectHUAWEI-scissorCount-03418NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-selectableCubicWeights-09214NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09233NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-stage-06480NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-stage-07073NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07495NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07496NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07497NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07498NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawClusterIndirectHUAWEI-storageBuffers-06936NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawClusterIndirectHUAWEI-subpass-02685NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawClusterIndirectHUAWEI-uniformBuffers-06935NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawClusterIndirectHUAWEI-videocodingYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawClusterIndirectHUAWEI-viewMask-06178NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawClusterIndirectHUAWEI-viewType-07752NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03417NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03419NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04137NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04138NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04139NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04140NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07492NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07493NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-09421NNoneexplicitvkCmdDrawClusterIndirectHUAWEIcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-ConstOffset-06551YNoneexplicitvkCmdDrawIndexedcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndexed-Input-07939YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawIndexed-Input-08734NNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndexed-None-02691YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndexed-None-02692YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawIndexed-None-02693YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawIndexed-None-02721YNoneexplicitvkCmdDrawIndexedcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndexed-None-04007YNoneexplicitvkCmdDrawIndexedcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndexed-None-04008YNoneexplicitvkCmdDrawIndexedcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDrawIndexed-None-04875YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04876YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04877YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04879YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04912YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexed-None-04914YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexed-None-06479YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndexed-None-06537YNoneexplicitvkCmdDrawIndexedcoreMemory 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-06539YNoneexplicitvkCmdDrawIndexedcoreIf 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-06550YNoneexplicitvkCmdDrawIndexedcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndexed-None-06666YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-06886YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndexed-None-06887YNoneexplicitvkCmdDrawIndexedcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndexed-None-07288NNoneexplicitvkCmdDrawIndexedcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexed-None-07312YNegativeCommand.IndexBufferNotBound, NegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpassexplicitvkCmdDrawIndexedcoreIf maintenance6 is not enabled, a valid index buffer must be bound
VUID-vkCmdDrawIndexed-None-07469NNoneexplicitvkCmdDrawIndexedcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndexed-None-07619YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07620YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07621YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07622YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07623YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07624YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07625YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07626YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07627YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07628YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07629YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07630YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07631YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07632YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07633YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07634YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07635YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07636YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07637YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07638YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07639YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07640YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07641YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07642YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07643YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07644YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07645YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07646YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07647YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07648YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07649YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07748NNoneexplicitvkCmdDrawIndexedcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexed-None-07749YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07751YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndexed-None-07831YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07832YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07833YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07834YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07835YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07836YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07837YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07838YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07839YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07840YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07841YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07842YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07843YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07844YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07845YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07846YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07847YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07848YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07849YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07850YNoneexplicitvkCmdDrawIndexedcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07878YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07879YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07880YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07881YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07888YNoneexplicitvkCmdDrawIndexedcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawIndexed-None-08114YNoneexplicitvkCmdDrawIndexedcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexed-None-08115YNoneexplicitvkCmdDrawIndexedcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexed-None-08116NNoneexplicitvkCmdDrawIndexedcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexed-None-08117YNoneexplicitvkCmdDrawIndexedcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexed-None-08119NNoneexplicitvkCmdDrawIndexedcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndexed-None-08600YNoneexplicitvkCmdDrawIndexedcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexed-None-08601NNoneexplicitvkCmdDrawIndexedcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexed-None-08604NNoneexplicitvkCmdDrawIndexedcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndexed-None-08605NNoneexplicitvkCmdDrawIndexedcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndexed-None-08606YNegativePipeline.BadPipelineObjectexplicitvkCmdDrawIndexedcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexed-None-08607YNoneexplicitvkCmdDrawIndexedcoreIf the 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 VK_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-08608YNoneexplicitvkCmdDrawIndexedcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexed-None-08609YNoneexplicitvkCmdDrawIndexedcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawIndexed-None-08610YNoneexplicitvkCmdDrawIndexedcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-08611YNoneexplicitvkCmdDrawIndexedcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawIndexed-None-08612YNoneexplicitvkCmdDrawIndexedcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08613YNoneexplicitvkCmdDrawIndexedcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08617YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08618YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08619YNoneexplicitvkCmdDrawIndexedcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08620YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08621YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08622YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08623YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08624YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08625YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08626YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08627YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08628YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08629YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08630YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08631YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08632YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08633YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08634YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08635YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndexed-None-08636YNoneexplicitvkCmdDrawIndexedcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-None-08637YNoneexplicitvkCmdDrawIndexedcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-None-08638YNoneexplicitvkCmdDrawIndexedcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08639YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08640YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08641YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexed-None-08643YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawIndexed-None-08644YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT 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-08646YNoneexplicitvkCmdDrawIndexedcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08647YNoneexplicitvkCmdDrawIndexedcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT 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-08648YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08649YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08650YNoneexplicitvkCmdDrawIndexedcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08651YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08652YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08653YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08654YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08655YNoneexplicitvkCmdDrawIndexedcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08656YNoneexplicitvkCmdDrawIndexedcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08657YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08658YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08659YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08660YNoneexplicitvkCmdDrawIndexedcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08661YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08662YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08663YNoneexplicitvkCmdDrawIndexedcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08664YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08665YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08666YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08667YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08668YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08669YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08670YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08671YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08672YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08673YNoneexplicitvkCmdDrawIndexedcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08674YNoneexplicitvkCmdDrawIndexedcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08675YNoneexplicitvkCmdDrawIndexedcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08676YNoneexplicitvkCmdDrawIndexedcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08677YNoneexplicitvkCmdDrawIndexedcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08678YNoneexplicitvkCmdDrawIndexedcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08679YNoneexplicitvkCmdDrawIndexedcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08680YNoneexplicitvkCmdDrawIndexedcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08681YNoneexplicitvkCmdDrawIndexedcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08682YNoneexplicitvkCmdDrawIndexedcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08683YNoneexplicitvkCmdDrawIndexedcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08684YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawIndexed-None-08685YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawIndexed-None-08686YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawIndexed-None-08687YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawIndexed-None-08688YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawIndexed-None-08689YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawIndexed-None-08690YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndexed-None-08693YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawIndexed-None-08694YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndexed-None-08695YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndexed-None-08696YNoneexplicitvkCmdDrawIndexedcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawIndexed-None-08698YNoneexplicitvkCmdDrawIndexedcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawIndexed-None-08699YNoneexplicitvkCmdDrawIndexedcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawIndexed-None-08876YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndexed-None-08877YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08878YNoneexplicitvkCmdDrawIndexedcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndexed-None-08879YNoneexplicitvkCmdDrawIndexedcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndexed-None-08880YNoneexplicitvkCmdDrawIndexedcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08885YNoneexplicitvkCmdDrawIndexedcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDrawIndexed-None-09000YNoneexplicitvkCmdDrawIndexedcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09001YNoneexplicitvkCmdDrawIndexedcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09002YNoneexplicitvkCmdDrawIndexedcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09003YNoneexplicitvkCmdDrawIndexedcoreIf 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-09116YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawIndexed-None-09203YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawIndexed-None-09232YNoneexplicitvkCmdDrawIndexedcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-09237YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-09363YNoneexplicitvkCmdDrawIndexedcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-None-09364YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndexed-None-09365YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndexed-None-09366YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndexed-None-09368YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndexed-None-09369YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndexed-None-09462YNoneexplicitvkCmdDrawIndexedcoreIf shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexedcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawIndexedcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndexedcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawIndexedcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawIndexedcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawIndexedcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndexedcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawIndexedcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawIndexedcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawIndexedcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawIndexedcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageWrite-04469YNoneexplicitvkCmdDrawIndexedcoreIf a VkBufferView 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-OpImageWrite-08795YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView created with a format other than VK_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-08796YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView created with the format VK_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-OpTypeImage-07027YNoneexplicitvkCmdDrawIndexedcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexed-OpTypeImage-07028YNoneexplicitvkCmdDrawIndexedcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexed-OpTypeImage-07029YNoneexplicitvkCmdDrawIndexedcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexed-OpTypeImage-07030YNoneexplicitvkCmdDrawIndexedcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexed-OpTypeImage-07468NNoneexplicitvkCmdDrawIndexedcoreIf 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-SampledType-04470YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView with a VkFormat 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-04471YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView with a VkFormat 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-04472YNoneexplicitvkCmdDrawIndexedcoreIf a VkBufferView with a VkFormat 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-04473YNoneexplicitvkCmdDrawIndexedcoreIf a VkBufferView with a VkFormat 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-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndexed-attachmentCount-07750YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-blendEnable-04727YNoneexplicitvkCmdDrawIndexedcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndexed-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndexedcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawIndexed-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndexedcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-colorAttachmentCount-09362YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-colorAttachmentCount-09372YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawIndexed-commandBuffer-02707YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdDrawIndexedcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawIndexed-commandBuffer-02712YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdDrawIndexedcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource
VUID-vkCmdDrawIndexed-commandBuffer-02713NNoneexplicitvkCmdDrawIndexedcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource
VUID-vkCmdDrawIndexed-commandBuffer-04617NNoneexplicitvkCmdDrawIndexedcoreIf any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndexed-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndexedcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexed-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexed-commandBuffer-recordingYNoneimplicitvkCmdDrawIndexedcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawIndexed-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawIndexed-coverageReductionMode-07491NNoneexplicitvkCmdDrawIndexedcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawIndexed-coverageToColorEnable-07490NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndexed-cubicRangeClamp-09212NNoneexplicitvkCmdDrawIndexedcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawIndexed-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawIndexedcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawIndexedcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawIndexedcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawIndexedcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawIndexedcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-exclusiveScissor-09235YNoneexplicitvkCmdDrawIndexedcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-filterCubic-02694YNoneexplicitvkCmdDrawIndexedcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndexed-filterCubicMinmax-02695YNoneexplicitvkCmdDrawIndexedcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndexed-firstAttachment-07476YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndexed-firstAttachment-07477YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexed-firstAttachment-07478YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndexed-firstAttachment-07479YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexed-flags-02696YNoneexplicitvkCmdDrawIndexedcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndexed-format-07753YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawIndexed-format-08936YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawIndexed-imageView-06172NNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexed-imageView-06173NNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexed-imageView-06174NNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexed-imageView-06175NNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexed-imageView-06176NNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexed-imageView-06177NNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexed-imageView-06183YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawIndexed-imageView-06184YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawIndexed-logicOp-04878YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexed-magFilter-04553YNoneexplicitvkCmdDrawIndexedcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexed-maintenance4-08602YNoneexplicitvkCmdDrawIndexedcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexed-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawIndexedcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndexedcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndexed-mipmapMode-04770YNoneexplicitvkCmdDrawIndexedcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexedcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndexedcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_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-07286YNoneexplicitvkCmdDrawIndexedcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndexedcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexed-pColorAttachments-08963YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-pColorBlendEnables-07470YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawIndexed-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexed-pDepthAttachment-08964YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-pDynamicStates-08715YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawIndexed-pDynamicStates-08716YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawIndexed-pFragmentSize-09370YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndexed-pFragmentSize-09371YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndexed-pNext-07935YNoneexplicitvkCmdDrawIndexedcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawIndexed-pNext-09461YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawIndexed-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexed-pStencilAttachment-08965YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-pStrides-04913YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndexedcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexedcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawIndexedcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndexedcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawIndexedcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawIndexedcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawIndexed-rasterizationSamples-07471YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawIndexed-rasterizationSamples-07474YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexed-rasterizationSamples-07489NNoneexplicitvkCmdDrawIndexedcoreIf 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-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndexedcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndexed-rasterizationSamples-09367YNoneexplicitvkCmdDrawIndexedcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndexedcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawIndexedcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndexed-reductionMode-09213NNoneexplicitvkCmdDrawIndexedcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawIndexed-renderPass-02684YNoneexplicitvkCmdDrawIndexedcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexed-renderPass-06198YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndexed-renderpassYNoneimplicitvkCmdDrawIndexedcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexed-robustBufferAccess2-07825YNegativeCommand.IndexBufferSizeOffsetexplicitvkCmdDrawIndexedcoreIf 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 vkCmdBindIndexBuffer
VUID-vkCmdDrawIndexed-robustBufferAccess2-08798NNoneexplicitvkCmdDrawIndexedcoreIf 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 vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size
VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawIndexedcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexed-samples-07472YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawIndexed-samples-07473YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexed-scissorCount-03418YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawIndexed-selectableCubicWeights-09214NNoneexplicitvkCmdDrawIndexedcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawIndexed-shadingRateImage-09233YNoneexplicitvkCmdDrawIndexedcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-shadingRateImage-09234YNoneexplicitvkCmdDrawIndexedcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndexedcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-04475NNoneexplicitvkCmdDrawIndexedcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-stage-06481YNoneexplicitvkCmdDrawIndexedcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndexed-stage-07073YNoneexplicitvkCmdDrawIndexedcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawIndexed-stippledLineEnable-07495YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexed-storageBuffers-06936NNoneexplicitvkCmdDrawIndexedcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-subpass-02685YNoneexplicitvkCmdDrawIndexedcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexed-uniformBuffers-06935NNoneexplicitvkCmdDrawIndexedcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-videocodingYNoneimplicitvkCmdDrawIndexedcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexed-viewMask-06178YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndexed-viewType-07752YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndexed-viewportCount-03417YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawIndexed-viewportCount-03419YNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndexed-viewportCount-04137NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-viewportCount-04138NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-viewportCount-04139NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-viewportCount-04140NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-viewportCount-07492NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-viewportCount-07493NNoneexplicitvkCmdDrawIndexedcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-viewportCount-09421YNoneexplicitvkCmdDrawIndexedcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndexedIndirect-Input-07939YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawIndexedIndirect-Input-08734NNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndexedIndirect-None-02691YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndexedIndirect-None-02692YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-None-02693YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawIndexedIndirect-None-02721YNoneexplicitvkCmdDrawIndexedIndirectcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndexedIndirect-None-04007YNoneexplicitvkCmdDrawIndexedIndirectcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndexedIndirect-None-04008YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDrawIndexedIndirect-None-04875YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04876YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04877YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04879YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04912YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirect-None-04914YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirect-None-06479YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndexedIndirect-None-06537YNoneexplicitvkCmdDrawIndexedIndirectcoreMemory 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-06539YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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-06550YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndexedIndirect-None-06666YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-06886YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndexedIndirect-None-06887YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndexedIndirect-None-07288NNoneexplicitvkCmdDrawIndexedIndirectcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexedIndirect-None-07312YNoneexplicitvkCmdDrawIndexedIndirectcoreIf maintenance6 is not enabled, a valid index buffer must be bound
VUID-vkCmdDrawIndexedIndirect-None-07469NNoneexplicitvkCmdDrawIndexedIndirectcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndexedIndirect-None-07619YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07620YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07621YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07622YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07623YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07624YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07625YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07626YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07627YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07628YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07629YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07630YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07631YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07632YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07633YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07634YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07635YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07636YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07637YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07638YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07639YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07640YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07641YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07642YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07643YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07644YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07645YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07646YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07647YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07648YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07649YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07748NNoneexplicitvkCmdDrawIndexedIndirectcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexedIndirect-None-07749YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07751YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndexedIndirect-None-07831YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07832YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07833YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07834YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07835YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07836YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07837YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07838YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07839YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07840YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07841YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07842YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07843YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07844YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07845YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07846YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07847YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07848YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07849YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07850YNoneexplicitvkCmdDrawIndexedIndirectcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07878YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07879YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07880YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07881YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07888YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawIndexedIndirect-None-08114YNoneexplicitvkCmdDrawIndexedIndirectcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-None-08115YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-None-08116NNoneexplicitvkCmdDrawIndexedIndirectcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-None-08117YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-None-08119NNoneexplicitvkCmdDrawIndexedIndirectcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndexedIndirect-None-08600YNoneexplicitvkCmdDrawIndexedIndirectcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirect-None-08601NNoneexplicitvkCmdDrawIndexedIndirectcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirect-None-08604NNoneexplicitvkCmdDrawIndexedIndirectcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirect-None-08605NNoneexplicitvkCmdDrawIndexedIndirectcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndexedIndirect-None-08606YNegativePipeline.BadPipelineObjectexplicitvkCmdDrawIndexedIndirectcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirect-None-08607YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the 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 VK_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-08608YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexedIndirect-None-08609YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawIndexedIndirect-None-08610YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-08611YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawIndexedIndirect-None-08612YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08613YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08617YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08618YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08619YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08620YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08621YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08622YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08623YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08624YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08625YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08626YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08627YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08628YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08629YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08630YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08631YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08632YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08633YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08634YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08635YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndexedIndirect-None-08636YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-None-08637YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-None-08638YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08639YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08640YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08641YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexedIndirect-None-08643YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawIndexedIndirect-None-08644YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT 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-08646YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08647YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT 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-08648YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08649YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08650YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08651YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08652YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08653YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08654YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08655YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08656YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08657YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08658YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08659YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08660YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08661YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08662YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08663YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08664YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08665YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08666YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08667YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08668YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08669YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08670YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08671YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08672YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08673YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08674YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08675YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08676YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08677YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08678YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08679YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08680YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08681YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08682YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08683YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08684YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawIndexedIndirect-None-08685YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawIndexedIndirect-None-08686YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawIndexedIndirect-None-08687YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawIndexedIndirect-None-08688YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawIndexedIndirect-None-08689YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-None-08690YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-None-08693YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawIndexedIndirect-None-08694YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndexedIndirect-None-08695YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndexedIndirect-None-08696YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawIndexedIndirect-None-08698YNoneexplicitvkCmdDrawIndexedIndirectcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawIndexedIndirect-None-08699YNoneexplicitvkCmdDrawIndexedIndirectcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawIndexedIndirect-None-08876YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndexedIndirect-None-08877YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08878YNoneexplicitvkCmdDrawIndexedIndirectcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndexedIndirect-None-08879YNoneexplicitvkCmdDrawIndexedIndirectcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndexedIndirect-None-08880YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08885YNoneexplicitvkCmdDrawIndexedIndirectcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDrawIndexedIndirect-None-09000YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09001YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09002YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09003YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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-09116YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawIndexedIndirect-None-09203YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawIndexedIndirect-None-09232YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-09237YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-09363YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-None-09364YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-09365YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-09366YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-09368YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-09369YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexedIndirectcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawIndexedIndirectcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndexedIndirectcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawIndexedIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawIndexedIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawIndexedIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndexedIndirectcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawIndexedIndirectcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawIndexedIndirectcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawIndexedIndirectcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawIndexedIndirectcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkBufferView 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-OpImageWrite-08795YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView created with a format other than VK_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-08796YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView created with the format VK_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-OpTypeImage-07027YNoneexplicitvkCmdDrawIndexedIndirectcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028YNoneexplicitvkCmdDrawIndexedIndirectcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029YNoneexplicitvkCmdDrawIndexedIndirectcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030YNoneexplicitvkCmdDrawIndexedIndirectcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468NNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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-SampledType-04470YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView with a VkFormat 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-04471YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView with a VkFormat 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-04472YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkBufferView with a VkFormat 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-04473YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkBufferView with a VkFormat 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-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-blendEnable-04727YNoneexplicitvkCmdDrawIndexedIndirectcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndexedIndirect-buffer-02708YNoneexplicitvkCmdDrawIndexedIndirectcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirect-buffer-02709YNoneexplicitvkCmdDrawIndexedIndirectcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirect-buffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707YNoneexplicitvkCmdDrawIndexedIndirectcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711YNegativeProtectedMemory.UnprotectedCommandsexplicitvkCmdDrawIndexedIndirectcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndexedIndirectcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexedIndirect-commandBuffer-recordingYNoneimplicitvkCmdDrawIndexedIndirectcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndexedIndirect-commonparentYNoneimplicitvkCmdDrawIndexedIndirectcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawIndexedIndirect-coverageReductionMode-07491NNoneexplicitvkCmdDrawIndexedIndirectcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndexedIndirect-cubicRangeClamp-09212NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawIndexedIndirect-drawCount-00528YNegativeCommand.StrideMultiDrawIndirectexplicitvkCmdDrawIndexedIndirectcoreIf drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)
VUID-vkCmdDrawIndexedIndirect-drawCount-00539YNegativeCommand.StrideMultiDrawIndirectexplicitvkCmdDrawIndexedIndirectcoreIf drawCount is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirect-drawCount-00540YNegativeCommand.IndirectDraw, NegativeCommand.StrideMultiDrawIndirectexplicitvkCmdDrawIndexedIndirectcoreIf drawCount is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirect-drawCount-02718YNegativeCommand.MultiDrawIndirectFeatureexplicitvkCmdDrawIndexedIndirectcoreIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawIndexedIndirect-drawCount-02719YNoneexplicitvkCmdDrawIndexedIndirectcoredrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawIndexedIndirectcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawIndexedIndirectcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-exclusiveScissor-09235YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-filterCubic-02694YNoneexplicitvkCmdDrawIndexedIndirectcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695YNoneexplicitvkCmdDrawIndexedIndirectcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndexedIndirect-firstAttachment-07477YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexedIndirect-flags-02696YNoneexplicitvkCmdDrawIndexedIndirectcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndexedIndirect-format-07753YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawIndexedIndirect-format-08936YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawIndexedIndirect-imageView-06172NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexedIndirect-imageView-06173NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexedIndirect-imageView-06174NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexedIndirect-imageView-06175NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexedIndirect-imageView-06176NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexedIndirect-imageView-06177NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexedIndirect-imageView-06183YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawIndexedIndirect-imageView-06184YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-logicOp-04878YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexedIndirect-magFilter-04553YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexedIndirect-maintenance4-08602YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirect-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawIndexedIndirectcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexedIndirectcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_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-07286YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-offset-02710YNegativeCommand.IndirectDrawexplicitvkCmdDrawIndexedIndirectcoreoffset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08716YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-pNext-07935YNoneexplicitvkCmdDrawIndexedIndirectcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-pStrides-04913YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07489NNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367YNoneexplicitvkCmdDrawIndexedIndirectcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndexedIndirect-reductionMode-09213NNoneexplicitvkCmdDrawIndexedIndirectcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawIndexedIndirect-renderPass-02684YNoneexplicitvkCmdDrawIndexedIndirectcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexedIndirect-renderPass-06198YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndexedIndirect-renderpassYNoneimplicitvkCmdDrawIndexedIndirectcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexedIndirect-robustBufferAccess2-07825NNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 vkCmdBindIndexBuffer
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirect-samples-07472YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-samples-07473YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirect-scissorCount-03418YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawIndexedIndirect-selectableCubicWeights-09214NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-04475NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-stage-06481YNoneexplicitvkCmdDrawIndexedIndirectcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-stage-07073YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07495YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936NNoneexplicitvkCmdDrawIndexedIndirectcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-subpass-02685YNoneexplicitvkCmdDrawIndexedIndirectcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935NNoneexplicitvkCmdDrawIndexedIndirectcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-videocodingYNoneimplicitvkCmdDrawIndexedIndirectcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexedIndirect-viewMask-06178YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndexedIndirect-viewType-07752YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndexedIndirect-viewportCount-03417YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawIndexedIndirect-viewportCount-03419YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-04137NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-04138NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-04139NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-04140NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-07492NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-07493NNoneexplicitvkCmdDrawIndexedIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-09421YNoneexplicitvkCmdDrawIndexedIndirectcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndexedIndirectCount-Input-07939YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawIndexedIndirectCount-Input-08734NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndexedIndirectCount-None-02691YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndexedIndirectCount-None-02692YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-None-02693YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawIndexedIndirectCount-None-02721YNoneexplicitvkCmdDrawIndexedIndirectCountcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndexedIndirectCount-None-04007YNoneexplicitvkCmdDrawIndexedIndirectCountcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndexedIndirectCount-None-04008YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDrawIndexedIndirectCount-None-04445YNegativeCommand.DrawIndirectCountFeatureexplicitvkCmdDrawIndexedIndirectCountcoreIf drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawIndexedIndirectCount-None-04875YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04876YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04877YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04879YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04912YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirectCount-None-04914YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirectCount-None-06479YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndexedIndirectCount-None-06537YNoneexplicitvkCmdDrawIndexedIndirectCountcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndexedIndirectCount-None-06539YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndexedIndirectCount-None-06550YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndexedIndirectCount-None-06666YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-06886YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndexedIndirectCount-None-06887YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndexedIndirectCount-None-07288NNoneexplicitvkCmdDrawIndexedIndirectCountcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexedIndirectCount-None-07312YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcoreIf maintenance6 is not enabled, a valid index buffer must be bound
VUID-vkCmdDrawIndexedIndirectCount-None-07469NNoneexplicitvkCmdDrawIndexedIndirectCountcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndexedIndirectCount-None-07619YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07620YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07621YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07622YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07623YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07624YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07625YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07626YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07627YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07628YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07629YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07630YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07631YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07632YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07633YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07634YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07635YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07636YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07637YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07638YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07639YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07640YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07641YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07642YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07643YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07644YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07645YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07646YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07647YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07648YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07649YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07748NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexedIndirectCount-None-07749YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07751YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndexedIndirectCount-None-07831YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07832YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07833YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07834YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07835YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07836YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07837YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07838YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07839YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07840YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07841YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07842YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07843YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07844YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07845YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07846YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07847YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07848YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07849YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07850YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07878YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07879YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07880YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07881YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07888YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawIndexedIndirectCount-None-08114YNoneexplicitvkCmdDrawIndexedIndirectCountcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-None-08115YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-None-08116NNoneexplicitvkCmdDrawIndexedIndirectCountcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-None-08117YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-None-08119NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndexedIndirectCount-None-08600YNoneexplicitvkCmdDrawIndexedIndirectCountcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirectCount-None-08601NNoneexplicitvkCmdDrawIndexedIndirectCountcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirectCount-None-08604NNoneexplicitvkCmdDrawIndexedIndirectCountcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirectCount-None-08605NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndexedIndirectCount-None-08606YNegativePipeline.BadPipelineObjectexplicitvkCmdDrawIndexedIndirectCountcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirectCount-None-08607YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirectCount-None-08608YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexedIndirectCount-None-08609YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawIndexedIndirectCount-None-08610YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawIndexedIndirectCount-None-08611YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawIndexedIndirectCount-None-08612YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndexedIndirectCount-None-08613YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndexedIndirectCount-None-08617YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08618YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08619YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08620YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08621YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08622YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08623YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08624YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08625YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08626YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08627YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08628YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08629YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08630YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08631YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08632YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08633YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08634YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08635YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndexedIndirectCount-None-08636YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-None-08637YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-None-08638YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08639YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08640YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08641YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexedIndirectCount-None-08643YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawIndexedIndirectCount-None-08644YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirectCount-None-08646YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08647YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawIndexedIndirectCount-None-08648YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08649YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08650YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08651YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08652YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08653YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08654YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08655YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08656YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08657YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08658YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08659YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08660YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08661YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08662YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08663YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08664YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08665YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08666YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08667YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08668YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08669YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08670YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08671YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08672YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08673YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08674YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08675YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08676YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08677YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08678YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08679YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08680YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08681YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08682YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08683YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08684YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawIndexedIndirectCount-None-08685YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawIndexedIndirectCount-None-08686YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawIndexedIndirectCount-None-08687YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawIndexedIndirectCount-None-08688YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawIndexedIndirectCount-None-08689YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-None-08690YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-None-08693YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawIndexedIndirectCount-None-08694YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndexedIndirectCount-None-08695YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndexedIndirectCount-None-08696YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawIndexedIndirectCount-None-08698YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawIndexedIndirectCount-None-08699YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawIndexedIndirectCount-None-08876YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndexedIndirectCount-None-08877YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08878YNoneexplicitvkCmdDrawIndexedIndirectCountcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndexedIndirectCount-None-08879YNoneexplicitvkCmdDrawIndexedIndirectCountcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndexedIndirectCount-None-08880YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08885YNoneexplicitvkCmdDrawIndexedIndirectCountcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDrawIndexedIndirectCount-None-09000YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndexedIndirectCount-None-09001YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndexedIndirectCount-None-09002YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndexedIndirectCount-None-09003YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawIndexedIndirectCount-None-09116YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawIndexedIndirectCount-None-09203YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawIndexedIndirectCount-None-09232YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-09237YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-09363YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-None-09364YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-09365YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-09366YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-09368YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-09369YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexedIndirectCount-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08795YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08796YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027YNoneexplicitvkCmdDrawIndexedIndirectCountcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028YNoneexplicitvkCmdDrawIndexedIndirectCountcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029YNoneexplicitvkCmdDrawIndexedIndirectCountcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030YNoneexplicitvkCmdDrawIndexedIndirectCountcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07468NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04471YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04472YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04473YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-07750YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndexedIndirectCount-buffer-02708YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirectCount-buffer-02709YNoneexplicitvkCmdDrawIndexedIndirectCountcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirectCount-buffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectCountcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09372YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711YNoneexplicitvkCmdDrawIndexedIndirectCountcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndexedIndirectCountcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectCountcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recordingYNoneimplicitvkCmdDrawIndexedIndirectCountcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndexedIndirectCount-commonparentYNoneimplicitvkCmdDrawIndexedIndirectCountcoreEach of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcoreIf countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcorecountBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717YNegativeGpuAVIndirectBuffer.DrawCountDeviceLimitSubmit2explicitvkCmdDrawIndexedIndirectCountcoreThe count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawIndexedIndirectCountcoreIf count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03154YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawIndexedIndirectCountcoreIf count stored in countBuffer is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectCountcorecountBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcorecountBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcore(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawIndexedIndirectCount-coverageReductionMode-07491NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndexedIndirectCount-cubicRangeClamp-09212NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawIndexedIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-exclusiveScissor-09235YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694YNoneexplicitvkCmdDrawIndexedIndirectCountcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695YNoneexplicitvkCmdDrawIndexedIndirectCountcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07476YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07477YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07478YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07479YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexedIndirectCount-flags-02696YNoneexplicitvkCmdDrawIndexedIndirectCountcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndexedIndirectCount-format-07753YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawIndexedIndirectCount-format-08936YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawIndexedIndirectCount-imageView-06172NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexedIndirectCount-imageView-06173NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexedIndirectCount-imageView-06174NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexedIndirectCount-imageView-06175NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexedIndirectCount-imageView-06176NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndexedIndirectCount-imageView-06177NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndexedIndirectCount-imageView-06183YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawIndexedIndirectCount-imageView-06184YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf maxDrawCount is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirectCount-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-offset-02710YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcoreoffset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirectCount-pColorAttachments-08963YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-08964YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08716YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09370YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09371YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-pNext-07935YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-08965YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexedIndirectCount-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07471YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07489NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-09367YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndexedIndirectCount-reductionMode-09213NNoneexplicitvkCmdDrawIndexedIndirectCountcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684YNoneexplicitvkCmdDrawIndexedIndirectCountcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndexedIndirectCount-renderpassYNoneimplicitvkCmdDrawIndexedIndirectCountcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexedIndirectCount-robustBufferAccess2-07825NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 vkCmdBindIndexBuffer
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirectCount-samples-07472YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-samples-07473YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawIndexedIndirectCount-selectableCubicWeights-09214NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawIndexedIndirectCount-stage-06481YNoneexplicitvkCmdDrawIndexedIndirectCountcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-stage-07073YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07495YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndexedIndirectCount-stride-03142YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcorestride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)
VUID-vkCmdDrawIndexedIndirectCount-subpass-02685YNoneexplicitvkCmdDrawIndexedIndirectCountcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexedIndirectCount-uniformBuffers-06935NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndexedIndirectCount-videocodingYNoneimplicitvkCmdDrawIndexedIndirectCountcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndexedIndirectCount-viewType-07752YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07493NNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-09421YNoneexplicitvkCmdDrawIndexedIndirectCountcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-ConstOffset-06551YNoneexplicitvkCmdDrawIndirectcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndirect-Input-07939YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawIndirect-Input-08734NNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndirect-None-02691YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndirect-None-02692YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawIndirect-None-02693YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawIndirect-None-02721YNoneexplicitvkCmdDrawIndirectcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndirect-None-04007YNoneexplicitvkCmdDrawIndirectcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndirect-None-04008YNoneexplicitvkCmdDrawIndirectcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDrawIndirect-None-04875YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04876YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04877YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04879YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04912YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirect-None-04914YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirect-None-06479YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndirect-None-06537YNoneexplicitvkCmdDrawIndirectcoreMemory 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-06539YNoneexplicitvkCmdDrawIndirectcoreIf 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-06550YNoneexplicitvkCmdDrawIndirectcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndirect-None-06666YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-06886YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndirect-None-06887YNoneexplicitvkCmdDrawIndirectcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndirect-None-07288NNoneexplicitvkCmdDrawIndirectcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirect-None-07469NNoneexplicitvkCmdDrawIndirectcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndirect-None-07619YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07620YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07621YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07622YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07623YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07624YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07625YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07626YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07627YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07628YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07629YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07630YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07631YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07632YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07633YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07634YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07635YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07636YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07637YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07638YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07639YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07640YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07641YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07642YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07643YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07644YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07645YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07646YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07647YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07648YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07649YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07748NNoneexplicitvkCmdDrawIndirectcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirect-None-07749YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07751YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndirect-None-07831YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07832YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07833YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07834YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07835YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07836YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07837YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07838YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07839YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07840YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07841YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07842YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07843YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07844YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07845YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07846YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07847YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07848YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07849YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07850YNoneexplicitvkCmdDrawIndirectcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07878YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07879YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07880YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07881YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07888YNoneexplicitvkCmdDrawIndirectcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawIndirect-None-08114YNoneexplicitvkCmdDrawIndirectcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirect-None-08115YNoneexplicitvkCmdDrawIndirectcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirect-None-08116NNoneexplicitvkCmdDrawIndirectcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirect-None-08117YNoneexplicitvkCmdDrawIndirectcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirect-None-08119NNoneexplicitvkCmdDrawIndirectcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndirect-None-08600YNoneexplicitvkCmdDrawIndirectcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirect-None-08601NNoneexplicitvkCmdDrawIndirectcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirect-None-08604NNoneexplicitvkCmdDrawIndirectcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndirect-None-08605NNoneexplicitvkCmdDrawIndirectcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndirect-None-08606YNegativePipeline.BadPipelineObjectexplicitvkCmdDrawIndirectcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirect-None-08607YNoneexplicitvkCmdDrawIndirectcoreIf the 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 VK_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-08608YNoneexplicitvkCmdDrawIndirectcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirect-None-08609YNoneexplicitvkCmdDrawIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawIndirect-None-08610YNoneexplicitvkCmdDrawIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-08611YNoneexplicitvkCmdDrawIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawIndirect-None-08612YNoneexplicitvkCmdDrawIndirectcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08613YNoneexplicitvkCmdDrawIndirectcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-None-08617YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08618YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08619YNoneexplicitvkCmdDrawIndirectcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08620YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08621YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08622YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08623YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08624YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08625YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08626YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08627YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08628YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08629YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08630YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08631YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08632YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08633YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08634YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08635YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndirect-None-08636YNoneexplicitvkCmdDrawIndirectcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-None-08637YNoneexplicitvkCmdDrawIndirectcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-None-08638YNoneexplicitvkCmdDrawIndirectcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08639YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08640YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08641YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirect-None-08643YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawIndirect-None-08644YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT 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-08646YNoneexplicitvkCmdDrawIndirectcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08647YNoneexplicitvkCmdDrawIndirectcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT 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-08648YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08649YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08650YNoneexplicitvkCmdDrawIndirectcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08651YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08652YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08653YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08654YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08655YNoneexplicitvkCmdDrawIndirectcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08656YNoneexplicitvkCmdDrawIndirectcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08657YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08658YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08659YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08660YNoneexplicitvkCmdDrawIndirectcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08661YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08662YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08663YNoneexplicitvkCmdDrawIndirectcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08664YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08665YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08666YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08667YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08668YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08669YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08670YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08671YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08672YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08673YNoneexplicitvkCmdDrawIndirectcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08674YNoneexplicitvkCmdDrawIndirectcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08675YNoneexplicitvkCmdDrawIndirectcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08676YNoneexplicitvkCmdDrawIndirectcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08677YNoneexplicitvkCmdDrawIndirectcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08678YNoneexplicitvkCmdDrawIndirectcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08679YNoneexplicitvkCmdDrawIndirectcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08680YNoneexplicitvkCmdDrawIndirectcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08681YNoneexplicitvkCmdDrawIndirectcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08682YNoneexplicitvkCmdDrawIndirectcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08683YNoneexplicitvkCmdDrawIndirectcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08684YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawIndirect-None-08685YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawIndirect-None-08686YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawIndirect-None-08687YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawIndirect-None-08688YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawIndirect-None-08689YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawIndirect-None-08690YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndirect-None-08693YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawIndirect-None-08694YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndirect-None-08695YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndirect-None-08696YNoneexplicitvkCmdDrawIndirectcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawIndirect-None-08698YNoneexplicitvkCmdDrawIndirectcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawIndirect-None-08699YNoneexplicitvkCmdDrawIndirectcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawIndirect-None-08876YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndirect-None-08877YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08878YNoneexplicitvkCmdDrawIndirectcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndirect-None-08879YNoneexplicitvkCmdDrawIndirectcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndirect-None-08880YNoneexplicitvkCmdDrawIndirectcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08885YNoneexplicitvkCmdDrawIndirectcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDrawIndirect-None-09000YNoneexplicitvkCmdDrawIndirectcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09001YNoneexplicitvkCmdDrawIndirectcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09002YNoneexplicitvkCmdDrawIndirectcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_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-09003YNoneexplicitvkCmdDrawIndirectcoreIf 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-09116YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawIndirect-None-09203YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawIndirect-None-09232YNoneexplicitvkCmdDrawIndirectcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-09237YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-09363YNoneexplicitvkCmdDrawIndirectcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-None-09364YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndirect-None-09365YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndirect-None-09366YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndirect-None-09368YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndirect-None-09369YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirectcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawIndirectcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndirectcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawIndirectcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndirectcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawIndirectcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawIndirectcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawIndirectcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawIndirectcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageWrite-04469YNoneexplicitvkCmdDrawIndirectcoreIf a VkBufferView 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-OpImageWrite-08795YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView created with a format other than VK_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-08796YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView created with the format VK_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-OpTypeImage-07027YNoneexplicitvkCmdDrawIndirectcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirect-OpTypeImage-07028YNoneexplicitvkCmdDrawIndirectcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirect-OpTypeImage-07029YNoneexplicitvkCmdDrawIndirectcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirect-OpTypeImage-07030YNoneexplicitvkCmdDrawIndirectcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirect-OpTypeImage-07468NNoneexplicitvkCmdDrawIndirectcoreIf 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-SampledType-04470YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView with a VkFormat 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-04471YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView with a VkFormat 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-04472YNoneexplicitvkCmdDrawIndirectcoreIf a VkBufferView with a VkFormat 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-04473YNoneexplicitvkCmdDrawIndirectcoreIf a VkBufferView with a VkFormat 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-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndirect-attachmentCount-07750YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-blendEnable-04727YNoneexplicitvkCmdDrawIndirectcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndirect-buffer-02708YNoneexplicitvkCmdDrawIndirectcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirect-buffer-02709YNegativeCommand.IndirectDrawexplicitvkCmdDrawIndirectcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirect-buffer-parameterYNoneimplicitvkCmdDrawIndirectcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirect-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndirectcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawIndirect-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndirectcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-colorAttachmentCount-09362YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-colorAttachmentCount-09372YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawIndirect-commandBuffer-02707YNoneexplicitvkCmdDrawIndirectcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawIndirect-commandBuffer-02711YNegativeProtectedMemory.UnprotectedCommandsexplicitvkCmdDrawIndirectcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndirectcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirect-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirect-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndirect-commonparentYNoneimplicitvkCmdDrawIndirectcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawIndirect-coverageReductionMode-07491NNoneexplicitvkCmdDrawIndirectcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawIndirect-coverageToColorEnable-07490NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndirect-cubicRangeClamp-09212NNoneexplicitvkCmdDrawIndirectcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawIndirect-drawCount-00476YNegativeCommand.StrideMultiDrawIndirectexplicitvkCmdDrawIndirectcoreIf drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)
VUID-vkCmdDrawIndirect-drawCount-00487YNegativeCommand.StrideMultiDrawIndirectexplicitvkCmdDrawIndirectcoreIf drawCount is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirect-drawCount-00488YNegativeCommand.IndirectDraw, NegativeCommand.StrideMultiDrawIndirectexplicitvkCmdDrawIndirectcoreIf drawCount is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirect-drawCount-02718YNoneexplicitvkCmdDrawIndirectcoreIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawIndirect-drawCount-02719YNegativeCommand.StrideMultiDrawIndirectexplicitvkCmdDrawIndirectcoredrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawIndirectcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawIndirectcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawIndirectcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawIndirectcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawIndirectcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-exclusiveScissor-09235YNoneexplicitvkCmdDrawIndirectcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-filterCubic-02694YNoneexplicitvkCmdDrawIndirectcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndirect-filterCubicMinmax-02695YNoneexplicitvkCmdDrawIndirectcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndirect-firstAttachment-07476YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndirect-firstAttachment-07477YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirect-firstAttachment-07478YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndirect-firstAttachment-07479YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirect-flags-02696YNoneexplicitvkCmdDrawIndirectcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndirect-format-07753YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawIndirect-format-08936YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawIndirect-imageView-06172NNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirect-imageView-06173NNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirect-imageView-06174NNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirect-imageView-06175NNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirect-imageView-06176NNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirect-imageView-06177NNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirect-imageView-06183YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawIndirect-imageView-06184YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawIndirect-logicOp-04878YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirect-magFilter-04553YNoneexplicitvkCmdDrawIndirectcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirect-maintenance4-08602YNoneexplicitvkCmdDrawIndirectcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirect-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawIndirectcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndirectcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndirect-mipmapMode-04770YNoneexplicitvkCmdDrawIndirectcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirectcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndirectcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_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-07286YNoneexplicitvkCmdDrawIndirectcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndirectcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirect-offset-02710YNoneexplicitvkCmdDrawIndirectcoreoffset must be a multiple of 4
VUID-vkCmdDrawIndirect-pColorAttachments-08963YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-pColorBlendEnables-07470YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawIndirect-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirect-pDepthAttachment-08964YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-pDynamicStates-08715YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawIndirect-pDynamicStates-08716YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawIndirect-pFragmentSize-09370YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndirect-pFragmentSize-09371YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndirect-pNext-07935YNoneexplicitvkCmdDrawIndirectcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawIndirect-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirect-pStencilAttachment-08965YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-pStrides-04913YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndirectcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirectcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawIndirectcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndirectcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawIndirectcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawIndirectcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawIndirect-rasterizationSamples-07471YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawIndirect-rasterizationSamples-07474YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirect-rasterizationSamples-07489NNoneexplicitvkCmdDrawIndirectcoreIf 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-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndirectcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndirect-rasterizationSamples-09367YNoneexplicitvkCmdDrawIndirectcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndirectcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawIndirectcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndirect-reductionMode-09213NNoneexplicitvkCmdDrawIndirectcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawIndirect-renderPass-02684YNoneexplicitvkCmdDrawIndirectcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirect-renderPass-06198YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndirect-renderpassYNoneimplicitvkCmdDrawIndirectcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawIndirectcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirect-samples-07472YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawIndirect-samples-07473YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirect-scissorCount-03418YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawIndirect-selectableCubicWeights-09214NNoneexplicitvkCmdDrawIndirectcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawIndirect-shadingRateImage-09233YNoneexplicitvkCmdDrawIndirectcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-shadingRateImage-09234YNoneexplicitvkCmdDrawIndirectcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndirectcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-04475NNoneexplicitvkCmdDrawIndirectcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-stage-06481YNoneexplicitvkCmdDrawIndirectcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndirect-stage-07073YNoneexplicitvkCmdDrawIndirectcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawIndirect-stippledLineEnable-07495YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirect-storageBuffers-06936NNoneexplicitvkCmdDrawIndirectcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-subpass-02685YNoneexplicitvkCmdDrawIndirectcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirect-uniformBuffers-06935NNoneexplicitvkCmdDrawIndirectcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-videocodingYNoneimplicitvkCmdDrawIndirectcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirect-viewMask-06178YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndirect-viewType-07752YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndirect-viewportCount-03417YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawIndirect-viewportCount-03419YNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndirect-viewportCount-04137NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-viewportCount-04138NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-viewportCount-04139NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-viewportCount-04140NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-viewportCount-07492NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-viewportCount-07493NNoneexplicitvkCmdDrawIndirectcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-viewportCount-09421YNoneexplicitvkCmdDrawIndirectcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndirectByteCountEXT-Input-07939YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawIndirectByteCountEXT-Input-08734NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndirectByteCountEXT-None-02691YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndirectByteCountEXT-None-02692YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-None-02693YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawIndirectByteCountEXT-None-02721YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndirectByteCountEXT-None-04007YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndirectByteCountEXT-None-04008YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDrawIndirectByteCountEXT-None-04875YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04876YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04877YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04879YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04912YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectByteCountEXT-None-04914YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectByteCountEXT-None-06479YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndirectByteCountEXT-None-06537YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-06539YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndirectByteCountEXT-None-06550YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndirectByteCountEXT-None-06666YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-06886YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndirectByteCountEXT-None-06887YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndirectByteCountEXT-None-07288NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirectByteCountEXT-None-07469NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndirectByteCountEXT-None-07619YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07620YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07621YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07622YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07623YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07624YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07625YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07626YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07627YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07628YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07629YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07630YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07631YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07632YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07633YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07634YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07635YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07636YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07637YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07638YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07639YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07640YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07641YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07642YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07643YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07644YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07645YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07646YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07647YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07648YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07649YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07748NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirectByteCountEXT-None-07749YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07751YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndirectByteCountEXT-None-07831YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07832YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07833YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07834YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07835YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07836YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07837YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07838YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07839YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07840YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07841YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07842YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07843YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07844YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07845YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07846YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07847YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07848YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07849YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07850YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07878YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07879YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07880YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07881YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07888YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawIndirectByteCountEXT-None-08114YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-None-08115YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-None-08116NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-None-08117YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-None-08119NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndirectByteCountEXT-None-08600YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectByteCountEXT-None-08601NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectByteCountEXT-None-08604NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-08605NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndirectByteCountEXT-None-08606YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-08607YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-08608YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirectByteCountEXT-None-08609YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawIndirectByteCountEXT-None-08610YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawIndirectByteCountEXT-None-08611YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawIndirectByteCountEXT-None-08612YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectByteCountEXT-None-08613YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectByteCountEXT-None-08617YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08618YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08619YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08620YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08621YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08622YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08623YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08624YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08625YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08626YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08627YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08628YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08629YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08630YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08631YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08632YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08633YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08634YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08635YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndirectByteCountEXT-None-08636YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-None-08637YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-None-08638YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08639YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08640YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08641YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirectByteCountEXT-None-08643YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawIndirectByteCountEXT-None-08644YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectByteCountEXT-None-08646YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08647YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawIndirectByteCountEXT-None-08648YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08649YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08650YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08651YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08652YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08653YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08654YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08655YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08656YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08657YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08658YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08659YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08660YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08661YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08662YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08663YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08664YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08665YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08666YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08667YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08668YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08669YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08670YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08671YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08672YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08673YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08674YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08675YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08676YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08677YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08678YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08679YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08680YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08681YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08682YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08683YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08684YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawIndirectByteCountEXT-None-08685YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawIndirectByteCountEXT-None-08686YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawIndirectByteCountEXT-None-08687YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawIndirectByteCountEXT-None-08688YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawIndirectByteCountEXT-None-08689YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-None-08690YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-None-08693YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawIndirectByteCountEXT-None-08694YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndirectByteCountEXT-None-08695YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndirectByteCountEXT-None-08696YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawIndirectByteCountEXT-None-08698YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawIndirectByteCountEXT-None-08699YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawIndirectByteCountEXT-None-08876YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndirectByteCountEXT-None-08877YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08878YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndirectByteCountEXT-None-08879YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndirectByteCountEXT-None-08880YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08885YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDrawIndirectByteCountEXT-None-09000YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-09001YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-09002YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-09003YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-09116YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawIndirectByteCountEXT-None-09203YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawIndirectByteCountEXT-None-09232YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-09237YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-09363YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-None-09364YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-09365YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-09366YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-09368YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-09369YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-09462NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08795YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08796YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07468NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04471YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04472YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04473YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-07750YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09372YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646YNoneexplicitvkCmdDrawIndirectByteCountEXTcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndirectByteCountEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectByteCountEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectByteCountEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndirectByteCountEXT-commonparentYNoneimplicitvkCmdDrawIndirectByteCountEXTcoreBoth of commandBuffer, and counterBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290YNoneexplicitvkCmdDrawIndirectByteCountEXTcorecounterBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf counterBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameterYNoneimplicitvkCmdDrawIndirectByteCountEXTcorecounterBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTcorecounterBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndirectByteCountEXT-counterOffset-09474YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTcorecounterOffset must be a multiple of 4
VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawIndirectByteCountEXT-coverageReductionMode-07491NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndirectByteCountEXT-cubicRangeClamp-09212NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-exclusiveScissor-09235YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07477YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07478YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07479YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirectByteCountEXT-flags-02696YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndirectByteCountEXT-format-07753YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawIndirectByteCountEXT-format-08936YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06173NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06174NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06175NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06176NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06177NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectByteCountEXT-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-pColorAttachments-08963YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-pColorBlendEnables-07470YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-08964YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08716YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-pNext-07935YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawIndirectByteCountEXT-pNext-09461NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-08965YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirectByteCountEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07471YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07489NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-09367YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndirectByteCountEXT-reductionMode-09213NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndirectByteCountEXT-renderpassYNoneimplicitvkCmdDrawIndirectByteCountEXTcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCountEXT-samples-07472YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-samples-07473YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawIndirectByteCountEXT-selectableCubicWeights-09214NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawIndirectByteCountEXT-stage-06481YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-stage-07073YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07495YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTcoreVkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreThe implementation must support VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw
VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTcorevertexStride must be greater than 0 and less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride
VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-09475YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTcorevertexStride must be a multiple of 4
VUID-vkCmdDrawIndirectByteCountEXT-videocodingYNoneimplicitvkCmdDrawIndirectByteCountEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndirectByteCountEXT-viewType-07752YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07493NNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-09421YNoneexplicitvkCmdDrawIndirectByteCountEXTcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-ConstOffset-06551YNoneexplicitvkCmdDrawIndirectCountcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndirectCount-Input-07939YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawIndirectCount-Input-08734NNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndirectCount-None-02691YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndirectCount-None-02692YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawIndirectCount-None-02693YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawIndirectCount-None-02721YNoneexplicitvkCmdDrawIndirectCountcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndirectCount-None-04007YNoneexplicitvkCmdDrawIndirectCountcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndirectCount-None-04008YNoneexplicitvkCmdDrawIndirectCountcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDrawIndirectCount-None-04445YNegativeCommand.DrawIndirectCountFeatureexplicitvkCmdDrawIndirectCountcoreIf drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawIndirectCount-None-04875YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04876YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04877YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04879YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04912YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectCount-None-04914YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectCount-None-06479YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndirectCount-None-06537YNoneexplicitvkCmdDrawIndirectCountcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectCount-None-06539YNoneexplicitvkCmdDrawIndirectCountcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndirectCount-None-06550YNoneexplicitvkCmdDrawIndirectCountcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndirectCount-None-06666YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-06886YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndirectCount-None-06887YNoneexplicitvkCmdDrawIndirectCountcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndirectCount-None-07288NNoneexplicitvkCmdDrawIndirectCountcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirectCount-None-07469NNoneexplicitvkCmdDrawIndirectCountcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndirectCount-None-07619YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07620YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07621YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07622YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07623YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07624YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07625YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07626YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07627YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07628YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07629YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07630YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07631YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07632YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07633YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07634YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07635YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07636YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07637YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07638YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07639YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07640YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07641YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07642YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07643YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07644YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07645YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07646YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07647YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07648YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07649YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07748NNoneexplicitvkCmdDrawIndirectCountcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirectCount-None-07749YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07751YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndirectCount-None-07831YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07832YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07833YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07834YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07835YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07836YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07837YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07838YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07839YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07840YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07841YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07842YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07843YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07844YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07845YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07846YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07847YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07848YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07849YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07850YNoneexplicitvkCmdDrawIndirectCountcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07878YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07879YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07880YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07881YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07888YNoneexplicitvkCmdDrawIndirectCountcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawIndirectCount-None-08114YNoneexplicitvkCmdDrawIndirectCountcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectCount-None-08115YNoneexplicitvkCmdDrawIndirectCountcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectCount-None-08116NNoneexplicitvkCmdDrawIndirectCountcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectCount-None-08117YNoneexplicitvkCmdDrawIndirectCountcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectCount-None-08119NNoneexplicitvkCmdDrawIndirectCountcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndirectCount-None-08600YNoneexplicitvkCmdDrawIndirectCountcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectCount-None-08601NNoneexplicitvkCmdDrawIndirectCountcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectCount-None-08604NNoneexplicitvkCmdDrawIndirectCountcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectCount-None-08605NNoneexplicitvkCmdDrawIndirectCountcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawIndirectCount-None-08606YNegativePipeline.BadPipelineObjectexplicitvkCmdDrawIndirectCountcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectCount-None-08607YNoneexplicitvkCmdDrawIndirectCountcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectCount-None-08608YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirectCount-None-08609YNoneexplicitvkCmdDrawIndirectCountcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawIndirectCount-None-08610YNoneexplicitvkCmdDrawIndirectCountcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawIndirectCount-None-08611YNoneexplicitvkCmdDrawIndirectCountcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawIndirectCount-None-08612YNoneexplicitvkCmdDrawIndirectCountcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectCount-None-08613YNoneexplicitvkCmdDrawIndirectCountcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectCount-None-08617YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08618YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08619YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08620YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08621YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08622YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08623YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08624YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08625YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08626YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08627YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08628YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08629YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08630YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08631YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08632YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08633YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08634YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08635YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndirectCount-None-08636YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-None-08637YNoneexplicitvkCmdDrawIndirectCountcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-None-08638YNoneexplicitvkCmdDrawIndirectCountcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08639YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08640YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08641YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirectCount-None-08643YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawIndirectCount-None-08644YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectCount-None-08646YNoneexplicitvkCmdDrawIndirectCountcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08647YNoneexplicitvkCmdDrawIndirectCountcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawIndirectCount-None-08648YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08649YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08650YNoneexplicitvkCmdDrawIndirectCountcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08651YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08652YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08653YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08654YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08655YNoneexplicitvkCmdDrawIndirectCountcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08656YNoneexplicitvkCmdDrawIndirectCountcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08657YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08658YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08659YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08660YNoneexplicitvkCmdDrawIndirectCountcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08661YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08662YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08663YNoneexplicitvkCmdDrawIndirectCountcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08664YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08665YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08666YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08667YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08668YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08669YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08670YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08671YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08672YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08673YNoneexplicitvkCmdDrawIndirectCountcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08674YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08675YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08676YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08677YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08678YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08679YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08680YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08681YNoneexplicitvkCmdDrawIndirectCountcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08682YNoneexplicitvkCmdDrawIndirectCountcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08683YNoneexplicitvkCmdDrawIndirectCountcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08684YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawIndirectCount-None-08685YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawIndirectCount-None-08686YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawIndirectCount-None-08687YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawIndirectCount-None-08688YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawIndirectCount-None-08689YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawIndirectCount-None-08690YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndirectCount-None-08693YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawIndirectCount-None-08694YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndirectCount-None-08695YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawIndirectCount-None-08696YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawIndirectCount-None-08698YNoneexplicitvkCmdDrawIndirectCountcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawIndirectCount-None-08699YNoneexplicitvkCmdDrawIndirectCountcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawIndirectCount-None-08876YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndirectCount-None-08877YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08878YNoneexplicitvkCmdDrawIndirectCountcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndirectCount-None-08879YNoneexplicitvkCmdDrawIndirectCountcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndirectCount-None-08880YNoneexplicitvkCmdDrawIndirectCountcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08885YNoneexplicitvkCmdDrawIndirectCountcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDrawIndirectCount-None-09000YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectCount-None-09001YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectCount-None-09002YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectCount-None-09003YNoneexplicitvkCmdDrawIndirectCountcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawIndirectCount-None-09116YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawIndirectCount-None-09203YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawIndirectCount-None-09232YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-09237YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-09363YNoneexplicitvkCmdDrawIndirectCountcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-None-09364YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-09365YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-09366YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-09368YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-09369YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirectCountcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawIndirectCountcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndirectCountcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawIndirectCountcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawIndirectCountcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawIndirectCountcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirectCount-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndirectCountcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawIndirectCountcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawIndirectCountcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawIndirectCountcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawIndirectCountcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirectCount-OpImageWrite-04469YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawIndirectCount-OpImageWrite-08795YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawIndirectCount-OpImageWrite-08796YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawIndirectCount-OpTypeImage-07027YNoneexplicitvkCmdDrawIndirectCountcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectCount-OpTypeImage-07028YNoneexplicitvkCmdDrawIndirectCountcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectCount-OpTypeImage-07029YNoneexplicitvkCmdDrawIndirectCountcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectCount-OpTypeImage-07030YNoneexplicitvkCmdDrawIndirectCountcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectCount-OpTypeImage-07468NNoneexplicitvkCmdDrawIndirectCountcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndirectCount-SampledType-04470YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawIndirectCount-SampledType-04471YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawIndirectCount-SampledType-04472YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawIndirectCount-SampledType-04473YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawIndirectCount-attachmentCount-07750YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-blendEnable-04727YNoneexplicitvkCmdDrawIndirectCountcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndirectCount-buffer-02708YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectCount-buffer-02709YNoneexplicitvkCmdDrawIndirectCountcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectCount-buffer-parameterYNoneimplicitvkCmdDrawIndirectCountcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndirectCountcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndirectCountcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawIndirectCount-commandBuffer-02707YNoneexplicitvkCmdDrawIndirectCountcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawIndirectCount-commandBuffer-02711YNoneexplicitvkCmdDrawIndirectCountcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndirectCountcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirectCount-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectCountcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirectCount-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectCountcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndirectCount-commonparentYNoneimplicitvkCmdDrawIndirectCountcoreEach of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawIndirectCount-countBuffer-02714YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcoreIf countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectCount-countBuffer-02715YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcorecountBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectCount-countBuffer-02717YNegativeGpuAVIndirectBuffer.DrawCountDeviceLimitexplicitvkCmdDrawIndirectCountcoreThe count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndirectCount-countBuffer-03121YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawIndirectCountcoreIf the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirectCount-countBuffer-03122YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawIndirectCountcoreIf the count stored in countBuffer is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirectCount-countBuffer-parameterYNoneimplicitvkCmdDrawIndirectCountcorecountBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectCount-countBufferOffset-02716YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcorecountBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndirectCount-countBufferOffset-04129YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcore(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawIndirectCount-coverageReductionMode-07491NNoneexplicitvkCmdDrawIndirectCountcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndirectCount-cubicRangeClamp-09212NNoneexplicitvkCmdDrawIndirectCountcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawIndirectCountcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawIndirectCountcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawIndirectCountcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawIndirectCountcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawIndirectCountcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-exclusiveScissor-09235YNoneexplicitvkCmdDrawIndirectCountcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-filterCubic-02694YNoneexplicitvkCmdDrawIndirectCountcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695YNoneexplicitvkCmdDrawIndirectCountcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndirectCount-firstAttachment-07476YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndirectCount-firstAttachment-07477YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirectCount-firstAttachment-07478YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndirectCount-firstAttachment-07479YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirectCount-flags-02696YNoneexplicitvkCmdDrawIndirectCountcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndirectCount-format-07753YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawIndirectCount-format-08936YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawIndirectCount-imageView-06172NNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirectCount-imageView-06173NNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirectCount-imageView-06174NNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirectCount-imageView-06175NNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirectCount-imageView-06176NNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawIndirectCount-imageView-06177NNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirectCount-imageView-06183YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawIndirectCount-imageView-06184YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawIndirectCount-logicOp-04878YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirectCount-magFilter-04553YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectCount-maintenance4-08602YNoneexplicitvkCmdDrawIndirectCountcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectCount-maxDrawCount-03111YNoneexplicitvkCmdDrawIndirectCountcoreIf maxDrawCount is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirectCount-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawIndirectCountcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndirectCountcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndirectCount-mipmapMode-04770YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirectCountcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndirectCountcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndirectCountcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndirectCountcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectCount-offset-02710YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcoreoffset must be a multiple of 4
VUID-vkCmdDrawIndirectCount-pColorAttachments-08963YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectCount-pDepthAttachment-08964YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-pDynamicStates-08715YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawIndirectCount-pDynamicStates-08716YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawIndirectCount-pFragmentSize-09370YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawIndirectCount-pFragmentSize-09371YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawIndirectCount-pNext-07935YNoneexplicitvkCmdDrawIndirectCountcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectCount-pStencilAttachment-08965YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-pStrides-04913YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndirectCountcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirectCountcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawIndirectCountcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndirectCountcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawIndirectCountcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawIndirectCountcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07471YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07474YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07489NNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndirectCountcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndirectCount-rasterizationSamples-09367YNoneexplicitvkCmdDrawIndirectCountcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawIndirectCountcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndirectCount-reductionMode-09213NNoneexplicitvkCmdDrawIndirectCountcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawIndirectCount-renderPass-02684YNoneexplicitvkCmdDrawIndirectCountcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirectCount-renderPass-06198YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndirectCount-renderpassYNoneimplicitvkCmdDrawIndirectCountcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawIndirectCountcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectCount-samples-07472YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawIndirectCount-samples-07473YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectCount-scissorCount-03418YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawIndirectCount-selectableCubicWeights-09214NNoneexplicitvkCmdDrawIndirectCountcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawIndirectCount-shadingRateImage-09233YNoneexplicitvkCmdDrawIndirectCountcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-shadingRateImage-09234YNoneexplicitvkCmdDrawIndirectCountcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndirectCountcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawIndirectCountcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawIndirectCount-stage-06481YNoneexplicitvkCmdDrawIndirectCountcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndirectCount-stage-07073YNoneexplicitvkCmdDrawIndirectCountcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07495YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirectCount-storageBuffers-06936NNoneexplicitvkCmdDrawIndirectCountcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectCount-stride-03110YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcorestride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)
VUID-vkCmdDrawIndirectCount-subpass-02685YNoneexplicitvkCmdDrawIndirectCountcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirectCount-uniformBuffers-06935NNoneexplicitvkCmdDrawIndirectCountcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectCount-videocodingYNoneimplicitvkCmdDrawIndirectCountcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirectCount-viewMask-06178YNoneexplicitvkCmdDrawIndirectCountcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndirectCount-viewType-07752YNoneexplicitvkCmdDrawIndirectCountcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndirectCount-viewportCount-03417YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawIndirectCount-viewportCount-03419YNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-04137NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-04138NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-04139NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-04140NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-07492NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-07493NNoneexplicitvkCmdDrawIndirectCountcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-09421YNoneexplicitvkCmdDrawIndirectCountcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksEXTcoreThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model
VUID-vkCmdDrawMeshTasksEXT-None-02691YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksEXT-None-02692YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-None-02693YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawMeshTasksEXT-None-04876YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-04877YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-06479YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawMeshTasksEXT-None-06537YNoneexplicitvkCmdDrawMeshTasksEXTcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksEXT-None-06539YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksEXT-None-06550YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksEXT-None-06666YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-06886YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawMeshTasksEXT-None-06887YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksEXT-None-07074YNegativeMesh.MeshIncompatibleActiveQueriesexplicitvkCmdDrawMeshTasksEXTcoreTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksEXT-None-07075YNegativeMesh.MeshIncompatibleActiveQueriesexplicitvkCmdDrawMeshTasksEXTcorePrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksEXTcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksEXTcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawMeshTasksEXT-None-07619YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07620YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07621YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07622YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07623YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07624YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07625YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07626YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07627YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07628YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07629YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07630YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07631YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07632YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07633YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07634YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07635YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07636YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07637YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07638YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07639YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07640YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07641YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07642YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07643YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07644YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07645YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07646YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07647YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07648YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07649YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksEXT-None-07749YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07751YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksEXT-None-07831YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07832YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07833YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07834YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07835YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07836YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07837YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07838YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07839YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07840YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07841YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07843YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07844YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07845YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07846YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07847YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07848YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07849YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07850YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07878YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07879YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07880YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07881YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07888YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksEXT-None-08114YNoneexplicitvkCmdDrawMeshTasksEXTcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-None-08115YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-None-08116NNoneexplicitvkCmdDrawMeshTasksEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-None-08117YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-None-08119NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksEXT-None-08600YNoneexplicitvkCmdDrawMeshTasksEXTcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksEXT-None-08601NNoneexplicitvkCmdDrawMeshTasksEXTcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksEXT-None-08604NNoneexplicitvkCmdDrawMeshTasksEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksEXT-None-08605NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksEXT-None-08606YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksEXT-None-08607YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksEXT-None-08608YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksEXT-None-08609YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawMeshTasksEXT-None-08610YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawMeshTasksEXT-None-08611YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawMeshTasksEXT-None-08612YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksEXT-None-08613YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksEXT-None-08617YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08618YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08619YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08620YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08621YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08622YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08623YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08624YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08625YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08626YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08627YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08628YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08629YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08630YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08631YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08632YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08633YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08634YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08635YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksEXT-None-08636YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-None-08637YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-None-08638YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08639YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08640YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08641YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksEXT-None-08643YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMeshTasksEXT-None-08644YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksEXT-None-08646YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08647YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawMeshTasksEXT-None-08648YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08649YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08650YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08651YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08652YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08653YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08654YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08655YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08656YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08657YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08658YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08659YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08660YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08661YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08662YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08663YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08664YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08665YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08666YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08667YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08668YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08669YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08670YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08671YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08672YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08673YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08674YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08675YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08676YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08677YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08678YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08679YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08680YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08681YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08682YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08683YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08684YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawMeshTasksEXT-None-08685YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawMeshTasksEXT-None-08686YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawMeshTasksEXT-None-08687YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksEXT-None-08688YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawMeshTasksEXT-None-08689YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-None-08690YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-None-08693YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawMeshTasksEXT-None-08694YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksEXT-None-08695YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksEXT-None-08696YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawMeshTasksEXT-None-08698YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawMeshTasksEXT-None-08699YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawMeshTasksEXT-None-08876YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksEXT-None-08877YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08878YNoneexplicitvkCmdDrawMeshTasksEXTcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksEXT-None-08879YNoneexplicitvkCmdDrawMeshTasksEXTcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksEXT-None-08880YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-09000YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksEXT-None-09001YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksEXT-None-09002YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksEXT-None-09003YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawMeshTasksEXT-None-09116YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawMeshTasksEXT-None-09211YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawMeshTasksEXT-None-09232YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-09237YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-09363YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-None-09364YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-09365YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-09366YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-09368YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-09369YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksEXT-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-04469YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08795YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08796YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksEXTcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07028YNoneexplicitvkCmdDrawMeshTasksEXTcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07029YNoneexplicitvkCmdDrawMeshTasksEXTcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07030YNoneexplicitvkCmdDrawMeshTasksEXTcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07468NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksEXT-SampledType-04470YNegativeAtomic.ImageInt64Mesh32explicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksEXT-SampledType-04471YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksEXT-SampledType-04472YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksEXT-SampledType-04473YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07322YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT Execution Model, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount
VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksEXT-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-blendEnable-04727YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09372YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMeshTasksEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawMeshTasksEXT-coverageReductionMode-07491NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMeshTasksEXT-coverageToColorEnable-07490NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksEXT-cubicRangeClamp-09212NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-exclusiveScissor-09235YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksEXT-filterCubicMinmax-02695YNoneexplicitvkCmdDrawMeshTasksEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07476YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07477YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07478YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07479YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksEXT-flags-02696YNoneexplicitvkCmdDrawMeshTasksEXTcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawMeshTasksEXT-format-07753YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawMeshTasksEXT-imageView-06172NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksEXT-imageView-06173NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksEXT-imageView-06174NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksEXT-imageView-06175NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksEXT-imageView-06176NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksEXT-imageView-06177NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksEXT-imageView-06183YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMeshTasksEXT-imageView-06184YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-logicOp-04878YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksEXT-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksEXT-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawMeshTasksEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawMeshTasksEXT-mipmapMode-04770YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-pColorBlendEnables-07470YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-08964YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08716YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09370YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09371YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-pNext-07935YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-08965YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksEXTcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07471YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07474YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07489NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-09367YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksEXT-reductionMode-09213NNoneexplicitvkCmdDrawMeshTasksEXTcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawMeshTasksEXT-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksEXTcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksEXT-renderPass-06198YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawMeshTasksEXT-renderpassYNoneimplicitvkCmdDrawMeshTasksEXTcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksEXT-samples-07472YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-samples-07473YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksEXT-scissorCount-03418YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawMeshTasksEXT-selectableCubicWeights-09214NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09233YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksEXT-stage-06480YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksEXTcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksEXT-stage-07073YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07495YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksEXT-subpass-02685YNoneexplicitvkCmdDrawMeshTasksEXTcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksEXT-uniformBuffers-06935NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksEXT-videocodingYNoneimplicitvkCmdDrawMeshTasksEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksEXT-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawMeshTasksEXT-viewType-07752YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksEXT-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawMeshTasksEXT-viewportCount-03419YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-04137NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-04138NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-04140NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-07493NNoneexplicitvkCmdDrawMeshTasksEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-09421YNoneexplicitvkCmdDrawMeshTasksEXTcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02692YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02693YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07074YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07075YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcorePrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07619YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07831YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07833YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07848YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07850YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07878YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07879YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07880YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07888YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08115YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08116NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08117YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08119NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08600YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08604NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08605NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08606YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08608YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08609YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08610YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08611YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08612YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08613YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08622YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08623YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08624YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08625YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08626YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08627YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08628YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08629YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08630YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08631YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08632YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08633YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08634YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08635YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08638YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08639YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08640YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08641YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08643YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08646YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08647YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08648YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08649YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08650YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08651YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08652YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08653YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08654YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08655YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08656YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08657YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08658YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08659YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08660YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08661YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08662YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08663YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08664YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08665YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08673YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08674YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08675YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08676YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08677YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08678YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08679YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08680YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08681YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08682YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08683YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08684YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08685YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08686YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08687YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08688YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08689YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08690YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08693YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08694YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08695YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08696YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08698YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09000YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09003YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09116YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09211YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09232YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09237YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09363YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09364YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09365YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09366YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09368YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09369YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-04469YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08795YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08796YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07028YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07029YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07030YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07468NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04470YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04471YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04472YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04473YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-blendEnable-04727YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09372YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcoreEach of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714YNegativeMesh.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715YNegativeMesh.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXTcorecountBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717YNegativeGpuAVIndirectBuffer.DrawCountDeviceLimitexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThe count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the count stored in countBuffer is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcorecountBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcorecountBufferOffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcore(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageReductionMode-07491NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageToColorEnable-07490NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-cubicRangeClamp-09212NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-exclusiveScissor-09235YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubicMinmax-02695YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07476YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07477YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07478YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07479YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-flags-02696YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-format-07753YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06173NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06174NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06175NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06176NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06177NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06183YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06184YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-logicOp-04878YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectCountEXT-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097YNegativeMesh.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf maxDrawCount is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawMeshTasksIndirectCountEXT-mipmapMode-04770YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreoffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-08964YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08716YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09370YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09371YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pNext-07935YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-08965YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07471YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07474YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07489NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-09367YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-reductionMode-09213NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-06198YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07472YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07473YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-scissorCount-03418YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-selectableCubicWeights-09214NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09233YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-06480YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-07073YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07495YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096YNegativeMesh.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXTcorestride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandEXT)
VUID-vkCmdDrawMeshTasksIndirectCountEXT-subpass-02685YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksIndirectCountEXT-uniformBuffers-06935NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocodingYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewType-07752YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03419YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04137NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04138NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04140NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07493NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-09421YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectCountNVcoreThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcorePrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07619YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07831YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07833YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07848YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07849YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07850YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07878YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07879YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07880YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07881YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07888YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08114YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08115YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08116NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08117YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08119NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08600YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08604NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08605NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08606YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08608YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08609YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08610YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08611YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08612YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08613YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08617YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08621YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08622YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08623YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08624YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08625YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08626YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08627YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08628YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08629YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08630YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08631YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08632YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08633YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08634YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08635YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08638YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08639YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08640YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08641YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08643YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08644YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08646YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08647YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08648YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08649YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08650YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08651YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08652YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08653YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08654YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08655YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08656YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08657YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08658YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08659YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08660YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08661YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08662YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08663YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08664YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08665YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08666YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08669YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08673YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08674YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08675YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08676YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08677YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08678YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08679YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08680YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08681YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08682YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08683YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08684YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08685YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08686YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08687YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08688YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08689YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08690YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08693YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08694YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08695YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08696YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08698YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09000YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09001YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09002YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09003YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09116YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09211YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09232YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09237YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09363YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09364YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09365YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09366YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09368YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09369YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-04469YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08795YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08796YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07468NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04471YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04472YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04473YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09372YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcorecommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcoreEach of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the count stored in countBuffer is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcorecountBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreThe count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcorecountBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcorecountBufferOffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcore(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageReductionMode-07491NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageToColorEnable-07490NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksIndirectCountNV-cubicRangeClamp-09212NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-exclusiveScissor-09235YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07476YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07477YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07478YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07479YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawMeshTasksIndirectCountNV-format-07753YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06173NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06174NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06175NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06176NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06177NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf maxDrawCount is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreoffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorBlendEnables-07470YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-08964YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08716YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09370YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09371YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-pNext-07935YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-08965YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07471YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07474YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07489NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-09367YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksIndirectCountNV-reductionMode-09213NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07472YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07473YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-selectableCubicWeights-09214NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09233YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectCountNVcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-07073YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07495YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcorestride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)
VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectCountNV-videocodingYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewType-07752YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07493NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-09421YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTcoreThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02692YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02693YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawMeshTasksIndirectEXT-None-04876YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07074YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07075YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcorePrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07619YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07831YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07833YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07848YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07849YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07850YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07878YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07879YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07880YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07881YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07888YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08115YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08116NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08117YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08119NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08600YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08604NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08605NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08606YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08608YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08609YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08610YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08611YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08612YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08613YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08617YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08621YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08622YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08623YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08624YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08625YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08626YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08627YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08628YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08629YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08630YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08631YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08632YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08633YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08634YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08635YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08638YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08639YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08640YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08641YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08643YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08644YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08646YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08647YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08648YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08649YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08650YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08651YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08652YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08653YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08654YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08655YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08656YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08657YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08658YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08659YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08660YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08661YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08662YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08663YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08664YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08665YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08666YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08669YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08673YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08674YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08675YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08676YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08677YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08678YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08679YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08680YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08681YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08682YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08683YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08684YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08685YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08686YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08687YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08688YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08689YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08690YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08693YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08694YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08695YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08696YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08698YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09000YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09001YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09002YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09003YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09116YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09211YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09232YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09237YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09363YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09364YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09365YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09366YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09368YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09369YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-04469YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08795YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08796YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07028YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07029YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07030YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07468NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04470YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04471YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04472YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04473YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-blendEnable-04727YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02708YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09372YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectEXT-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawMeshTasksIndirectEXT-coverageReductionMode-07491NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMeshTasksIndirectEXT-coverageToColorEnable-07490NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksIndirectEXT-cubicRangeClamp-09212NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02718YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTcoredrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088YNegativeMesh.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandEXT)
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090YNegativeMesh.DrawCmds, NegativeMesh.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf drawCount is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-exclusiveScissor-09235YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubicMinmax-02695YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07476YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07477YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07478YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07479YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-flags-02696YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawMeshTasksIndirectEXT-format-07753YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06173NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06174NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06175NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06176NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06177NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06183YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06184YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-logicOp-04878YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectEXT-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectEXT-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawMeshTasksIndirectEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawMeshTasksIndirectEXT-mipmapMode-04770YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreoffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectEXT-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-pColorBlendEnables-07470YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-08964YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08716YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09370YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09371YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-pNext-07935YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-08965YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07471YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07474YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07489NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-09367YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksIndirectEXT-reductionMode-09213NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-06198YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawMeshTasksIndirectEXT-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07472YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07473YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectEXT-scissorCount-03418YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-selectableCubicWeights-09214NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09233YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-stage-06480YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-stage-07073YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07495YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectEXT-subpass-02685YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectEXT-videocodingYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectEXT-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawMeshTasksIndirectEXT-viewType-07752YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03419YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04137NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04138NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04140NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07493NNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-09421YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectNVcoreThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model
VUID-vkCmdDrawMeshTasksIndirectNV-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-None-02692YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-None-02693YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawMeshTasksIndirectNV-None-04876YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-None-06537YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-06539YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectNV-None-06550YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksIndirectNV-None-06666YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawMeshTasksIndirectNV-None-06887YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksIndirectNV-None-07074YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectNV-None-07075YNoneexplicitvkCmdDrawMeshTasksIndirectNVcorePrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectNV-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectNV-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawMeshTasksIndirectNV-None-07619YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectNV-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksIndirectNV-None-07831YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07832YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07833YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07834YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07835YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07836YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07837YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07838YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07839YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07840YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07841YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07843YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07844YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07845YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07846YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07847YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07848YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07849YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07850YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07878YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07879YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07880YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07881YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07888YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08114YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08115YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08116NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08117YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08119NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksIndirectNV-None-08600YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectNV-None-08601NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectNV-None-08604NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08605NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksIndirectNV-None-08606YNegativeMesh.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08607YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08608YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectNV-None-08609YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectNV-None-08610YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectNV-None-08611YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectNV-None-08612YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectNV-None-08613YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectNV-None-08617YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08618YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08619YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08620YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08621YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08622YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08623YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08624YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08625YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08626YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08627YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08628YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08629YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08630YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08631YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08632YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08633YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08634YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08635YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-None-08636YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-None-08637YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-None-08638YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08639YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08640YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08641YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectNV-None-08643YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectNV-None-08644YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectNV-None-08646YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08647YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawMeshTasksIndirectNV-None-08648YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08649YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08650YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08651YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08652YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08653YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08654YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08655YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08656YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08657YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08658YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08659YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08660YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08661YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08662YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08663YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08664YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08665YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08666YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08667YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08668YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08669YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08670YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08671YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08672YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08673YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08674YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08675YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08676YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08677YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08678YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08679YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08680YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08681YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08682YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08683YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08684YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08685YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08686YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08687YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08688YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08689YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08690YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-None-08693YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawMeshTasksIndirectNV-None-08694YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectNV-None-08695YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectNV-None-08696YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawMeshTasksIndirectNV-None-08698YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawMeshTasksIndirectNV-None-08699YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawMeshTasksIndirectNV-None-08876YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectNV-None-08877YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08878YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectNV-None-08879YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectNV-None-08880YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09000YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09001YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09002YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09003YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09116YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawMeshTasksIndirectNV-None-09211YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawMeshTasksIndirectNV-None-09232YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09237YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09363YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-None-09364YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09365YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09366YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09368YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-09369YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-04469YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08795YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08796YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07468NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04471YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04472YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04473YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708YNegativeMesh.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectNVcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectNVcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09362YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09372YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711YNoneexplicitvkCmdDrawMeshTasksIndirectNVcorecommandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectNVcorecommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectNV-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectNVcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectNV-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawMeshTasksIndirectNV-coverageReductionMode-07491NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMeshTasksIndirectNV-coverageToColorEnable-07490NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksIndirectNV-cubicRangeClamp-09212NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146YNegativeMesh.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVcoreIf drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectNVcoreIf drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157YNegativeMesh.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVcoreIf drawCount is greater than 1, (stride × (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718YNegativeMesh.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoredrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-exclusiveScissor-09235YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07476YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07477YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07478YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07479YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawMeshTasksIndirectNV-format-07753YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06173NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06174NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06175NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06176NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06177NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectNV-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreoffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectNV-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-pColorBlendEnables-07470YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-08964YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08716YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09370YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09371YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-pNext-07935YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-08965YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07471YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07474YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07489NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-09367YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksIndirectNV-reductionMode-09213NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawMeshTasksIndirectNV-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectNVcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectNV-samples-07472YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-samples-07473YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-selectableCubicWeights-09214NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectNVcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-stage-07073YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07495YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksIndirectNV-videocodingYNoneimplicitvkCmdDrawMeshTasksIndirectNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawMeshTasksIndirectNV-viewType-07752YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07493NNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-09421YNoneexplicitvkCmdDrawMeshTasksIndirectNVcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksNV-MeshNV-07080YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksNVcoreThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model
VUID-vkCmdDrawMeshTasksNV-None-02691YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksNV-None-02692YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-None-02693YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawMeshTasksNV-None-04876YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-04877YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-06479YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawMeshTasksNV-None-06537YNoneexplicitvkCmdDrawMeshTasksNVcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksNV-None-06539YNoneexplicitvkCmdDrawMeshTasksNVcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksNV-None-06550YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksNV-None-06666YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-06886YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawMeshTasksNV-None-06887YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksNV-None-07074YNoneexplicitvkCmdDrawMeshTasksNVcoreTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksNV-None-07075YNoneexplicitvkCmdDrawMeshTasksNVcorePrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksNV-None-07288NNoneexplicitvkCmdDrawMeshTasksNVcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksNV-None-07469NNoneexplicitvkCmdDrawMeshTasksNVcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawMeshTasksNV-None-07619YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07620YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07621YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07622YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07623YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07624YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07625YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07626YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07627YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07628YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07629YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07630YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07631YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07632YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07633YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07634YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07635YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07636YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07637YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07638YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07639YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07640YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07641YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07642YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07643YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07644YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07645YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07646YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07647YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07648YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07649YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07748NNoneexplicitvkCmdDrawMeshTasksNVcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksNV-None-07749YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07751YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksNV-None-07831YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07832YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07833YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07834YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07835YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07836YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07837YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07838YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07839YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07840YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07841YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07843YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07844YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07845YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07846YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07847YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07848YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07849YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07850YNoneexplicitvkCmdDrawMeshTasksNVcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07878YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07879YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07880YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07881YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07888YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawMeshTasksNV-None-08114YNoneexplicitvkCmdDrawMeshTasksNVcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-None-08115YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-None-08116NNoneexplicitvkCmdDrawMeshTasksNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-None-08117YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-None-08119NNoneexplicitvkCmdDrawMeshTasksNVcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksNV-None-08600YNoneexplicitvkCmdDrawMeshTasksNVcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksNV-None-08601NNoneexplicitvkCmdDrawMeshTasksNVcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksNV-None-08604NNoneexplicitvkCmdDrawMeshTasksNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksNV-None-08605NNoneexplicitvkCmdDrawMeshTasksNVcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMeshTasksNV-None-08606YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksNV-None-08607YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksNV-None-08608YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksNV-None-08609YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawMeshTasksNV-None-08610YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawMeshTasksNV-None-08611YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawMeshTasksNV-None-08612YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksNV-None-08613YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksNV-None-08617YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08618YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08619YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08620YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08621YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08622YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08623YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08624YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08625YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08626YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08627YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08628YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08629YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08630YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08631YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08632YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08633YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08634YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08635YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksNV-None-08636YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-None-08637YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-None-08638YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08639YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08640YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08641YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksNV-None-08643YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMeshTasksNV-None-08644YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksNV-None-08646YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08647YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawMeshTasksNV-None-08648YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08649YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08650YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08651YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08652YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08653YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08654YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08655YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08656YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08657YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08658YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08659YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08660YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08661YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08662YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08663YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08664YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08665YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08666YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08667YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08668YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08669YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08670YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08671YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08672YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08673YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08674YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08675YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08676YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08677YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08678YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08679YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08680YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08681YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08682YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08683YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08684YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawMeshTasksNV-None-08685YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawMeshTasksNV-None-08686YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawMeshTasksNV-None-08687YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksNV-None-08688YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawMeshTasksNV-None-08689YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-None-08690YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-None-08693YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawMeshTasksNV-None-08694YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksNV-None-08695YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMeshTasksNV-None-08696YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawMeshTasksNV-None-08698YNoneexplicitvkCmdDrawMeshTasksNVcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawMeshTasksNV-None-08699YNoneexplicitvkCmdDrawMeshTasksNVcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawMeshTasksNV-None-08876YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksNV-None-08877YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08878YNoneexplicitvkCmdDrawMeshTasksNVcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksNV-None-08879YNoneexplicitvkCmdDrawMeshTasksNVcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksNV-None-08880YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-09000YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksNV-None-09001YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksNV-None-09002YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksNV-None-09003YNoneexplicitvkCmdDrawMeshTasksNVcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawMeshTasksNV-None-09116YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawMeshTasksNV-None-09211YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawMeshTasksNV-None-09232YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-09237YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-09363YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-None-09364YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-09365YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-09366YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-09368YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-09369YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksNVcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawMeshTasksNVcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksNVcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawMeshTasksNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawMeshTasksNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawMeshTasksNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksNV-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksNVcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawMeshTasksNVcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawMeshTasksNVcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawMeshTasksNVcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawMeshTasksNVcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMeshTasksNV-OpImageWrite-04469YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08795YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08796YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksNVcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07028YNoneexplicitvkCmdDrawMeshTasksNVcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07029YNoneexplicitvkCmdDrawMeshTasksNVcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07030YNoneexplicitvkCmdDrawMeshTasksNVcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07468NNoneexplicitvkCmdDrawMeshTasksNVcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksNV-SampledType-04470YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksNV-SampledType-04471YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksNV-SampledType-04472YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMeshTasksNV-SampledType-04473YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMeshTasksNV-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-blendEnable-04727YNoneexplicitvkCmdDrawMeshTasksNVcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09372YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksNVcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksNVcorecommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMeshTasksNV-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawMeshTasksNV-coverageReductionMode-07491NNoneexplicitvkCmdDrawMeshTasksNVcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMeshTasksNV-coverageToColorEnable-07490NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksNV-cubicRangeClamp-09212NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawMeshTasksNVcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawMeshTasksNVcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-exclusiveScissor-09235YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695YNoneexplicitvkCmdDrawMeshTasksNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMeshTasksNV-firstAttachment-07476YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksNV-firstAttachment-07477YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksNV-firstAttachment-07478YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksNV-firstAttachment-07479YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksNV-flags-02696YNoneexplicitvkCmdDrawMeshTasksNVcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawMeshTasksNV-format-07753YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawMeshTasksNV-imageView-06172NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksNV-imageView-06173NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksNV-imageView-06174NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksNV-imageView-06175NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksNV-imageView-06176NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMeshTasksNV-imageView-06177NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMeshTasksNV-imageView-06183YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMeshTasksNV-imageView-06184YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-logicOp-04878YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksNV-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksNV-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawMeshTasksNVcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksNVcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-pColorBlendEnables-07470YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-08964YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08716YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09370YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09371YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-pNext-07935YNoneexplicitvkCmdDrawMeshTasksNVcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-08965YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksNVcoreThe pipelineStatistics member used to create any active Pipeline Statistics Query must not contain VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07471YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07474YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07489NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-09367YNoneexplicitvkCmdDrawMeshTasksNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMeshTasksNV-reductionMode-09213NNoneexplicitvkCmdDrawMeshTasksNVcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawMeshTasksNV-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksNVcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksNV-renderPass-06198YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawMeshTasksNV-renderpassYNoneimplicitvkCmdDrawMeshTasksNVcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksNV-samples-07472YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-samples-07473YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksNV-scissorCount-03418YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawMeshTasksNV-selectableCubicWeights-09214NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09233YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMeshTasksNV-stage-06480YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksNVcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksNV-stage-07073YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07495YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksNV-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksNV-subpass-02685YNoneexplicitvkCmdDrawMeshTasksNVcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMeshTasksNV-taskCount-02119YNoneexplicitvkCmdDrawMeshTasksNVcoretaskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount
VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935NNoneexplicitvkCmdDrawMeshTasksNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMeshTasksNV-videocodingYNoneimplicitvkCmdDrawMeshTasksNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawMeshTasksNV-viewType-07752YNoneexplicitvkCmdDrawMeshTasksNVcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawMeshTasksNV-viewportCount-03419YNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-04137NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-04138NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-04140NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-07493NNoneexplicitvkCmdDrawMeshTasksNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-09421YNoneexplicitvkCmdDrawMeshTasksNVcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-ConstOffset-06551YNoneexplicitvkCmdDrawMultiEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMultiEXT-Input-07939YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawMultiEXT-Input-08734NNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawMultiEXT-None-02691YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawMultiEXT-None-02692YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawMultiEXT-None-02693YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawMultiEXT-None-02721YNoneexplicitvkCmdDrawMultiEXTcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawMultiEXT-None-04007YNoneexplicitvkCmdDrawMultiEXTcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawMultiEXT-None-04008YNoneexplicitvkCmdDrawMultiEXTcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDrawMultiEXT-None-04875YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04876YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04877YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04879YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04912YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiEXT-None-04914YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiEXT-None-04933YNegativeCommand.MultiDrawFeaturesexplicitvkCmdDrawMultiEXTcoreThe multiDraw feature must be enabled
VUID-vkCmdDrawMultiEXT-None-06479YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawMultiEXT-None-06537YNoneexplicitvkCmdDrawMultiEXTcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMultiEXT-None-06539YNoneexplicitvkCmdDrawMultiEXTcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMultiEXT-None-06550YNoneexplicitvkCmdDrawMultiEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMultiEXT-None-06666YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-06886YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawMultiEXT-None-06887YNoneexplicitvkCmdDrawMultiEXTcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMultiEXT-None-07288NNoneexplicitvkCmdDrawMultiEXTcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMultiEXT-None-07469NNoneexplicitvkCmdDrawMultiEXTcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawMultiEXT-None-07619YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07620YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07621YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07622YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07623YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07624YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07625YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07626YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07627YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07628YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07629YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07630YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07631YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07632YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07633YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07634YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07635YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07636YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07637YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07638YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07639YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07640YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07641YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07642YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07643YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07644YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07645YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07646YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07647YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07648YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07649YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07748NNoneexplicitvkCmdDrawMultiEXTcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMultiEXT-None-07749YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07751YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMultiEXT-None-07831YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07832YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07833YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07834YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07835YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07836YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07837YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07838YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07839YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07840YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07841YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07842YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07843YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07844YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07845YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07846YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07847YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07848YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07849YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07850YNoneexplicitvkCmdDrawMultiEXTcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07878YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07879YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07880YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07881YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07888YNoneexplicitvkCmdDrawMultiEXTcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawMultiEXT-None-08114YNoneexplicitvkCmdDrawMultiEXTcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMultiEXT-None-08115YNoneexplicitvkCmdDrawMultiEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMultiEXT-None-08116NNoneexplicitvkCmdDrawMultiEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMultiEXT-None-08117YNoneexplicitvkCmdDrawMultiEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMultiEXT-None-08119NNoneexplicitvkCmdDrawMultiEXTcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMultiEXT-None-08600YNoneexplicitvkCmdDrawMultiEXTcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiEXT-None-08601NNoneexplicitvkCmdDrawMultiEXTcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiEXT-None-08604NNoneexplicitvkCmdDrawMultiEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMultiEXT-None-08605NNoneexplicitvkCmdDrawMultiEXTcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMultiEXT-None-08606YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiEXTcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMultiEXT-None-08607YNoneexplicitvkCmdDrawMultiEXTcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMultiEXT-None-08608YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMultiEXT-None-08609YNoneexplicitvkCmdDrawMultiEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawMultiEXT-None-08610YNoneexplicitvkCmdDrawMultiEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawMultiEXT-None-08611YNoneexplicitvkCmdDrawMultiEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawMultiEXT-None-08612YNoneexplicitvkCmdDrawMultiEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiEXT-None-08613YNoneexplicitvkCmdDrawMultiEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiEXT-None-08617YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08618YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08619YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08620YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08621YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08622YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08623YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08624YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08625YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08626YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08627YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08628YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08629YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08630YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08631YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08632YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08633YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08634YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08635YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMultiEXT-None-08636YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-None-08637YNoneexplicitvkCmdDrawMultiEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-None-08638YNoneexplicitvkCmdDrawMultiEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08639YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08640YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08641YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMultiEXT-None-08643YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMultiEXT-None-08644YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiEXT-None-08646YNoneexplicitvkCmdDrawMultiEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08647YNoneexplicitvkCmdDrawMultiEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawMultiEXT-None-08648YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08649YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08650YNoneexplicitvkCmdDrawMultiEXTcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08651YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08652YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08653YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08654YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08655YNoneexplicitvkCmdDrawMultiEXTcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08656YNoneexplicitvkCmdDrawMultiEXTcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08657YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08658YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08659YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08660YNoneexplicitvkCmdDrawMultiEXTcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08661YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08662YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08663YNoneexplicitvkCmdDrawMultiEXTcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08664YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08665YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08666YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08667YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08668YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08669YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08670YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08671YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08672YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08673YNoneexplicitvkCmdDrawMultiEXTcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08674YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08675YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08676YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08677YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08678YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08679YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08680YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08681YNoneexplicitvkCmdDrawMultiEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08682YNoneexplicitvkCmdDrawMultiEXTcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08683YNoneexplicitvkCmdDrawMultiEXTcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08684YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawMultiEXT-None-08685YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawMultiEXT-None-08686YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawMultiEXT-None-08687YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMultiEXT-None-08688YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawMultiEXT-None-08689YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawMultiEXT-None-08690YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMultiEXT-None-08693YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawMultiEXT-None-08694YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMultiEXT-None-08695YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMultiEXT-None-08696YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawMultiEXT-None-08698YNoneexplicitvkCmdDrawMultiEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawMultiEXT-None-08699YNoneexplicitvkCmdDrawMultiEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawMultiEXT-None-08876YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMultiEXT-None-08877YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08878YNoneexplicitvkCmdDrawMultiEXTcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMultiEXT-None-08879YNoneexplicitvkCmdDrawMultiEXTcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMultiEXT-None-08880YNoneexplicitvkCmdDrawMultiEXTcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08885YNoneexplicitvkCmdDrawMultiEXTcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDrawMultiEXT-None-09000YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMultiEXT-None-09001YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMultiEXT-None-09002YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMultiEXT-None-09003YNoneexplicitvkCmdDrawMultiEXTcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawMultiEXT-None-09116YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawMultiEXT-None-09203YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawMultiEXT-None-09232YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-09237YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-09363YNoneexplicitvkCmdDrawMultiEXTcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-None-09364YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-09365YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-09366YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-09368YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-09369YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-09462YNoneexplicitvkCmdDrawMultiEXTcoreIf shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMultiEXTcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawMultiEXTcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMultiEXTcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawMultiEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawMultiEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawMultiEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMultiEXT-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMultiEXTcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawMultiEXTcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawMultiEXTcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawMultiEXTcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawMultiEXTcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMultiEXT-OpImageWrite-04469YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawMultiEXT-OpImageWrite-08795YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawMultiEXT-OpImageWrite-08796YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawMultiEXT-OpTypeImage-07027YNoneexplicitvkCmdDrawMultiEXTcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMultiEXT-OpTypeImage-07028YNoneexplicitvkCmdDrawMultiEXTcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMultiEXT-OpTypeImage-07029YNoneexplicitvkCmdDrawMultiEXTcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMultiEXT-OpTypeImage-07030YNoneexplicitvkCmdDrawMultiEXTcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMultiEXT-OpTypeImage-07468NNoneexplicitvkCmdDrawMultiEXTcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMultiEXT-SampledType-04470YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMultiEXT-SampledType-04471YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMultiEXT-SampledType-04472YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMultiEXT-SampledType-04473YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMultiEXT-attachmentCount-07750YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-blendEnable-04727YNoneexplicitvkCmdDrawMultiEXTcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMultiEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMultiEXTcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09372YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawMultiEXT-commandBuffer-02707YNoneexplicitvkCmdDrawMultiEXTcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawMultiEXT-commandBuffer-02712YNoneexplicitvkCmdDrawMultiEXTcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource
VUID-vkCmdDrawMultiEXT-commandBuffer-02713NNoneexplicitvkCmdDrawMultiEXTcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource
VUID-vkCmdDrawMultiEXT-commandBuffer-04617NNoneexplicitvkCmdDrawMultiEXTcoreIf any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMultiEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMultiEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMultiEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMultiEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMultiEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawMultiEXT-coverageReductionMode-07491NNoneexplicitvkCmdDrawMultiEXTcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMultiEXT-cubicRangeClamp-09212NNoneexplicitvkCmdDrawMultiEXTcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawMultiEXT-drawCount-04934YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiEXTcoredrawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount
VUID-vkCmdDrawMultiEXT-drawCount-04935YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiEXTcoreIf drawCount is greater than zero, pVertexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawInfoEXT structures
VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMultiEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawMultiEXTcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawMultiEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawMultiEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawMultiEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-exclusiveScissor-09235YNoneexplicitvkCmdDrawMultiEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-filterCubic-02694YNoneexplicitvkCmdDrawMultiEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695YNoneexplicitvkCmdDrawMultiEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMultiEXT-firstAttachment-07476YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMultiEXT-firstAttachment-07477YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMultiEXT-firstAttachment-07478YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMultiEXT-firstAttachment-07479YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMultiEXT-flags-02696YNoneexplicitvkCmdDrawMultiEXTcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawMultiEXT-format-07753YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawMultiEXT-format-08936YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawMultiEXT-imageView-06172NNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMultiEXT-imageView-06173NNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMultiEXT-imageView-06174NNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMultiEXT-imageView-06175NNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMultiEXT-imageView-06176NNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMultiEXT-imageView-06177NNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMultiEXT-imageView-06183YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMultiEXT-imageView-06184YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMultiEXT-logicOp-04878YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMultiEXT-magFilter-04553YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMultiEXT-maintenance4-08602YNoneexplicitvkCmdDrawMultiEXTcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiEXT-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawMultiEXTcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMultiEXTcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawMultiEXT-mipmapMode-04770YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMultiEXTcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMultiEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMultiEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMultiEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiEXT-pColorAttachments-08963YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-pColorBlendEnables-07470YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiEXT-pDepthAttachment-08964YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawMultiEXT-pDynamicStates-08716YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawMultiEXT-pFragmentSize-09370YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMultiEXT-pFragmentSize-09371YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMultiEXT-pNext-07935YNoneexplicitvkCmdDrawMultiEXTcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMultiEXT-pNext-09461YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiEXT-pStencilAttachment-08965YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-pStrides-04913YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawMultiEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMultiEXTcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMultiEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawMultiEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMultiEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawMultiEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawMultiEXTcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07471YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07489NNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMultiEXTcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMultiEXT-rasterizationSamples-09367YNoneexplicitvkCmdDrawMultiEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawMultiEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMultiEXT-reductionMode-09213NNoneexplicitvkCmdDrawMultiEXTcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawMultiEXT-renderPass-02684YNoneexplicitvkCmdDrawMultiEXTcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMultiEXT-renderPass-06198YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawMultiEXT-renderpassYNegativeCommand.MultiDrawDrawOutsideRenderPassimplicitvkCmdDrawMultiEXTcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawMultiEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiEXT-samples-07472YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawMultiEXT-samples-07473YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiEXT-scissorCount-03418YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawMultiEXT-selectableCubicWeights-09214NNoneexplicitvkCmdDrawMultiEXTcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawMultiEXT-shadingRateImage-09233YNoneexplicitvkCmdDrawMultiEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMultiEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMultiEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawMultiEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMultiEXT-stage-06481YNoneexplicitvkCmdDrawMultiEXTcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMultiEXT-stage-07073YNoneexplicitvkCmdDrawMultiEXTcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07495YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMultiEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMultiEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiEXT-stride-04936YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiEXTcorestride must be a multiple of 4
VUID-vkCmdDrawMultiEXT-subpass-02685YNoneexplicitvkCmdDrawMultiEXTcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMultiEXT-uniformBuffers-06935NNoneexplicitvkCmdDrawMultiEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiEXT-videocodingYNoneimplicitvkCmdDrawMultiEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMultiEXT-viewMask-06178YNoneexplicitvkCmdDrawMultiEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawMultiEXT-viewType-07752YNoneexplicitvkCmdDrawMultiEXTcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMultiEXT-viewportCount-03417YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawMultiEXT-viewportCount-03419YNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-04137NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-04138NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-04139NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-04140NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-07492NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-07493NNoneexplicitvkCmdDrawMultiEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-09421YNoneexplicitvkCmdDrawMultiEXTcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMultiIndexedEXT-Input-07939YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawMultiIndexedEXT-Input-08734NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawMultiIndexedEXT-None-02691YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawMultiIndexedEXT-None-02692YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-None-02693YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawMultiIndexedEXT-None-02721YNoneexplicitvkCmdDrawMultiIndexedEXTcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawMultiIndexedEXT-None-04007YNoneexplicitvkCmdDrawMultiIndexedEXTcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawMultiIndexedEXT-None-04008YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdDrawMultiIndexedEXT-None-04875YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04876YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04877YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04879YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04912YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiIndexedEXT-None-04914YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiIndexedEXT-None-04937YNegativeCommand.MultiDrawFeaturesexplicitvkCmdDrawMultiIndexedEXTcoreThe multiDraw feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-None-06479YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawMultiIndexedEXT-None-06537YNoneexplicitvkCmdDrawMultiIndexedEXTcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMultiIndexedEXT-None-06539YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMultiIndexedEXT-None-06550YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMultiIndexedEXT-None-06666YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-06886YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawMultiIndexedEXT-None-06887YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMultiIndexedEXT-None-07288NNoneexplicitvkCmdDrawMultiIndexedEXTcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMultiIndexedEXT-None-07312YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiIndexedEXTcoreIf maintenance6 is not enabled, a valid index buffer must be bound
VUID-vkCmdDrawMultiIndexedEXT-None-07469NNoneexplicitvkCmdDrawMultiIndexedEXTcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawMultiIndexedEXT-None-07619YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07620YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07621YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07622YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07623YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07624YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07625YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07626YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07627YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07628YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07629YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07630YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07631YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07632YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07633YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07634YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07635YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07636YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07637YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07638YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07639YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07640YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07641YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07642YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07643YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07644YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07645YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07646YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07647YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07648YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07649YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07748NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMultiIndexedEXT-None-07749YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07751YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMultiIndexedEXT-None-07831YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07832YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07833YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07834YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07835YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07836YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07837YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07838YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07839YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07840YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07841YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07842YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07843YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07844YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07845YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07846YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07847YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07848YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07849YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07850YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07878YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07879YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07880YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07881YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07888YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawMultiIndexedEXT-None-08114YNoneexplicitvkCmdDrawMultiIndexedEXTcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-None-08115YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-None-08116NNoneexplicitvkCmdDrawMultiIndexedEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-None-08117YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-None-08119NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMultiIndexedEXT-None-08600YNoneexplicitvkCmdDrawMultiIndexedEXTcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiIndexedEXT-None-08601NNoneexplicitvkCmdDrawMultiIndexedEXTcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiIndexedEXT-None-08604NNoneexplicitvkCmdDrawMultiIndexedEXTcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMultiIndexedEXT-None-08605NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdDrawMultiIndexedEXT-None-08606YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiIndexedEXTcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMultiIndexedEXT-None-08607YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawMultiIndexedEXT-None-08608YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMultiIndexedEXT-None-08609YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdDrawMultiIndexedEXT-None-08610YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdDrawMultiIndexedEXT-None-08611YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdDrawMultiIndexedEXT-None-08612YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiIndexedEXT-None-08613YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiIndexedEXT-None-08617YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08618YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08619YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08620YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08621YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08622YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08623YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08624YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08625YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08626YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08627YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08628YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08629YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08630YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08631YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08632YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08633YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08634YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08635YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMultiIndexedEXT-None-08636YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-None-08637YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-None-08638YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08639YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08640YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08641YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMultiIndexedEXT-None-08643YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMultiIndexedEXT-None-08644YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiIndexedEXT-None-08646YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08647YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdDrawMultiIndexedEXT-None-08648YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08649YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08650YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08651YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08652YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08653YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08654YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08655YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08656YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08657YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08658YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08659YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08660YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08661YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08662YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08663YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08664YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08665YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08666YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08667YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08668YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08669YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08670YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08671YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08672YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08673YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08674YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08675YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08676YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08677YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08678YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08679YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08680YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08681YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08682YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08683YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08684YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawMultiIndexedEXT-None-08685YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawMultiIndexedEXT-None-08686YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawMultiIndexedEXT-None-08687YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMultiIndexedEXT-None-08688YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawMultiIndexedEXT-None-08689YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-None-08690YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-None-08693YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdDrawMultiIndexedEXT-None-08694YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMultiIndexedEXT-None-08695YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdDrawMultiIndexedEXT-None-08696YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawMultiIndexedEXT-None-08698YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawMultiIndexedEXT-None-08699YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawMultiIndexedEXT-None-08876YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMultiIndexedEXT-None-08877YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08878YNoneexplicitvkCmdDrawMultiIndexedEXTcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMultiIndexedEXT-None-08879YNoneexplicitvkCmdDrawMultiIndexedEXTcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMultiIndexedEXT-None-08880YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08885YNoneexplicitvkCmdDrawMultiIndexedEXTcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdDrawMultiIndexedEXT-None-09000YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMultiIndexedEXT-None-09001YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMultiIndexedEXT-None-09002YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMultiIndexedEXT-None-09003YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawMultiIndexedEXT-None-09116YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawMultiIndexedEXT-None-09203YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdDrawMultiIndexedEXT-None-09232YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-09237YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-09363YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-None-09364YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-09365YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-09366YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-09368YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-09369YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-09462YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMultiIndexedEXT-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-04469YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08795YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08796YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027YNoneexplicitvkCmdDrawMultiIndexedEXTcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028YNoneexplicitvkCmdDrawMultiIndexedEXTcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029YNoneexplicitvkCmdDrawMultiIndexedEXTcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030YNoneexplicitvkCmdDrawMultiIndexedEXTcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07468NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04470YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04471YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04472YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04473YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-advancedBlendMaxColorAttachments-07480YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08920YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-07750YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09372YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point used by this command must not write to any resource
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMultiIndexedEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMultiIndexedEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMultiIndexedEXTcorecommandBuffer must be in the recording state
VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdDrawMultiIndexedEXT-coverageReductionMode-07491NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMultiIndexedEXT-cubicRangeClamp-09212NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiIndexedEXTcoredrawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount
VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiIndexedEXTcoreIf drawCount is greater than zero, pIndexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawIndexedInfoEXT structures
VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08913YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08914YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08915YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08916YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08917YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08918YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-exclusiveScissor-09235YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694YNoneexplicitvkCmdDrawMultiIndexedEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695YNoneexplicitvkCmdDrawMultiIndexedEXTcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07476YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07477YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07478YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07479YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMultiIndexedEXT-flags-02696YNoneexplicitvkCmdDrawMultiIndexedEXTcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawMultiIndexedEXT-format-07753YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdDrawMultiIndexedEXT-format-08936YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawMultiIndexedEXT-imageView-06172NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMultiIndexedEXT-imageView-06173NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMultiIndexedEXT-imageView-06174NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMultiIndexedEXT-imageView-06175NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMultiIndexedEXT-imageView-06176NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdDrawMultiIndexedEXT-imageView-06177NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdDrawMultiIndexedEXT-imageView-06183YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMultiIndexedEXT-imageView-06184YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiIndexedEXT-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-04770YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-pColorAttachments-08963YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-pColorBlendEnables-07470YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-08964YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08716YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-pNext-07935YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMultiIndexedEXT-pNext-09461YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-08965YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameterNNoneimplicitvkCmdDrawMultiIndexedEXTcoreIf pVertexOffset is not NULL, pVertexOffset must be a valid pointer to a valid int32_t value
VUID-vkCmdDrawMultiIndexedEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-08642YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-07481YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07471YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07489NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-09367YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09236YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09418YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09419YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09420YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdDrawMultiIndexedEXT-reductionMode-09213NNoneexplicitvkCmdDrawMultiIndexedEXTcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684YNoneexplicitvkCmdDrawMultiIndexedEXTcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawMultiIndexedEXT-renderpassYNoneimplicitvkCmdDrawMultiIndexedEXTcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-07825YNegativeCommand.MultiDraw, NegativeCommand.MultiDrawMaintenance5, NegativeCommand.MultiDrawMaintenance5Mixed, NegativeCommand.MultiDrawWholeSizeMaintenance5explicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdBindIndexBuffer
VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07485YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07486YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiIndexedEXT-samples-07472YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-samples-07473YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdDrawMultiIndexedEXT-selectableCubicWeights-09214NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04475NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawMultiIndexedEXT-stage-06481YNoneexplicitvkCmdDrawMultiIndexedEXTcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-stage-07073YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07495YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiIndexedEXT-stride-04941YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiIndexedEXTcorestride must be a multiple of 4
VUID-vkCmdDrawMultiIndexedEXT-subpass-02685YNoneexplicitvkCmdDrawMultiIndexedEXTcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawMultiIndexedEXT-uniformBuffers-06935NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiIndexedEXT-videocodingYNoneimplicitvkCmdDrawMultiIndexedEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawMultiIndexedEXT-viewType-07752YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04137NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07493NNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-09421YNoneexplicitvkCmdDrawMultiIndexedEXTcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdEncodeVideoKHR-None-07012YNegativeVideo.EncodeSessionUninitializedexplicitvkCmdEncodeVideoKHRcoreThe bound video session must not be in uninitialized state at the time the command is executed on the device
VUID-vkCmdEncodeVideoKHR-None-08250YNegativeVideo.EncodeSessionNotEncodeexplicitvkCmdEncodeVideoKHRcoreThe bound video session must have been created with an encode operation
VUID-vkCmdEncodeVideoKHR-None-08318YNegativeVideo.EncodeParamsQualityLevelMismatchexplicitvkCmdEncodeVideoKHRcoreThe bound video session parameters object must have been created with the currently set video encode quality level for the bound video session at the time the command is executed on the device
VUID-vkCmdEncodeVideoKHR-StdVideoH264PictureParameterSet-08227YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the bound video session parameters object must contain a StdVideoH264PictureParameterSet entry with seq_parameter_set_id and pic_parameter_set_id matching StdVideoEncodeH264PictureInfo::seq_parameter_set_id and StdVideoEncodeH264PictureInfo::pic_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoEncodeH264PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-StdVideoH264SequenceParameterSet-08226YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the bound video session parameters object must contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching StdVideoEncodeH264PictureInfo::seq_parameter_set_id that is provided in the pStdPictureInfo member of the VkVideoEncodeH264PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-StdVideoH265PictureParameterSet-08233YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id matching StdVideoEncodeH265PictureInfo::sps_video_parameter_set_id, StdVideoEncodeH265PictureInfo::pps_seq_parameter_set_id, and StdVideoEncodeH265PictureInfo::pps_pic_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoEncodeH265PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-StdVideoH265SequenceParameterSet-08232YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265SequenceParameterSet entry with sps_video_parameter_set_id and sps_seq_parameter_set_id matching StdVideoEncodeH265PictureInfo::sps_video_parameter_set_id and StdVideoEncodeH265PictureInfo::pps_seq_parameter_set_id, respectively, that are provided in the pStdPictureInfo member of the VkVideoEncodeH265PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-StdVideoH265VideoParameterSet-08231YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the bound video session parameters object must contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching StdVideoEncodeH265PictureInfo::sps_video_parameter_set_id that is provided in the pStdPictureInfo member of the VkVideoEncodeH265PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-activeReferencePictureCount-08216YNegativeVideo.EncodeTooManyReferencesexplicitvkCmdEncodeVideoKHRcoreactiveReferencePictureCount must be less than or equal to the VkVideoSessionCreateInfoKHR::maxActiveReferencePictures specified when the bound video session was created
VUID-vkCmdEncodeVideoKHR-bufferlevelYNoneimplicitvkCmdEncodeVideoKHRcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEncodeVideoKHR-codedOffset-08218YNegativeVideo.EncodeSetupAndRefCodedOffsetexplicitvkCmdEncodeVideoKHRcoreThe codedOffset member of the VkVideoPictureResourceInfoKHR structure pointed to by the pPictureResource member of each element of pEncodeInfo->pReferenceSlots must be an integer multiple of codedOffsetGranularity
VUID-vkCmdEncodeVideoKHR-commandBuffer-08202YNegativeVideo.EncodeProtectedNoFaultBitstreamBufferexplicitvkCmdEncodeVideoKHRcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pEncodeInfo->dstBuffer must not be a protected buffer
VUID-vkCmdEncodeVideoKHR-commandBuffer-08203YNegativeVideo.EncodeProtectedNoFaultBitstreamBufferexplicitvkCmdEncodeVideoKHRcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, then pEncodeInfo->dstBuffer must be a protected buffer
VUID-vkCmdEncodeVideoKHR-commandBuffer-08211YNegativeVideo.EncodeProtectedNoFaultEncodeInputexplicitvkCmdEncodeVideoKHRcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pEncodeInfo->srcPictureResource.imageViewBinding must not have been created from a protected image
VUID-vkCmdEncodeVideoKHR-commandBuffer-08212YNegativeVideo.EncodeProtectedNoFaultEncodeInputexplicitvkCmdEncodeVideoKHRcoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, then pEncodeInfo->srcPictureResource.imageViewBinding must have been created from a protected image
VUID-vkCmdEncodeVideoKHR-commandBuffer-cmdpoolYNegativeVideo.EncodeInlineQueryIncompatibleQueueFamily, NegativeVideo.EncodeSessionNotEncodeimplicitvkCmdEncodeVideoKHRcoreThe VkCommandPool that commandBuffer was allocated from must support encode operations
VUID-vkCmdEncodeVideoKHR-commandBuffer-parameterYNoneimplicitvkCmdEncodeVideoKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEncodeVideoKHR-commandBuffer-recordingYNoneimplicitvkCmdEncodeVideoKHRcorecommandBuffer must be in the recording state
VUID-vkCmdEncodeVideoKHR-constantQp-08269YNegativeVideo.EncodeRateControlH264ConstantQpNonZeroexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and the current rate control mode is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, then VkVideoEncodeH264NaluSliceInfoKHR::constantQp must be zero for each element of the pNaluSliceEntries member of the VkVideoEncodeH264PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-constantQp-08270YNegativeVideo.EncodeRateControlH264ConstantQpNonZero, NegativeVideo.EncodeRateControlH264ConstantQpNotInCapRange, NegativeVideo.EncodeRateControlH264ConstantQpPerSliceMismatchexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and the current rate control mode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, then VkVideoEncodeH264NaluSliceInfoKHR::constantQp must be between VkVideoEncodeH264CapabilitiesKHR::minQp and VkVideoEncodeH264CapabilitiesKHR::maxQp, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, for each element of the pNaluSliceEntries member of the VkVideoEncodeH264PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-constantQp-08271YNegativeVideo.EncodeRateControlH264ConstantQpPerSliceMismatchexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and VkVideoEncodeH264CapabilitiesKHR::flags does not include VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then VkVideoEncodeH264NaluSliceInfoKHR::constantQp must have the same value for each element of the pNaluSliceEntries member of the VkVideoEncodeH264PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-constantQp-08272YNegativeVideo.EncodeRateControlH265ConstantQpNonZeroexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and the current rate control mode is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, then VkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQp must be zero for each element of the pNaluSliceSegmentEntries member of the VkVideoEncodeH265PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-constantQp-08273YNegativeVideo.EncodeRateControlH265ConstantQpNonZero, NegativeVideo.EncodeRateControlH265ConstantQpNotInCapRange, NegativeVideo.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and the current rate control mode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, then VkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQp must be between VkVideoEncodeH265CapabilitiesKHR::minQp and VkVideoEncodeH265CapabilitiesKHR::maxQp, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, for each element of the pNaluSliceSegmentEntries member of the VkVideoEncodeH265PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-constantQp-08274YNegativeVideo.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and VkVideoEncodeH265CapabilitiesKHR::flags does not include VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then VkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQp must have the same value for each element of the pNaluSliceSegmentEntries member of the VkVideoEncodeH264PictureInfoKHR structure included in the pNext chain of pEncodeInfo
VUID-vkCmdEncodeVideoKHR-dpbFrameUseCount-08221YNegativeVideo.EncodeDuplicateFrame, NegativeVideo.EncodeDuplicateRefResourceexplicitvkCmdEncodeVideoKHRcoreAll elements of dpbFrameUseCount must be less than or equal to 1
VUID-vkCmdEncodeVideoKHR-flags-08342YNegativeVideo.EncodeCapsH264BPicInRefList, NegativeVideo.EncodeCapsH264RefPicTypeexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and VkVideoEncodeH264CapabilitiesKHR::flags does not include VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then each element of h264L0PictureTypes must not be STD_VIDEO_H264_PICTURE_TYPE_B
VUID-vkCmdEncodeVideoKHR-flags-08343YNegativeVideo.EncodeCapsH264BPicInRefListexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and VkVideoEncodeH264CapabilitiesKHR::flags does not include VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then each element of h264L1PictureTypes must not be STD_VIDEO_H264_PICTURE_TYPE_B
VUID-vkCmdEncodeVideoKHR-flags-08347YNegativeVideo.EncodeCapsH265BPicInRefList, NegativeVideo.EncodeCapsH265RefPicTypeexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and VkVideoEncodeH265CapabilitiesKHR::flags does not include VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then each element of h265L0PictureTypes must not be STD_VIDEO_H264_PICTURE_TYPE_B
VUID-vkCmdEncodeVideoKHR-flags-08348YNegativeVideo.EncodeCapsH265BPicInRefListexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and VkVideoEncodeH265CapabilitiesKHR::flags does not include VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then each element of h265L1PictureTypes must not be STD_VIDEO_H265_PICTURE_TYPE_B
VUID-vkCmdEncodeVideoKHR-maxBPictureL0ReferenceCount-08341YNegativeVideo.EncodeCapsH264PicType, NegativeVideo.EncodeCapsH264RefPicTypeexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and VkVideoEncodeH264CapabilitiesKHR::maxBPictureL0ReferenceCount and VkVideoEncodeH264CapabilitiesKHR::maxL1ReferenceCount are both zero, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then h264PictureType and each element of h264L0PictureTypes and h264L1PictureTypes must not be STD_VIDEO_H264_PICTURE_TYPE_B
VUID-vkCmdEncodeVideoKHR-maxBPictureL0ReferenceCount-08346YNegativeVideo.EncodeCapsH265PicType, NegativeVideo.EncodeCapsH265RefPicTypeexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and VkVideoEncodeH265CapabilitiesKHR::maxBPictureL0ReferenceCount and VkVideoEncodeH265CapabilitiesKHR::maxL1ReferenceCount are both zero, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then h265PictureType and each element of h265L0PictureTypes and h265L1PictureTypes must not be STD_VIDEO_H265_PICTURE_TYPE_B
VUID-vkCmdEncodeVideoKHR-maxPPictureL0ReferenceCount-08340YNegativeVideo.EncodeCapsH264PicType, NegativeVideo.EncodeCapsH264RefPicTypeexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and VkVideoEncodeH264CapabilitiesKHR::maxPPictureL0ReferenceCount is zero, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then h264PictureType and each element of h264L0PictureTypes and h264L1PictureTypes must not be STD_VIDEO_H264_PICTURE_TYPE_P
VUID-vkCmdEncodeVideoKHR-maxPPictureL0ReferenceCount-08345YNegativeVideo.EncodeCapsH265PicType, NegativeVideo.EncodeCapsH265RefPicTypeexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and VkVideoEncodeH265CapabilitiesKHR::maxPPictureL0ReferenceCount is zero, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then h265PictureType and each element of h265L0PictureTypes and h265L1PictureTypes must not be STD_VIDEO_H265_PICTURE_TYPE_P
VUID-vkCmdEncodeVideoKHR-naluSliceEntryCount-08302YNegativeVideo.EncodeCapsH264MaxSliceCount, NegativeVideo.EncodeCapsH264MoreSlicesThanMBs, NegativeVideo.EncodeRateControlH264ConstantQpPerSliceMismatchexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the naluSliceEntryCount member of the VkVideoEncodeH264PictureInfoKHR structure included in the pNext chain of pEncodeInfo must be less than or equal to minCodingBlockExtent.width multiplied by minCodingBlockExtent.height
VUID-vkCmdEncodeVideoKHR-naluSliceEntryCount-08312YNegativeVideo.EncodeCapsH264MaxSliceCount, NegativeVideo.EncodeCapsH264MoreSlicesThanMBRows, NegativeVideo.EncodeRateControlH264ConstantQpPerSliceMismatchexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and VkVideoEncodeH264CapabilitiesKHR::flags does not include VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then the naluSliceEntryCount member of the VkVideoEncodeH264PictureInfoKHR structure included in the pNext chain of pEncodeInfo must be less than or equal to minCodingBlockExtent.height
VUID-vkCmdEncodeVideoKHR-naluSliceSegmentEntryCount-08307YNegativeVideo.EncodeCapsH265DifferentSliceSegmentTypes, NegativeVideo.EncodeCapsH265MaxSliceSegmentCount, NegativeVideo.EncodeCapsH265MoreSliceSegmentsThanCTBs, NegativeVideo.EncodeCapsH265MultipleSliceSegmentsPerTile, NegativeVideo.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the naluSliceSegmentEntryCount member of the VkVideoEncodeH265PictureInfoKHR structure included in the pNext chain of pEncodeInfo must be less than or equal to minCodingBlockExtent.width multiplied by minCodingBlockExtent.height
VUID-vkCmdEncodeVideoKHR-naluSliceSegmentEntryCount-08313YNegativeVideo.EncodeCapsH265DifferentSliceSegmentTypes, NegativeVideo.EncodeCapsH265MaxSliceSegmentCount, NegativeVideo.EncodeCapsH265MoreSliceSegmentsThanCTBRows, NegativeVideo.EncodeCapsH265MultipleSliceSegmentsPerTile, NegativeVideo.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and VkVideoEncodeH265CapabilitiesKHR::flags does not include VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with, then the naluSliceSegmentEntryCount member of the VkVideoEncodeH265PictureInfoKHR structure included in the pNext chain of pEncodeInfo must be less than or equal to minCodingBlockExtent.height
VUID-vkCmdEncodeVideoKHR-opCount-07174YNegativeVideo.EncodeQueryTooManyOperationsexplicitvkCmdEncodeVideoKHRcoreFor each active query, the active query index corresponding to the query type of that query plus opCount must be less than or equal to the last activatable query index corresponding to the query type of that query plus one
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08201YNegativeVideo.EncodeIncompatBufferProfileexplicitvkCmdEncodeVideoKHRcorepEncodeInfo->dstBuffer must be compatible with the video profile the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08204YNegativeVideo.EncodeBufferOffsetAlignmentexplicitvkCmdEncodeVideoKHRcorepEncodeInfo->dstBufferOffset must be an integer multiple of VkVideoCapabilitiesKHR::minBitstreamBufferOffsetAlignment, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08205YNegativeVideo.EncodeBufferRangeAlignmentexplicitvkCmdEncodeVideoKHRcorepEncodeInfo->dstBufferRange must be an integer multiple of VkVideoCapabilitiesKHR::minBitstreamBufferSizeAlignment, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08206YNegativeVideo.EncodeIncompatInputPicProfileexplicitvkCmdEncodeVideoKHRcorepEncodeInfo->srcPictureResource.imageViewBinding must be compatible with the video profile the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08207YNegativeVideo.EncodeInputFormatMismatchexplicitvkCmdEncodeVideoKHRcoreThe format of pEncodeInfo->srcPictureResource.imageViewBinding must match the VkVideoSessionCreateInfoKHR::pictureFormat the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08208YNegativeVideo.EncodeInputCodedOffsetExtentexplicitvkCmdEncodeVideoKHRcorepEncodeInfo->srcPictureResource.codedOffset must be an integer multiple of codedOffsetGranularity
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08209YNegativeVideo.EncodeInputCodedOffsetExtentexplicitvkCmdEncodeVideoKHRcorepEncodeInfo->srcPictureResource.codedExtent must be between minCodedExtent and maxCodedExtent, inclusive, the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08210YNegativeVideo.EncodeInputMissingEncodeSrcUsageexplicitvkCmdEncodeVideoKHRcorepEncodeInfo->srcPictureResource.imageViewBinding must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08213YNegativeVideo.EncodeInvalidSetupSlotIndexexplicitvkCmdEncodeVideoKHRcoreIf pEncodeInfo->pSetupReferenceSlot is not NULL, then pEncodeInfo->pSetupReferenceSlot->slotIndex must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when the bound video session was created
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08214YNegativeVideo.EncodeSetupAndRefCodedOffsetexplicitvkCmdEncodeVideoKHRcoreIf pEncodeInfo->pSetupReferenceSlot is not NULL, then pEncodeInfo->pSetupReferenceSlot->pPictureResource->codedOffset must be an integer multiple of codedOffsetGranularity
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08215YNegativeVideo.EncodeSetupAndRefCodedOffset, NegativeVideo.EncodeSetupResourceNotBoundexplicitvkCmdEncodeVideoKHRcoreIf pEncodeInfo->pSetupReferenceSlot is not NULL, then pEncodeInfo->pSetupReferenceSlot->pPictureResource must match one of the bound reference picture resource
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08222YNegativeVideo.EncodeImageLayoutsexplicitvkCmdEncodeVideoKHRcoreThe image subresource referred to by pEncodeInfo->srcPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR layout at the time the video encode operation is executed on the device
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08223YNegativeVideo.EncodeImageLayoutsexplicitvkCmdEncodeVideoKHRcoreIf pEncodeInfo->pSetupReferenceSlot is not NULL, then the image subresource referred to by pEncodeInfo->pSetupReferenceSlot->pPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR layout at the time the video encode operation is executed on the device
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08228YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and pEncodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pEncodeInfo->pSetupReferenceSlot must include a VkVideoEncodeH264DpbSlotInfoKHR structure
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08234YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and pEncodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pEncodeInfo->pSetupReferenceSlot must include a VkVideoEncodeH265DpbSlotInfoKHR structure
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08377YNegativeVideo.EncodeSetupNullexplicitvkCmdEncodeVideoKHRcorepEncodeInfo->pSetupReferenceSlot must not be NULL unless the bound video session was created with VkVideoSessionCreateInfoKHR::maxDpbSlots equal to zero
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-parameterYNoneimplicitvkCmdEncodeVideoKHRcorepEncodeInfo must be a valid pointer to a valid VkVideoEncodeInfoKHR structure
VUID-vkCmdEncodeVideoKHR-pNext-08225YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the pNext chain of pEncodeInfo must include a VkVideoEncodeH264PictureInfoKHR structure
VUID-vkCmdEncodeVideoKHR-pNext-08229YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the pNext chain of each element of pEncodeInfo->pReferenceSlots must include a VkVideoEncodeH264DpbSlotInfoKHR structure
VUID-vkCmdEncodeVideoKHR-pNext-08230YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext chain of pEncodeInfo must include a VkVideoEncodeH265PictureInfoKHR structure
VUID-vkCmdEncodeVideoKHR-pNext-08235YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext chain of each element of pEncodeInfo->pReferenceSlots must include a VkVideoEncodeH265DpbSlotInfoKHR structure
VUID-vkCmdEncodeVideoKHR-pNext-08339YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, the pNext chain of pEncodeInfo includes a VkVideoEncodeH264PictureInfoKHR structure, and VkVideoEncodeH264PictureInfoKHR::pStdPictureInfo->pRefLists is not NULL, then each element of the RefPicList0 and RefPicList1 array members of the StdVideoEncodeH264ReferenceListsInfo structure pointed to by VkVideoEncodeH264PictureInfoKHR::pStdPictureInfo->pRefLists must either be STD_VIDEO_H264_NO_REFERENCE_PICTURE or must equal the slotIndex member of one of the elements of pEncodeInfo->pReferenceSlots
VUID-vkCmdEncodeVideoKHR-pNext-08344YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, the pNext chain of pEncodeInfo includes a VkVideoEncodeH265PictureInfoKHR structure, and VkVideoEncodeH265PictureInfoKHR::pStdPictureInfo->pRefLists is not NULL, then each element of the RefPicList0 and RefPicList1 array members of the StdVideoEncodeH265ReferenceListsInfo structure pointed to by VkVideoEncodeH265PictureInfoKHR::pStdPictureInfo->pRefLists must either be STD_VIDEO_H265_NO_REFERENCE_PICTURE or must equal the slotIndex member of one of the elements of pEncodeInfo->pReferenceSlots
VUID-vkCmdEncodeVideoKHR-pNext-08352YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, the pNext chain of pEncodeInfo includes a VkVideoEncodeH264PictureInfoKHR structure, and pEncodeInfo->referenceSlotCount is greater than zero, then VkVideoEncodeH264PictureInfoKHR::pStdPictureInfo->pRefLists must not be NULL
VUID-vkCmdEncodeVideoKHR-pNext-08353YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, the pNext chain of pEncodeInfo includes a VkVideoEncodeH264PictureInfoKHR structure, and pEncodeInfo->referenceSlotCount is greater than zero, then the slotIndex member of each element of pEncodeInfo->pReferenceSlots must equal one of the elements of the RefPicList0 or RefPicList1 array members of the StdVideoEncodeH264ReferenceListsInfo structure pointed to by VkVideoEncodeH264PictureInfoKHR::pStdPictureInfo->pRefLists
VUID-vkCmdEncodeVideoKHR-pNext-08354YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, the pNext chain of pEncodeInfo includes a VkVideoEncodeH265PictureInfoKHR structure, and pEncodeInfo->referenceSlotCount is greater than zero, then VkVideoEncodeH265PictureInfoKHR::pStdPictureInfo->pRefLists must not be NULL
VUID-vkCmdEncodeVideoKHR-pNext-08355YNegativeVideo.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, the pNext chain of pEncodeInfo includes a VkVideoEncodeH265PictureInfoKHR structure, and pEncodeInfo->referenceSlotCount is greater than zero, then the slotIndex member of each element of pEncodeInfo->pReferenceSlots must equal one of the elements of the RefPicList0 or RefPicList1 array members of the StdVideoEncodeH265ReferenceListsInfo structure pointed to by VkVideoEncodeH265PictureInfoKHR::pStdPictureInfo->pRefLists
VUID-vkCmdEncodeVideoKHR-pNext-08360YNegativeVideo.EncodeInlineQueryOpCount, NegativeVideo.EncodeInlineQueryOutOfBoundsexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and the pNext chain of pEncodeInfo includes a VkVideoInlineQueryInfoKHR structure with its queryPool member specifying a valid VkQueryPool handle, then VkVideoInlineQueryInfoKHR::queryCount must equal opCount
VUID-vkCmdEncodeVideoKHR-pNext-08361YNegativeVideo.EncodeInlineQueryUnavailableexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and the pNext chain of pEncodeInfo includes a VkVideoInlineQueryInfoKHR structure with its queryPool member specifying a valid VkQueryPool handle, then all the queries used by the command, as specified by the VkVideoInlineQueryInfoKHR structure, must be unavailable
VUID-vkCmdEncodeVideoKHR-pPictureResource-08219YNegativeVideo.EncodeDuplicateRefResource, NegativeVideo.EncodeInvalidRefSlotIndex, NegativeVideo.EncodeRefResourceNotBoundToDPBSlot, NegativeVideo.EncodeSetupAndRefCodedOffsetexplicitvkCmdEncodeVideoKHRcoreThe pPictureResource member of each element of pEncodeInfo->pReferenceSlots must match one of the bound reference picture resource associated with the DPB slot index specified in the slotIndex member of that element
VUID-vkCmdEncodeVideoKHR-pPictureResource-08220YNegativeVideo.EncodeDuplicateRefResourceexplicitvkCmdEncodeVideoKHRcoreEach video picture resource corresponding to the pPictureResource member specified in the elements of pEncodeInfo->pReferenceSlots must be unique within pEncodeInfo->pReferenceSlots
VUID-vkCmdEncodeVideoKHR-pPictureResource-08224YNegativeVideo.EncodeImageLayoutsexplicitvkCmdEncodeVideoKHRcoreThe image subresource referred to by the pPictureResource member of each element of pEncodeInfo->pReferenceSlots must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR layout at the time the video encode operation is executed on the device
VUID-vkCmdEncodeVideoKHR-queryPool-08363YNegativeVideo.EncodeInlineQueryProfileMismatch, NegativeVideo.EncodeInlineQueryTypeexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, then the queryPool specified in the VkVideoInlineQueryInfoKHR structure included in the pNext chain of pEncodeInfo must have been created with a VkVideoProfileInfoKHR structure included in the pNext chain of VkQueryPoolCreateInfo identical to the one specified in VkVideoSessionCreateInfoKHR::pVideoProfile the bound video session was created with
VUID-vkCmdEncodeVideoKHR-queryType-08362YNegativeVideo.EncodeInlineQueryTypeexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, then the queryType used to create the queryPool specified in the VkVideoInlineQueryInfoKHR structure included in the pNext chain of pEncodeInfo must be VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR or VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR
VUID-vkCmdEncodeVideoKHR-queryType-08364YNegativeVideo.EncodeInlineQueryIncompatibleQueueFamilyexplicitvkCmdEncodeVideoKHRcoreIf the bound video session was created with VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and the queryType used to create the queryPool specified in the VkVideoInlineQueryInfoKHR structure included in the pNext chain of pEncodeInfo is VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then the VkCommandPool that commandBuffer was allocated from must have been created with a queue family index that supports result status queries, as indicated by VkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport
VUID-vkCmdEncodeVideoKHR-renderpassYNoneimplicitvkCmdEncodeVideoKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdEncodeVideoKHR-slotIndex-08217YNegativeVideo.EncodeInvalidRefSlotIndexexplicitvkCmdEncodeVideoKHRcoreThe slotIndex member of each element of pEncodeInfo->pReferenceSlots must be less than the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when the bound video session was created
VUID-vkCmdEncodeVideoKHR-videocodingYNoneimplicitvkCmdEncodeVideoKHRcoreThis command must only be called inside of a video coding scope
VUID-vkCmdEndConditionalRenderingEXT-None-01985YNegativeCommand.EndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXTcoreConditional rendering must be active
VUID-vkCmdEndConditionalRenderingEXT-None-01986YNegativeCommand.EndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXTcoreIf conditional rendering was made active outside of a render pass instance, it must not be ended inside a render pass instance
VUID-vkCmdEndConditionalRenderingEXT-None-01987YNegativeCommand.EndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXTcoreIf conditional rendering was made active within a subpass it must be ended in the same subpass
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndConditionalRenderingEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameterYNoneimplicitvkCmdEndConditionalRenderingEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recordingYNoneimplicitvkCmdEndConditionalRenderingEXTcorecommandBuffer must be in the recording state
VUID-vkCmdEndConditionalRenderingEXT-videocodingYNoneimplicitvkCmdEndConditionalRenderingEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912YNoneexplicitvkCmdEndDebugUtilsLabelEXTcoreThere must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913YNegativeCommand.DebugLabelSecondaryCommandBufferexplicitvkCmdEndDebugUtilsLabelEXTcoreIf commandBuffer is a secondary command buffer, there must be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndDebugUtilsLabelEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdEndDebugUtilsLabelEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdEndDebugUtilsLabelEXTcorecommandBuffer must be in the recording state
VUID-vkCmdEndDebugUtilsLabelEXT-videocodingYNoneimplicitvkCmdEndDebugUtilsLabelEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdEndQuery-None-01923YNegativeProtectedMemory.UnprotectedCommands, NegativeQuery.ActiveEndQueryexplicitvkCmdEndQuerycoreAll queries used by the command must be active
VUID-vkCmdEndQuery-None-07007YNegativeQuery.InsideRenderPass, NegativeQuery.InsideRenderPassDynamicRenderingexplicitvkCmdEndQuerycoreIf called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass
VUID-vkCmdEndQuery-commandBuffer-01886YNegativeProtectedMemory.UnprotectedCommandsexplicitvkCmdEndQuerycorecommandBuffer must not be a protected command buffer
VUID-vkCmdEndQuery-commandBuffer-cmdpoolYNoneimplicitvkCmdEndQuerycoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdEndQuery-commandBuffer-parameterYNoneimplicitvkCmdEndQuerycorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndQuery-commandBuffer-recordingYNoneimplicitvkCmdEndQuerycorecommandBuffer must be in the recording state
VUID-vkCmdEndQuery-commonparentYNoneimplicitvkCmdEndQuerycoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdEndQuery-query-00810YNegativeQuery.SizesexplicitvkCmdEndQuerycorequery must be less than the number of queries in queryPool
VUID-vkCmdEndQuery-query-00812YNoneexplicitvkCmdEndQuerycoreIf vkCmdEndQuery 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-03227YNegativeQuery.PerformanceCounterCommandbufferScopeexplicitvkCmdEndQuerycoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the vkCmdEndQuery must be the last recorded command in commandBuffer
VUID-vkCmdEndQuery-queryPool-03228YNoneexplicitvkCmdEndQuerycoreIf queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the vkCmdEndQuery must not be recorded within a render pass instance
VUID-vkCmdEndQuery-queryPool-parameterYNegativeQuery.CmdEndQueryWithoutQueryPoolimplicitvkCmdEndQuerycorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdEndQueryIndexedEXT-None-02342YNegativeQuery.CmdEndQueryIndexedEXTIndexexplicitvkCmdEndQueryIndexedEXTcoreAll queries used by the command must be active
VUID-vkCmdEndQueryIndexedEXT-None-07007YNoneexplicitvkCmdEndQueryIndexedEXTcoreIf called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344YNoneexplicitvkCmdEndQueryIndexedEXTcorecommandBuffer must not be a protected command buffer
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndQueryIndexedEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdEndQueryIndexedEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdEndQueryIndexedEXTcorecommandBuffer must be in the recording state
VUID-vkCmdEndQueryIndexedEXT-commonparentYNoneimplicitvkCmdEndQueryIndexedEXTcoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdEndQueryIndexedEXT-query-02343YNegativeQuery.CmdEndQueryIndexedEXTIndexexplicitvkCmdEndQueryIndexedEXTcorequery must be less than the number of queries in queryPool
VUID-vkCmdEndQueryIndexedEXT-query-02345YNoneexplicitvkCmdEndQueryIndexedEXTcoreIf vkCmdEndQueryIndexedEXT is called within a render pass instance, the sum of query and the number of bits set in the current subpass's view mask must be less than or equal to the number of queries in queryPool
VUID-vkCmdEndQueryIndexedEXT-queryPool-parameterYNoneimplicitvkCmdEndQueryIndexedEXTcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdEndQueryIndexedEXT-queryType-06694YNegativeQuery.CmdEndQueryIndexedEXTIndex, NegativeQuery.CmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdEndQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT or VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-vkCmdEndQueryIndexedEXT-queryType-06695YNegativeQuery.CmdEndQueryIndexedEXTIndex, NegativeQuery.CmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdEndQueryIndexedEXTcoreIf the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT and not VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, the index must be zero
VUID-vkCmdEndQueryIndexedEXT-queryType-06696YNegativeQuery.CmdEndQueryIndexedEXTIndex, NegativeQuery.CmdEndQueryIndexedEXTPrimitiveGenerated, NegativeQuery.PrimitivesGeneratedexplicitvkCmdEndQueryIndexedEXTcoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT or VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT, index must equal the index used to begin the query
VUID-vkCmdEndQueryIndexedEXT-videocodingYNoneimplicitvkCmdEndQueryIndexedEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdEndRenderPass-None-00910YNegativeSubpass.RenderPassEndBeforeFinalSubpass, NegativeSyncVal.RenderPassAsyncHazardexplicitvkCmdEndRenderPasscoreThe current subpass index must be equal to the number of subpasses in the render pass minus one
VUID-vkCmdEndRenderPass-None-02351YNegativeTransformFeedback.EndRenderPassexplicitvkCmdEndRenderPasscoreThis command must not be recorded when transform feedback is active
VUID-vkCmdEndRenderPass-None-06170YNegativeDynamicRendering.EndRenderpassWithBeginRenderingRenderpassInstanceexplicitvkCmdEndRenderPasscoreThe current render pass instance must not have been begun with vkCmdBeginRendering
VUID-vkCmdEndRenderPass-None-07004YNegativeQuery.OutsideRenderPassexplicitvkCmdEndRenderPasscoreIf vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRenderPass-bufferlevelYNoneimplicitvkCmdEndRenderPasscorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndRenderPass-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRenderPasscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRenderPass-commandBuffer-parameterYNoneimplicitvkCmdEndRenderPasscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRenderPass-commandBuffer-recordingYNoneimplicitvkCmdEndRenderPasscorecommandBuffer must be in the recording state
VUID-vkCmdEndRenderPass-renderpassYNegativeRenderPass.EndWithoutRenderPassimplicitvkCmdEndRenderPasscoreThis command must only be called inside of a render pass instance
VUID-vkCmdEndRenderPass-videocodingYNoneimplicitvkCmdEndRenderPasscoreThis command must only be called outside of a video coding scope
VUID-vkCmdEndRenderPass2-None-02352YNoneexplicitvkCmdEndRenderPass2coreThis command must not be recorded when transform feedback is active
VUID-vkCmdEndRenderPass2-None-03103YNegativeSubpass.RenderPassEndBeforeFinalSubpassexplicitvkCmdEndRenderPass2coreThe current subpass index must be equal to the number of subpasses in the render pass minus one
VUID-vkCmdEndRenderPass2-None-06171YNegativeDynamicRendering.EndRenderpassWithBeginRenderingRenderpassInstanceexplicitvkCmdEndRenderPass2coreThe current render pass instance must not have been begun with vkCmdBeginRendering
VUID-vkCmdEndRenderPass2-None-07005YNoneexplicitvkCmdEndRenderPass2coreIf vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRenderPass2-bufferlevelYNoneimplicitvkCmdEndRenderPass2corecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndRenderPass2-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRenderPass2coreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRenderPass2-commandBuffer-parameterYNoneimplicitvkCmdEndRenderPass2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRenderPass2-commandBuffer-recordingYNoneimplicitvkCmdEndRenderPass2corecommandBuffer must be in the recording state
VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameterYNoneimplicitvkCmdEndRenderPass2corepSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure
VUID-vkCmdEndRenderPass2-renderpassYNoneimplicitvkCmdEndRenderPass2coreThis command must only be called inside of a render pass instance
VUID-vkCmdEndRenderPass2-videocodingYNoneimplicitvkCmdEndRenderPass2coreThis command must only be called outside of a video coding scope
VUID-vkCmdEndRendering-None-06161YNegativeDynamicRendering.BeginRenderingDisabled, NegativeDynamicRendering.EndRenderingWithIncorrectlyStartedRenderpassInstanceexplicitvkCmdEndRenderingcoreThe current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdEndRendering-None-06781NNoneexplicitvkCmdEndRenderingcoreThis command must not be recorded when transform feedback is active
VUID-vkCmdEndRendering-None-06999YNegativeQuery.OutsideRenderPassDynamicRenderingexplicitvkCmdEndRenderingcoreIf vkCmdBeginQuery* was called within the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRendering-commandBuffer-06162YNegativeDynamicRendering.EndRenderingWithIncorrectlyStartedRenderpassInstanceexplicitvkCmdEndRenderingcoreThe current render pass instance must have been begun in commandBuffer
VUID-vkCmdEndRendering-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRenderingcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRendering-commandBuffer-parameterYNoneimplicitvkCmdEndRenderingcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRendering-commandBuffer-recordingYNoneimplicitvkCmdEndRenderingcorecommandBuffer must be in the recording state
VUID-vkCmdEndRendering-renderpassYNegativeDynamicRendering.EndTwiceimplicitvkCmdEndRenderingcoreThis command must only be called inside of a render pass instance
VUID-vkCmdEndRendering-videocodingYNoneimplicitvkCmdEndRenderingcoreThis command must only be called outside of a video coding scope
VUID-vkCmdEndTransformFeedbackEXT-None-02375YNegativeTransformFeedback.CmdEndTransformFeedbackEXT, NegativeTransformFeedback.FeatureEnabledexplicitvkCmdEndTransformFeedbackEXTcoreTransform feedback must be active
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndTransformFeedbackEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameterYNoneimplicitvkCmdEndTransformFeedbackEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recordingYNoneimplicitvkCmdEndTransformFeedbackEXTcorecommandBuffer must be in the recording state
VUID-vkCmdEndTransformFeedbackEXT-commonparentYNoneimplicitvkCmdEndTransformFeedbackEXTcoreBoth of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608NNoneexplicitvkCmdEndTransformFeedbackEXTcoreIf counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE
VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376YNegativeTransformFeedback.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTcorefirstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377YNegativeTransformFeedback.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTcoreThe sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379YNegativeTransformFeedback.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTcoreIf pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL
VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378YNegativeTransformFeedback.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTcoreFor each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array
VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameterNNoneimplicitvkCmdEndTransformFeedbackEXTcoreIf counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values
VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380YNegativeTransformFeedback.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTcoreFor each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
VUID-vkCmdEndTransformFeedbackEXT-renderpassYNoneimplicitvkCmdEndTransformFeedbackEXTcoreThis command must only be called inside of a render pass instance
VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374YNegativeTransformFeedback.FeatureEnabledexplicitvkCmdEndTransformFeedbackEXTcoreVkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdEndTransformFeedbackEXT-videocodingYNoneimplicitvkCmdEndTransformFeedbackEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdEndVideoCodingKHR-None-07251YNegativeVideo.EndCodingActiveQueriesNotAllowedexplicitvkCmdEndVideoCodingKHRcoreThere must be no active queries
VUID-vkCmdEndVideoCodingKHR-bufferlevelYNoneimplicitvkCmdEndVideoCodingKHRcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndVideoCodingKHR-commandBuffer-cmdpoolYNegativeVideo.DecodeInlineQueryIncompatibleQueueFamily, NegativeVideo.EncodeInlineQueryIncompatibleQueueFamilyimplicitvkCmdEndVideoCodingKHRcoreThe VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdEndVideoCodingKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdEndVideoCodingKHRcorecommandBuffer must be in the recording state
VUID-vkCmdEndVideoCodingKHR-pEndCodingInfo-parameterYNoneimplicitvkCmdEndVideoCodingKHRcorepEndCodingInfo must be a valid pointer to a valid VkVideoEndCodingInfoKHR structure
VUID-vkCmdEndVideoCodingKHR-renderpassYNoneimplicitvkCmdEndVideoCodingKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdEndVideoCodingKHR-videocodingYNegativeVideo.VideoCodingScopeimplicitvkCmdEndVideoCodingKHRcoreThis command must only be called inside of a video coding scope
VUID-vkCmdExecuteCommands-None-02286YNoneexplicitvkCmdExecuteCommandscoreThis command must not be recorded when transform feedback is active
VUID-vkCmdExecuteCommands-colorAttachmentCount-06027YNegativeDynamicRendering.ExecuteCommandsWithMismatchingColorAttachmentCountexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the colorAttachmentCount member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::colorAttachmentCount parameter to vkCmdBeginRendering
VUID-vkCmdExecuteCommands-commandBuffer-00101YNoneexplicitvkCmdExecuteCommandscoreIf the inheritedQueries feature is not enabled, commandBuffer must not have any queries active
VUID-vkCmdExecuteCommands-commandBuffer-00102YNegativeQuery.CommandBufferMissingOcclusionexplicitvkCmdExecuteCommandscoreIf commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::occlusionQueryEnable set to VK_TRUE
VUID-vkCmdExecuteCommands-commandBuffer-00103YNegativeQuery.CommandBufferInheritanceFlagsexplicitvkCmdExecuteCommandscoreIf commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::queryFlags having all bits set that are set for the query
VUID-vkCmdExecuteCommands-commandBuffer-00104YNegativeQuery.PipelineStatisticsQueryWithSecondaryCmdBufferexplicitvkCmdExecuteCommandscoreIf commandBuffer has a VK_QUERY_TYPE_PIPELINE_STATISTICS query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::pipelineStatistics having all bits set that are set in the VkQueryPool the query uses
VUID-vkCmdExecuteCommands-commandBuffer-01820YNoneexplicitvkCmdExecuteCommandscoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be a protected command buffer
VUID-vkCmdExecuteCommands-commandBuffer-01821YNoneexplicitvkCmdExecuteCommandscoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be an unprotected command buffer
VUID-vkCmdExecuteCommands-commandBuffer-06533NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands 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-06534NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands 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-commandBuffer-07594YNegativeQuery.CmdExecuteCommandsActiveQueriesexplicitvkCmdExecuteCommandscorecommandBuffer must not have any queries other than VK_QUERY_TYPE_OCCLUSION and VK_QUERY_TYPE_PIPELINE_STATISTICS active
VUID-vkCmdExecuteCommands-commandBuffer-09375YNegativeCommand.ExecuteCommandsToSecondaryCBexplicitvkCmdExecuteCommandscorecommandBuffer must not be a secondary command buffer unless the nestedCommandBuffer feature is enabled
VUID-vkCmdExecuteCommands-commandBuffer-cmdpoolYNoneimplicitvkCmdExecuteCommandscoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdExecuteCommands-commandBuffer-parameterYNoneimplicitvkCmdExecuteCommandscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdExecuteCommands-commandBuffer-recordingYNegativeCommand.SecondaryCommandBufferRerecordedExplicitReset, NegativeCommand.SecondaryCommandBufferRerecordedNoResetimplicitvkCmdExecuteCommandscorecommandBuffer must be in the recording state
VUID-vkCmdExecuteCommands-commandBufferCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkCmdExecuteCommandscorecommandBufferCount must be greater than 0
VUID-vkCmdExecuteCommands-commonparentYNoneimplicitvkCmdExecuteCommandscoreBoth of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdExecuteCommands-contents-06018YNegativeCommand.RenderPassContentsWhenCallingCmdExecuteCommandsWithBeginRenderPass, NegativeDynamicRendering.SecondaryCommandBufferContentsexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, its contents parameter must have been set to VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS , or VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT
VUID-vkCmdExecuteCommands-flags-06024YNegativeDynamicRendering.BadRenderPassContentsWhenCallingCmdExecuteCommandsexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, its VkRenderingInfo::flags parameter must have included VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT
VUID-vkCmdExecuteCommands-flags-06026YNegativeDynamicRendering.ExecuteCommandsWithMismatchingFlagsexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the flags member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::flags parameter to vkCmdBeginRendering, excluding VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT
VUID-vkCmdExecuteCommands-imageView-06028YNegativeDynamicRendering.ExecuteCommandsWithMismatchingColorImageViewFormatexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view
VUID-vkCmdExecuteCommands-imageView-07606YNegativeDynamicRendering.ExecuteCommandsWithNullImageViewexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376NNoneexplicitvkCmdExecuteCommandscoreIf the nestedCommandBuffer feature is enabled, the command buffer nesting level of each element of pCommandBuffers must be less than maxCommandBufferNestingLevel
VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377NNoneexplicitvkCmdExecuteCommandscoreIf the nestedCommandBufferRendering feature is not enabled, and commandBuffer is a secondary command buffer, commandBuffer must not have been recorded with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378NNoneexplicitvkCmdExecuteCommandscoreIf the nestedCommandBufferSimultaneousUse feature is not enabled, and commandBuffer is a secondary command buffer, each element of pCommandBuffers must not have been recorded with VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
VUID-vkCmdExecuteCommands-pBeginInfo-06020YNegativeCommand.IncompatibleRenderPassesInExecuteCommands, NegativeDynamicRendering.SecondaryCommandBufferIncompatibleRenderPass, NegativeFragmentShadingRate.IncompatibleFragmentRateShadingAttachmentInExecuteCommandsexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass
VUID-vkCmdExecuteCommands-pBeginInfo-06025YNegativeDynamicRendering.ExecuteCommandsWithNonNullRenderPassexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be VK_NULL_HANDLE
VUID-vkCmdExecuteCommands-pCommandBuffers-00088YNegativeCommand.ExecuteCommandsPrimaryCBexplicitvkCmdExecuteCommandscoreEach element of pCommandBuffers must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-vkCmdExecuteCommands-pCommandBuffers-00089YNegativeCommand.ExecuteUnrecordedSecondaryCBexplicitvkCmdExecuteCommandscoreEach element of pCommandBuffers must be in the pending or executable state
VUID-vkCmdExecuteCommands-pCommandBuffers-00091YNoneexplicitvkCmdExecuteCommandscoreIf any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not be in the pending state
VUID-vkCmdExecuteCommands-pCommandBuffers-00092YNegativeCommand.SimultaneousUseSecondaryTwoExecutesexplicitvkCmdExecuteCommandscoreIf any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not have already been recorded to commandBuffer
VUID-vkCmdExecuteCommands-pCommandBuffers-00093YNegativeCommand.SimultaneousUseSecondarySingleExecuteexplicitvkCmdExecuteCommandscoreIf any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not appear more than once in pCommandBuffers
VUID-vkCmdExecuteCommands-pCommandBuffers-00094YNegativeCommand.ExecuteDiffertQueueFlagsSecondaryCBexplicitvkCmdExecuteCommandscoreEach element of pCommandBuffers must have been allocated from a VkCommandPool that was created for the same queue family as the VkCommandPool from which commandBuffer was allocated
VUID-vkCmdExecuteCommands-pCommandBuffers-00096YNegativeCommand.RenderPassScopeSecondaryCmdBufferexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance, each element of pCommandBuffers must have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
VUID-vkCmdExecuteCommands-pCommandBuffers-00099YNegativeRenderPass.FramebufferIncompatibleexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance, and any element of pCommandBuffers was recorded with VkCommandBufferInheritanceInfo::framebuffer not equal to VK_NULL_HANDLE, that VkFramebuffer must match the VkFramebuffer used in the current render pass instance
VUID-vkCmdExecuteCommands-pCommandBuffers-00100YNegativeCommand.RenderPassScopeSecondaryCmdBufferexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is not being called within a render pass instance, each element of pCommandBuffers must not have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
VUID-vkCmdExecuteCommands-pCommandBuffers-00105YNegativeQuery.CmdExecuteBeginActiveQueryexplicitvkCmdExecuteCommandscoreEach element of pCommandBuffers must not begin any query types that are active in commandBuffer
VUID-vkCmdExecuteCommands-pCommandBuffers-06019YNegativeCommand.ExecuteCommandsSubpassIndices, NegativeDynamicRendering.SecondaryCommandBufferIncompatibleSubpassexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::subpass set to the index of the subpass which the given command buffer will be executed in
VUID-vkCmdExecuteCommands-pCommandBuffers-06021NNoneexplicitvkCmdExecuteCommandscoreIf pCommandBuffers contains any 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-06022NNoneexplicitvkCmdExecuteCommandscoreIf pCommandBuffers contains any 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-pCommandBuffers-06535NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands 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-06536NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands 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-parameterYNoneimplicitvkCmdExecuteCommandscorepCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles
VUID-vkCmdExecuteCommands-pDepthAttachment-06029YNegativeDynamicRendering.ExecuteCommandsWithMismatchingDepthStencilImageViewFormatexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view
VUID-vkCmdExecuteCommands-pDepthAttachment-06774YNegativeDynamicRendering.NullDepthStencilExecuteCommandsexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering was VK_NULL_HANDLE, the value of the depthAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteCommands-pNext-02865NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM in the pNext chain of VkCommandBufferBeginInfo
VUID-vkCmdExecuteCommands-pNext-02866NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::transform identical to VkRenderPassTransformBeginInfoQCOM::transform
VUID-vkCmdExecuteCommands-pNext-02867NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::renderArea identical to VkRenderPassBeginInfo::renderArea
VUID-vkCmdExecuteCommands-pNext-06032YNegativeDynamicRendering.ExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the corresponding element of the pColorAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::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-06033YNegativeDynamicRendering.ExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::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-06034YNegativeDynamicRendering.ExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of the VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure included in the pNext chain of VkCommandBufferBeginInfo::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-06035YNegativeDynamicRendering.ExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view
VUID-vkCmdExecuteCommands-pNext-06036YNegativeDynamicRendering.ExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pDepthAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view
VUID-vkCmdExecuteCommands-pNext-06037YNegativeDynamicRendering.ExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be equal to the sample count used to create that image view
VUID-vkCmdExecuteCommands-pNext-09299NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, with any color attachment using a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, the pNext chain of VkCommandBufferInheritanceInfo used to create each element of pCommandBuffers must include a VkExternalFormatANDROID structure with a externalFormat matching that used to create the resolve attachment in the render pass
VUID-vkCmdExecuteCommands-pNext-09300NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering with any color attachment using a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdExecuteCommands-pStencilAttachment-06030YNegativeDynamicRendering.ExecuteCommandsWithMismatchingDepthStencilImageViewFormatexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering is not VK_NULL_HANDLE, the value of the stencilAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the format used to create that image view
VUID-vkCmdExecuteCommands-pStencilAttachment-06775YNegativeDynamicRendering.NullDepthStencilExecuteCommandsexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering and the VkRenderingInfo::pStencilAttachment->imageView parameter to vkCmdBeginRendering was VK_NULL_HANDLE, the value of the stencilAttachmentFormat member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteCommands-variableSampleLocations-06023NNoneexplicitvkCmdExecuteCommandscoreIf the variableSampleLocations limit is not supported, and any element of pCommandBuffers contains any 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-videocodingYNoneimplicitvkCmdExecuteCommandscoreThis command must only be called outside of a video coding scope
VUID-vkCmdExecuteCommands-viewMask-06031YNegativeDynamicRendering.ExecuteCommandsWithMismatchingViewMaskexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the viewMask member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::viewMask parameter to vkCmdBeginRendering
VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdExecuteGeneratedCommandsNV-None-02691NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-None-02692NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-None-02693NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdExecuteGeneratedCommandsNV-None-02721NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdExecuteGeneratedCommandsNV-None-02910NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreTransform feedback must not be active
VUID-vkCmdExecuteGeneratedCommandsNV-None-04007NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdExecuteGeneratedCommandsNV-None-04008NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the 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 VK_NULL_HANDLE
VUID-vkCmdExecuteGeneratedCommandsNV-None-04875NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04876NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04877NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04879NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04912NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04914NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdExecuteGeneratedCommandsNV-None-06479NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-None-06537NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-06539NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdExecuteGeneratedCommandsNV-None-06550NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdExecuteGeneratedCommandsNV-None-06666NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-06886NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdExecuteGeneratedCommandsNV-None-06887NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdExecuteGeneratedCommandsNV-None-07288NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAny shader invocation executed by this command must terminate
VUID-vkCmdExecuteGeneratedCommandsNV-None-07469NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdExecuteGeneratedCommandsNV-None-07619NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07620NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07621NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07622NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07623NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07624NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07625NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07626NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07627NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07628NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07629NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07630NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07631NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07632NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07633NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07634NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07635NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07636NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07637NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07638NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07639NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07640NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07641NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07642NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07643NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07644NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07645NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07646NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07647NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07648NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07649NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07748NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdExecuteGeneratedCommandsNV-None-07749NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07751NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdExecuteGeneratedCommandsNV-None-07831NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07832NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07833NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07834NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07835NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07836NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the current depthBoundsTestEnable state is VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07837NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07838NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07839NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if the current stencilTestEnable state is VK_TRUE, then vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07840NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07841NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07842NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07843NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07844NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07845NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07846NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled then vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07847NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07848NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07849NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07850NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07878NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07879NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07880NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07881NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07888NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08114NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08115NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08116NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08117NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08119NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdExecuteGeneratedCommandsNV-None-08600NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdExecuteGeneratedCommandsNV-None-08601NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdExecuteGeneratedCommandsNV-None-08604NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08605NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdExecuteGeneratedCommandsNV-None-08606NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08607NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08608NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdExecuteGeneratedCommandsNV-None-08609NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdExecuteGeneratedCommandsNV-None-08610NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
VUID-vkCmdExecuteGeneratedCommandsNV-None-08611NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
VUID-vkCmdExecuteGeneratedCommandsNV-None-08612NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdExecuteGeneratedCommandsNV-None-08613NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdExecuteGeneratedCommandsNV-None-08617NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08618NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08619NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, vkCmdSetLineWidth must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08620NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBiasEnable in the current command buffer set depthBiasEnable to VK_TRUE, vkCmdSetDepthBias or vkCmdSetDepthBias2EXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08621NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer set any element of pColorBlendEnables to VK_TRUE, and the most recent call to vkCmdSetColorBlendEquationEXT in the current command buffer set the same element of pColorBlendEquations to a VkColorBlendEquationEXT structure with any VkBlendFactor member with a value of VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_CONSTANT_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, vkCmdSetBlendConstants must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08622NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthBoundsTestEnable in the current command buffer set depthBoundsTestEnable to VK_TRUE, then vkCmdSetDepthBounds must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08623NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilCompareMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08624NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilWriteMask must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08625NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, vkCmdSetStencilReference must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08626NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetSampleLocationsEnableEXT in the current command buffer set sampleLocationsEnable to VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08627NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCullMode must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08628NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFrontFace must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08629NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08630NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthWriteEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08631NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDepthTestEnable in the current command buffer set depthTestEnable to VK_TRUE, then vkCmdSetDepthCompareOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08632NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the depthBounds feature is enabled, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the vkCmdSetDepthBoundsTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08633NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetStencilTestEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08634NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetStencilTestEnable in the current command buffer set stencilTestEnable to VK_TRUE, then vkCmdSetStencilOp must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08635NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-None-08636NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-None-08637NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-None-08638NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetExclusiveScissorEnableNV in the current command buffer set any element of pExclusiveScissorEnables to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08639NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08640NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08641NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLogicOpEnableEXT set logicOpEnable to VK_TRUE, then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdExecuteGeneratedCommandsNV-None-08643NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then for each color attachment in the render pass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member of pColorBlendEnables in the most recent call to vkCmdSetColorBlendEnableEXT in the current command buffer that affected that attachment index must have been VK_FALSE
VUID-vkCmdExecuteGeneratedCommandsNV-None-08644NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then the most recent call to vkCmdSetRasterizationSamplesEXT in the current command buffer must have set rasterizationSamples to be the same as the number of samples for the current render pass color and/or depth/stencil attachments
VUID-vkCmdExecuteGeneratedCommandsNV-None-08646NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08647NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the colorWriteEnable feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then the attachmentCount parameter of most recent call to vkCmdSetColorWriteEnableEXT in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
VUID-vkCmdExecuteGeneratedCommandsNV-None-08648NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDiscardRectangleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08649NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08650NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the depthClamp feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08651NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08652NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08653NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08654NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08655NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the alphaToOne feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08656NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the logicOp feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08657NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08658NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetColorBlendEnableEXT for any attachment set that attachment's value in pColorBlendEnables to VK_TRUE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08659NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08660NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage, then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08661NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08662NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_conservative_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetConservativeRasterizationModeEXT in the current command buffer set conservativeRasterizationMode to VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08663NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08664NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_sample_locations extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08665NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_provoking_vertex extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08666NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08667NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08668NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08669NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08670NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08671NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08672NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetLineStippleEnableEXT in the current command buffer set stippledLineEnable to VK_TRUE, then vkCmdSetLineStippleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08673NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08674NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08675NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage, then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08676NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08677NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageToColorEnableNV in the current command buffer set coverageToColorEnable to VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08678NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08679NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationModeNV in the current command buffer set coverageModulationMode to any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08680NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetCoverageModulationTableEnableNV in the current command buffer set coverageModulationTableEnable to VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08681NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08682NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the representativeFragmentTest feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08683NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the coverageReductionMode feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08684NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08685NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08686NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and the tessellationShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08687NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and the geometryShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08688NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08689NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08690NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must have been called in the current command buffer with pStages with an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-None-08693NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and at least one of the taskShader and meshShader features is enabled, one of the VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT stages must have a valid VkShaderEXT bound, and the other must have no VkShaderEXT bound
VUID-vkCmdExecuteGeneratedCommandsNV-None-08694NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created without the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid VkShaderEXT must be bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdExecuteGeneratedCommandsNV-None-08695NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and both the taskShader and meshShader features are enabled, and a valid VkShaderEXT is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT stage, and that VkShaderEXT was created with the VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must be no VkShaderEXT bound to the VK_SHADER_STAGE_TASK_BIT_EXT stage
VUID-vkCmdExecuteGeneratedCommandsNV-None-08696NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no bound graphics pipeline, and a valid VkShaderEXT is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdExecuteGeneratedCommandsNV-None-08698NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same vkCreateShadersEXT call must also be bound
VUID-vkCmdExecuteGeneratedCommandsNV-None-08699NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf any graphics shader is bound which was created with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between stages whose shaders which did not create a shader with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdExecuteGeneratedCommandsNV-None-08876NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdExecuteGeneratedCommandsNV-None-08877NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08878NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdExecuteGeneratedCommandsNV-None-08879NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdExecuteGeneratedCommandsNV-None-08880NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the attachmentFeedbackLoopDynamicState feature is enabled on the device, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08885NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreThere must be no shader object bound to either of the VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT stages
VUID-vkCmdExecuteGeneratedCommandsNV-None-09000NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_COLOR_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09001NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09002NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09003NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09116NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdExecuteGeneratedCommandsNV-None-09203NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-09211NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_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 VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT must be the same as the rasterizationSamples member of that structure
VUID-vkCmdExecuteGeneratedCommandsNV-None-09232NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 vkCmdSetViewportWScalingEnableNV in the current command buffer set viewportWScalingEnable to VK_TRUE, then vkCmdSetViewportWScalingNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09237NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09363NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-None-09364NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, then vkCmdSetColorBlendEnableEXT must have set the blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09365NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09366NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09368NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-09369NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-04469NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08795NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08796NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07027NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07028NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07029NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07030NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07468NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04471NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04472NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64
VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04473NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32
VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportSwizzleStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure chained from VkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-advancedBlendMaxColorAttachments-07480NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and the last calls to vkCmdSetColorBlendEnableEXT and vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then the number of active color attachments in the current subpass must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08919NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and alphaToCoverageEnable was VK_TRUE in the last call to vkCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08920NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage, and the most recent call to vkCmdSetAlphaToCoverageEnableEXT in the current command buffer set alphaToCoverageEnable to VK_TRUE, then the Fragment Output Interface must contain a variable for the alpha Component word in Location 0 at Index 0
VUID-vkCmdExecuteGeneratedCommandsNV-attachmentCount-07750NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06179NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled and the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::colorAttachmentCount equal to VkRenderingInfo::colorAttachmentCount
VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06185NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the corresponding element of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09372NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970NNoneexplicitvkCmdExecuteGeneratedCommandsNVcorecommandBuffer must not be a protected command buffer
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpoolYNoneimplicitvkCmdExecuteGeneratedCommandsNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameterYNoneimplicitvkCmdExecuteGeneratedCommandsNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recordingYNoneimplicitvkCmdExecuteGeneratedCommandsNVcorecommandBuffer must be in the recording state
VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, 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 vkCmdSetConservativeRasterizationModeEXT must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-coverageModulationTableEnable-07488NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass
VUID-vkCmdExecuteGeneratedCommandsNV-coverageReductionMode-07491NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf this VK_NV_coverage_reduction_mode extension is enabled, the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and VK_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 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdExecuteGeneratedCommandsNV-coverageToColorEnable-07490NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdExecuteGeneratedCommandsNV-cubicRangeClamp-09212NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08910NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the dynamicRenderingUnusedAttachments feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08913NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08914NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08915NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08916NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08917NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08918NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the dynamicRenderingUnusedAttachments feature is enabled, VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, and the value of VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the currently bound graphics pipeline was not equal to the VkFormat used to create VkRenderingInfo::pStencilAttachment->imageView, the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-exclusiveScissor-09235NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage, then vkCmdSetExclusiveScissorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdExecuteGeneratedCommandsNV-filterCubicMinmax-02695NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07476NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07477NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07478NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07479NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendAdvancedEXT calls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdExecuteGeneratedCommandsNV-flags-02696NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdExecuteGeneratedCommandsNV-format-07753NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdExecuteGeneratedCommandsNV-format-08936NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::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-08937NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_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 VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06173NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06174NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06175NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06176NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pDepthAttachment is not VK_NULL_HANDLE, and the layout member of pDepthAttachment is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06177NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the imageView member of pStencilAttachment is not VK_NULL_HANDLE, and the layout member of pStencilAttachment is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06184NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering and VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView was not VK_NULL_HANDLE, the currently bound graphics pipeline must have been created with VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf isPreprocessed is VK_TRUE then vkCmdPreprocessGeneratedCommandsNV must have already been executed on the device, using the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoNV::preprocessBuffer). Furthermore pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set
VUID-vkCmdExecuteGeneratedCommandsNV-logicOp-04878NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdExecuteGeneratedCommandsNV-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of Location for any output attachment statically used in the Fragment Execution Model executed by this command must be less than maxFragmentDualSrcAttachments
VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07285NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07286NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07287NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-pColorAttachments-08963NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, 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 VkRenderingInfo::pColorAttachments->imageView was not VK_NULL_HANDLE, then the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-pColorBlendEnables-07470NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables for any attachment to VK_TRUE, then for those attachments in the subpass the corresponding image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06186NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-08964NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter in the last call to vkCmdSetDepthWriteEnable must be VK_FALSE
VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08716NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state includes a fragment shader stage, was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the writeMask parameter in the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09370NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09371NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameterYNoneimplicitvkCmdExecuteGeneratedCommandsNVcorepGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure
VUID-vkCmdExecuteGeneratedCommandsNV-pNext-07935NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06187NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-08965NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreVkGeneratedCommandsInfoNV::pipeline must match the current bound pipeline at VkGeneratedCommandsInfoNV::pipelineBindPoint
VUID-vkCmdExecuteGeneratedCommandsNV-pipelineFragmentShadingRate-09238NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the pipelineFragmentShadingRate feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_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 vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-08642NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and any shader object bound to a graphics stage writes to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must be 1
VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-06709NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, the bound graphics pipeline must not have been created with a non-zero value in VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-07481NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the primitivesGeneratedQueryWithNonZeroStreams feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, and the bound graphics pipeline was created with VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last call to vkCmdSetRasterizationStreamEXT must have set the rasterizationStream to zero
VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithRasterizerDiscard-06708NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07471NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must follow the rules for a zero-attachment subpass
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07474NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_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 vkCmdSetRasterizationSamplesEXT must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07489NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07494NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-09367NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09236NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_discard_rectangles extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetDiscardRectangleEnableEXT in the current command buffer set discardRectangleEnable to VK_TRUE, then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09416NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_EXT_blend_operation_advanced extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then at least one of vkCmdSetColorBlendEquationEXT and vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09417NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEnableEXT calls must specify an enable for all active color attachments in the current subpass
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09418NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorBlendEquationEXT calls must specify the blend equations for all active color attachments in the current subpass where blending is enabled
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09419NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command, and the attachments specified by the firstAttachment and attachmentCount parameters of vkCmdSetColorWriteMaskEXT calls must specify the color write mask for all active color attachments in the current subpass
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09420NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT
VUID-vkCmdExecuteGeneratedCommandsNV-reductionMode-09213NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdExecuteGeneratedCommandsNV-renderpassYNoneimplicitvkCmdExecuteGeneratedCommandsNVcoreThis command must only be called inside of a render pass instance
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07484NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07485NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.width in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07486NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, then the sampleLocationsInfo.sampleLocationGridSize.height in the last call to vkCmdSetSampleLocationsEXT must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07487NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07936NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07937NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling the value of rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07938NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable in the bound graphics pipeline is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07482NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07483NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsNV-samples-07472NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the VkPipelineMultisampleStateCreateInfo::rasterizationSamples parameter used to create the bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-samples-07473NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the samples parameter in the last call to vkCmdSetSampleMaskEXT must be greater or equal to the rasterizationSamples parameter in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the scissorCount parameter of vkCmdSetScissorWithCount must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-selectableCubicWeights-09214NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09233NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetShadingRateImageEnableNV in the current command buffer set shadingRateImageEnable to VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04474NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04475NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command
VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreThe bound graphics pipeline must not have been created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-stage-07073NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the currently bound pipeline was created with the VkPipelineShaderStageCreateInfo::stage member of an element of VkGraphicsPipelineCreateInfo::pStages set to VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07495NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07496NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07497NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07498NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdExecuteGeneratedCommandsNV-storageBuffers-06936NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdExecuteGeneratedCommandsNV-subpass-02685NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdExecuteGeneratedCommandsNV-uniformBuffers-06935NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdExecuteGeneratedCommandsNV-videocodingYNoneimplicitvkCmdExecuteGeneratedCommandsNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdExecuteGeneratedCommandsNV-viewType-07752NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then vkCmdSetViewportWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both vkCmdSetViewportWithCount and vkCmdSetScissorWithCount must have been called in the current command buffer prior to this drawing command, and the viewportCount parameter of vkCmdSetViewportWithCount must match the scissorCount parameter of vkCmdSetScissorWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07492NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07493NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-09421NNoneexplicitvkCmdExecuteGeneratedCommandsNVcoreIf 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 vkCmdSetViewportSwizzleNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdFillBuffer-apiVersion-07894YNegativeBuffer.FillBufferCmdPoolUnsupportedexplicitvkCmdFillBuffercoreIf the VK_KHR_maintenance1 extension is not enabled and VkPhysicalDeviceProperties::apiVersion is less than Vulkan 1.1, the VkCommandPool that commandBuffer was allocated from must support graphics or compute operations
VUID-vkCmdFillBuffer-commandBuffer-01811YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdFillBuffercoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdFillBuffer-commandBuffer-01812YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdFillBuffercoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdFillBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdFillBuffercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations
VUID-vkCmdFillBuffer-commandBuffer-parameterYNoneimplicitvkCmdFillBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdFillBuffer-commandBuffer-recordingYNoneimplicitvkCmdFillBuffercorecommandBuffer must be in the recording state
VUID-vkCmdFillBuffer-commonparentYNegativeParent.FillBufferimplicitvkCmdFillBuffercoreBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdFillBuffer-dstBuffer-00029YNoneexplicitvkCmdFillBuffercoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdFillBuffer-dstBuffer-00031YNoneexplicitvkCmdFillBuffercoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdFillBuffer-dstBuffer-parameterYNoneimplicitvkCmdFillBuffercoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdFillBuffer-dstOffset-00024YNegativeBuffer.FillBufferAlignmentAndSizeexplicitvkCmdFillBuffercoredstOffset must be less than the size of dstBuffer
VUID-vkCmdFillBuffer-dstOffset-00025YNoneexplicitvkCmdFillBuffercoredstOffset must be a multiple of 4
VUID-vkCmdFillBuffer-renderpassYNegativeBuffer.FillBufferWithinRenderPassimplicitvkCmdFillBuffercoreThis command must only be called outside of a render pass instance
VUID-vkCmdFillBuffer-size-00026YNoneexplicitvkCmdFillBuffercoreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-vkCmdFillBuffer-size-00027YNegativeBuffer.FillBufferAlignmentAndSizeexplicitvkCmdFillBuffercoreIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of dstBuffer minus dstOffset
VUID-vkCmdFillBuffer-size-00028YNoneexplicitvkCmdFillBuffercoreIf size is not equal to VK_WHOLE_SIZE, size must be a multiple of 4
VUID-vkCmdFillBuffer-videocodingYNoneimplicitvkCmdFillBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdInitializeGraphScratchMemoryAMDX-bufferlevelYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-cmdpoolYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameterYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-recordingYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcorecommandBuffer must be in the recording state
VUID-vkCmdInitializeGraphScratchMemoryAMDX-renderpassYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcoreThis command must only be called outside of a render pass instance
VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09143NNoneexplicitvkCmdInitializeGraphScratchMemoryAMDXcorescratch must be the device address of an allocated memory range at least as large as the value of VkExecutionGraphPipelineScratchSizeAMDX::size returned by VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline.
VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09144NNoneexplicitvkCmdInitializeGraphScratchMemoryAMDXcorescratch must be a multiple of 64
VUID-vkCmdInitializeGraphScratchMemoryAMDX-videocodingYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcoreThis command must only be called outside of a video coding scope
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdInsertDebugUtilsLabelEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdInsertDebugUtilsLabelEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdInsertDebugUtilsLabelEXTcorecommandBuffer must be in the recording state
VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkCmdInsertDebugUtilsLabelEXTcorepLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkCmdInsertDebugUtilsLabelEXT-videocodingYNoneimplicitvkCmdInsertDebugUtilsLabelEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdNextSubpass-None-00909YNegativeSubpass.NextSubpassExcessiveexplicitvkCmdNextSubpasscoreThe current subpass index must be less than the number of subpasses in the render pass minus one
VUID-vkCmdNextSubpass-None-02349YNegativeTransformFeedback.CmdNextSubpassexplicitvkCmdNextSubpasscoreThis command must not be recorded when transform feedback is active
VUID-vkCmdNextSubpass-bufferlevelYNoneimplicitvkCmdNextSubpasscorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdNextSubpass-commandBuffer-cmdpoolYNoneimplicitvkCmdNextSubpasscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdNextSubpass-commandBuffer-parameterYNoneimplicitvkCmdNextSubpasscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdNextSubpass-commandBuffer-recordingYNoneimplicitvkCmdNextSubpasscorecommandBuffer must be in the recording state
VUID-vkCmdNextSubpass-contents-parameterYNoneimplicitvkCmdNextSubpasscorecontents must be a valid VkSubpassContents value
VUID-vkCmdNextSubpass-renderpassYNegativeSubpass.NextSubpassNoRenderPassimplicitvkCmdNextSubpasscoreThis command must only be called inside of a render pass instance
VUID-vkCmdNextSubpass-videocodingYNoneimplicitvkCmdNextSubpasscoreThis command must only be called outside of a video coding scope
VUID-vkCmdNextSubpass2-None-02350YNoneexplicitvkCmdNextSubpass2coreThis command must not be recorded when transform feedback is active
VUID-vkCmdNextSubpass2-None-03102YNegativeSubpass.NextSubpassExcessiveexplicitvkCmdNextSubpass2coreThe current subpass index must be less than the number of subpasses in the render pass minus one
VUID-vkCmdNextSubpass2-bufferlevelYNoneimplicitvkCmdNextSubpass2corecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdNextSubpass2-commandBuffer-cmdpoolYNoneimplicitvkCmdNextSubpass2coreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdNextSubpass2-commandBuffer-parameterYNoneimplicitvkCmdNextSubpass2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdNextSubpass2-commandBuffer-recordingYNoneimplicitvkCmdNextSubpass2corecommandBuffer must be in the recording state
VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameterYNoneimplicitvkCmdNextSubpass2corepSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure
VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameterYNoneimplicitvkCmdNextSubpass2corepSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure
VUID-vkCmdNextSubpass2-renderpassYNoneimplicitvkCmdNextSubpass2coreThis command must only be called inside of a render pass instance
VUID-vkCmdNextSubpass2-videocodingYNoneimplicitvkCmdNextSubpass2coreThis command must only be called outside of a video coding scope
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpoolYNoneimplicitvkCmdOpticalFlowExecuteNVcoreThe VkCommandPool that commandBuffer was allocated from must support optical flow operations
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameterYNoneimplicitvkCmdOpticalFlowExecuteNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-recordingYNoneimplicitvkCmdOpticalFlowExecuteNVcorecommandBuffer must be in the recording state
VUID-vkCmdOpticalFlowExecuteNV-commonparentYNoneimplicitvkCmdOpticalFlowExecuteNVcoreBoth of commandBuffer, and session must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameterYNoneimplicitvkCmdOpticalFlowExecuteNVcorepExecuteInfo must be a valid pointer to a valid VkOpticalFlowExecuteInfoNV structure
VUID-vkCmdOpticalFlowExecuteNV-renderpassYNoneimplicitvkCmdOpticalFlowExecuteNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdOpticalFlowExecuteNV-session-parameterYNoneimplicitvkCmdOpticalFlowExecuteNVcoresession must be a valid VkOpticalFlowSessionNV handle
VUID-vkCmdOpticalFlowExecuteNV-videocodingYNoneimplicitvkCmdOpticalFlowExecuteNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdPipelineBarrier-None-07889YNegativeSyncObject.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass 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 VK_DEPENDENCY_BY_REGION_BIT if this command does not, does not include VK_DEPENDENCY_VIEW_LOCAL_BIT if this command does not, and has synchronization scopes and access scopes that are all supersets of the scopes defined in this command
VUID-vkCmdPipelineBarrier-None-07890NNoneexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance, and the source stage masks of any memory barriers include framebuffer-space stages, destination stage masks of all memory barriers must only include framebuffer-space stages
VUID-vkCmdPipelineBarrier-None-07892NNoneexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier 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-None-07893NNoneexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags must include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-vkCmdPipelineBarrier-None-08719YNegativeDynamicRendering.WithShaderTileImageAndBarrierexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance started with vkCmdBeginRendering, it must adhere to the restrictions in Explicit Render Pass Tile Image Access Synchronization
VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178YNegativeSyncObject.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, it must not include any buffer memory barriers
VUID-vkCmdPipelineBarrier-commandBuffer-cmdpoolYNoneimplicitvkCmdPipelineBarriercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdPipelineBarrier-commandBuffer-parameterYNoneimplicitvkCmdPipelineBarriercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPipelineBarrier-commandBuffer-recordingYNoneimplicitvkCmdPipelineBarriercorecommandBuffer must be in the recording state
VUID-vkCmdPipelineBarrier-dependencyFlags-01186YNoneexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called outside of a render pass instance, the dependency flags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-vkCmdPipelineBarrier-dependencyFlags-07891NNoneexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance, and and the source stage masks of any memory barriers include framebuffer-space stages, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT
VUID-vkCmdPipelineBarrier-dependencyFlags-parameterYNoneimplicitvkCmdPipelineBarriercoredependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-vkCmdPipelineBarrier-dstAccessMask-02816YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeSyncObject.BarriersexplicitvkCmdPipelineBarriercoreThe 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 table of supported access types
VUID-vkCmdPipelineBarrier-dstAccessMask-06257YNegativeRayTracing.BarrierSync1AccessAccelerationStructureRayQueryDisabledexplicitvkCmdPipelineBarriercoreIf the rayQuery feature is not enabled and a memory barrier dstAccessMask includes VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdPipelineBarrier-dstStageMask-03937YNoneexplicitvkCmdPipelineBarriercoreIf the synchronization2 feature is not enabled, dstStageMask must not be 0
VUID-vkCmdPipelineBarrier-dstStageMask-04090YNoneexplicitvkCmdPipelineBarriercoreIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdPipelineBarrier-dstStageMask-04091YNoneexplicitvkCmdPipelineBarriercoreIf the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdPipelineBarrier-dstStageMask-04092YNoneexplicitvkCmdPipelineBarriercoreIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04093YNoneexplicitvkCmdPipelineBarriercoreIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04094YNoneexplicitvkCmdPipelineBarriercoreIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdPipelineBarriercoreIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdPipelineBarriercoreIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-06462YNegativeSyncObject.PipelineStageConditionalRenderingWithWrongQueueexplicitvkCmdPipelineBarriercoreAny pipeline stage included in dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdPipelineBarrier-dstStageMask-07318YNoneexplicitvkCmdPipelineBarriercoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdPipelineBarrier-dstStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdPipelineBarriercoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdPipelineBarrier-dstStageMask-parameterYNoneimplicitvkCmdPipelineBarriercoredstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdPipelineBarrier-image-04073YNegativeCommand.SecondaryCommandBufferBarrier, NegativeSubpass.ImageBarrierSubpassConflict, NegativeSyncObject.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass 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-09373YNegativeAndroidExternalResolve.PipelineBarrierUnusedexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, and the image member of any image memory barrier is a color resolve attachment, the corresponding color attachment must be VK_ATTACHMENT_UNUSED
VUID-vkCmdPipelineBarrier-image-09374YNoneexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, and the image member of any image memory barrier is a color resolve attachment, it must have been created with a non-zero VkExternalFormatANDROID::externalFormat value
VUID-vkCmdPipelineBarrier-oldLayout-01181YNegativeSyncObject.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier 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-pBufferMemoryBarriers-02817NNoneexplicitvkCmdPipelineBarriercoreFor 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 table of supported access types
VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818NNoneexplicitvkCmdPipelineBarriercoreFor 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 table of supported access types
VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameterYNoneimplicitvkCmdPipelineBarriercoreIf bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures
VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819NNoneexplicitvkCmdPipelineBarriercoreFor 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 table of supported access types
VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820NNoneexplicitvkCmdPipelineBarriercoreFor 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 table of supported access types
VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameterYNoneimplicitvkCmdPipelineBarriercoreIf imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures
VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameterYNoneimplicitvkCmdPipelineBarriercoreIf memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures
VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718YNegativeDynamicRendering.BarrierShaderTileFeaturesNotEnabled, NegativeDynamicRendering.WithoutShaderTileImageAndBarrierexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier is called within a render pass instance and none of the shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess features are enabled, the render pass must not have been started with vkCmdBeginRendering
VUID-vkCmdPipelineBarrier-srcAccessMask-02815YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeSyncObject.BarriersexplicitvkCmdPipelineBarriercoreThe 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 table of supported access types
VUID-vkCmdPipelineBarrier-srcAccessMask-06257YNegativeRayTracing.BarrierSync1AccessAccelerationStructureRayQueryDisabled, PositiveRayTracing.BarrierSync1NoCrashexplicitvkCmdPipelineBarriercoreIf the rayQuery feature is not enabled and a memory barrier srcAccessMask includes VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182YNegativeSyncObject.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf vkCmdPipelineBarrier 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-srcStageMask-03937YNoneexplicitvkCmdPipelineBarriercoreIf the synchronization2 feature is not enabled, srcStageMask must not be 0
VUID-vkCmdPipelineBarrier-srcStageMask-04090YNoneexplicitvkCmdPipelineBarriercoreIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdPipelineBarrier-srcStageMask-04091YNoneexplicitvkCmdPipelineBarriercoreIf the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdPipelineBarrier-srcStageMask-04092YNoneexplicitvkCmdPipelineBarriercoreIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04093YNoneexplicitvkCmdPipelineBarriercoreIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04094YNoneexplicitvkCmdPipelineBarriercoreIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdPipelineBarriercoreIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdPipelineBarriercoreIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-06461YNegativeSyncObject.Barriers, NegativeSyncObject.PipelineStageConditionalRenderingWithWrongQueueexplicitvkCmdPipelineBarriercoreAny pipeline stage included in srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdPipelineBarrier-srcStageMask-07318YNoneexplicitvkCmdPipelineBarriercoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdPipelineBarrier-srcStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdPipelineBarriercoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdPipelineBarrier-srcStageMask-parameterYNoneimplicitvkCmdPipelineBarriercoresrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdPipelineBarrier2-None-07889YNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass 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 VK_DEPENDENCY_BY_REGION_BIT if this command does not, does not include VK_DEPENDENCY_VIEW_LOCAL_BIT if this command does not, and has synchronization scopes and access scopes that are all supersets of the scopes defined in this command
VUID-vkCmdPipelineBarrier2-None-07890NNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance, and the source stage masks of any memory barriers include framebuffer-space stages, destination stage masks of all memory barriers must only include framebuffer-space stages
VUID-vkCmdPipelineBarrier2-None-07892NNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance, the source and destination stage masks of any memory barriers must only include graphics pipeline stages
VUID-vkCmdPipelineBarrier2-None-07893NNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called inside a render pass instance, and there is more than one view in the current subpass, dependency flags must include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-vkCmdPipelineBarrier2-None-08719YNegativeDynamicRendering.WithShaderTileImageAndBarrierexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance started with vkCmdBeginRendering, it must adhere to the restrictions in Explicit Render Pass Tile Image Access Synchronization
VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178YNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, it must not include any buffer memory barriers
VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpoolYNoneimplicitvkCmdPipelineBarrier2coreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdPipelineBarrier2-commandBuffer-parameterYNoneimplicitvkCmdPipelineBarrier2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPipelineBarrier2-commandBuffer-recordingYNoneimplicitvkCmdPipelineBarrier2corecommandBuffer must be in the recording state
VUID-vkCmdPipelineBarrier2-dependencyFlags-01186YNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called outside of a render pass instance, the dependency flags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-vkCmdPipelineBarrier2-dependencyFlags-07891NNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance, and and the source stage masks of any memory barriers include framebuffer-space stages, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT
VUID-vkCmdPipelineBarrier2-dstStageMask-03850YNoneexplicitvkCmdPipelineBarrier2coreThe dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdPipelineBarrier2-image-04073YNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass 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-vkCmdPipelineBarrier2-image-09373YNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, and the image member of any image memory barrier is a color resolve attachment, the corresponding color attachment must be VK_ATTACHMENT_UNUSED
VUID-vkCmdPipelineBarrier2-image-09374YNegativeAndroidExternalResolve.PipelineBarrierexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, and the image member of any image memory barrier is a color resolve attachment, it must have been created with a non-zero VkExternalFormatANDROID::externalFormat value
VUID-vkCmdPipelineBarrier2-oldLayout-01181YNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 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-vkCmdPipelineBarrier2-pDependencyInfo-parameterYNoneimplicitvkCmdPipelineBarrier2corepDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure
VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718YNegativeDynamicRendering.BarrierShaderTileFeaturesNotEnabled, NegativeDynamicRendering.WithoutShaderTileImageAndBarrierexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance and none of the shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess features are enabled, the render pass must not have been started with vkCmdBeginRendering
VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182YNoneexplicitvkCmdPipelineBarrier2coreIf vkCmdPipelineBarrier2 is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any memory barrier included in this command must be equal
VUID-vkCmdPipelineBarrier2-srcStageMask-03849YNegativeSyncObject.Sync2BarriersexplicitvkCmdPipelineBarrier2coreThe srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdPipelineBarrier2-synchronization2-03848YNegativeSyncObject.Sync2LayoutFeature, NegativeSyncVal.Sync2FeatureDisabledexplicitvkCmdPipelineBarrier2coreThe synchronization2 feature must be enabled
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974NNoneexplicitvkCmdPreprocessGeneratedCommandsNVcorecommandBuffer must not be a protected command buffer
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpoolYNoneimplicitvkCmdPreprocessGeneratedCommandsNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-recordingYNoneimplicitvkCmdPreprocessGeneratedCommandsNVcorecommandBuffer must be in the recording state
VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928NNoneexplicitvkCmdPreprocessGeneratedCommandsNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927NNoneexplicitvkCmdPreprocessGeneratedCommandsNVcorepGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set
VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsNVcorepGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure
VUID-vkCmdPreprocessGeneratedCommandsNV-renderpassYNoneimplicitvkCmdPreprocessGeneratedCommandsNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdPreprocessGeneratedCommandsNV-videocodingYNoneimplicitvkCmdPreprocessGeneratedCommandsNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdPushConstants-commandBuffer-cmdpoolYNoneimplicitvkCmdPushConstantscoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushConstants-commandBuffer-parameterYNoneimplicitvkCmdPushConstantscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushConstants-commandBuffer-recordingYNoneimplicitvkCmdPushConstantscorecommandBuffer must be in the recording state
VUID-vkCmdPushConstants-commonparentYNoneimplicitvkCmdPushConstantscoreBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushConstants-layout-parameterYNoneimplicitvkCmdPushConstantscorelayout must be a valid VkPipelineLayout handle
VUID-vkCmdPushConstants-offset-00368YNegativeShaderPushConstants.RangeexplicitvkCmdPushConstantscoreoffset must be a multiple of 4
VUID-vkCmdPushConstants-offset-00370YNegativeShaderPushConstants.RangeexplicitvkCmdPushConstantscoreoffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-vkCmdPushConstants-offset-01795YNegativeCommand.PushConstantsexplicitvkCmdPushConstantscoreFor 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-01796YNegativeCommand.PushConstantsexplicitvkCmdPushConstantscoreFor 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 VkPushConstantRange::stageFlags
VUID-vkCmdPushConstants-pValues-parameterYNoneimplicitvkCmdPushConstantscorepValues must be a valid pointer to an array of size bytes
VUID-vkCmdPushConstants-size-00369YNegativeShaderPushConstants.RangeexplicitvkCmdPushConstantscoresize must be a multiple of 4
VUID-vkCmdPushConstants-size-00371YNegativeShaderPushConstants.RangeexplicitvkCmdPushConstantscoresize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset
VUID-vkCmdPushConstants-size-arraylengthYNegativeShaderPushConstants.RangeimplicitvkCmdPushConstantscoresize must be greater than 0
VUID-vkCmdPushConstants-stageFlags-parameterYNoneimplicitvkCmdPushConstantscorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-vkCmdPushConstants-stageFlags-requiredbitmaskYNegativeCommand.PushConstantsimplicitvkCmdPushConstantscorestageFlags must not be 0
VUID-vkCmdPushConstants-videocodingYNoneimplicitvkCmdPushConstantscoreThis command must only be called outside of a video coding scope
VUID-vkCmdPushConstants2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdPushConstants2KHRcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushConstants2KHR-commandBuffer-parameterYNoneimplicitvkCmdPushConstants2KHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushConstants2KHR-commandBuffer-recordingYNoneimplicitvkCmdPushConstants2KHRcorecommandBuffer must be in the recording state
VUID-vkCmdPushConstants2KHR-pPushConstantsInfo-parameterYNoneimplicitvkCmdPushConstants2KHRcorepPushConstantsInfo must be a valid pointer to a valid VkPushConstantsInfoKHR structure
VUID-vkCmdPushConstants2KHR-videocodingYNoneimplicitvkCmdPushConstants2KHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdPushDescriptorSet2KHRcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-parameterNNoneimplicitvkCmdPushDescriptorSet2KHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-recordingYNoneimplicitvkCmdPushDescriptorSet2KHRcorecommandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSet2KHR-pPushDescriptorSetInfo-09468YNoneexplicitvkCmdPushDescriptorSet2KHRcoreEach bit in pPushDescriptorSetInfo->stageFlags must be a stage supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdPushDescriptorSet2KHR-pPushDescriptorSetInfo-parameterYNoneimplicitvkCmdPushDescriptorSet2KHRcorepPushDescriptorSetInfo must be a valid pointer to a valid VkPushDescriptorSetInfoKHR structure
VUID-vkCmdPushDescriptorSet2KHR-videocodingYNoneimplicitvkCmdPushDescriptorSet2KHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpoolYNegativePushDescriptor.SetCmdPushimplicitvkCmdPushDescriptorSetKHRcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSetKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recordingYNegativePushDescriptor.SetCmdPushimplicitvkCmdPushDescriptorSetKHRcorecommandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSetKHR-commonparentYNoneimplicitvkCmdPushDescriptorSetKHRcoreBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylengthYNoneimplicitvkCmdPushDescriptorSetKHRcoredescriptorWriteCount must be greater than 0
VUID-vkCmdPushDescriptorSetKHR-layout-parameterYNoneimplicitvkCmdPushDescriptorSetKHRcorelayout must be a valid VkPipelineLayout handle
VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494YNegativeDescriptors.PushDescriptorWithoutInfo, NegativePushDescriptor.DescriptorWriteMissingImageInfoexplicitvkCmdPushDescriptorSetKHRcoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures
VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameterYNoneimplicitvkCmdPushDescriptorSetKHRcorepDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures
VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363YNegativePushDescriptor.SetCmdPushexplicitvkCmdPushDescriptorSetKHRcorepipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameterYNoneimplicitvkCmdPushDescriptorSetKHRcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdPushDescriptorSetKHR-set-00364YNegativePushDescriptor.SetCmdPushexplicitvkCmdPushDescriptorSetKHRcoreset must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdPushDescriptorSetKHR-set-00365YNegativePushDescriptor.SetCmdPushexplicitvkCmdPushDescriptorSetKHRcoreset must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VUID-vkCmdPushDescriptorSetKHR-videocodingYNoneimplicitvkCmdPushDescriptorSetKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-recordingYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRcorecommandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-pPushDescriptorSetWithTemplateInfo-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRcorepPushDescriptorSetWithTemplateInfo must be a valid pointer to a valid VkPushDescriptorSetWithTemplateInfoKHR structure
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-videocodingYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366YNegativePushDescriptor.UnsupportedDescriptorTemplateBindPointexplicitvkCmdPushDescriptorSetWithTemplateKHRcoreThe pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recordingYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcorecommandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparentYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcoreEach of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-07994YNegativePushDescriptor.InvalidDescriptorUpdateTemplateTypeexplicitvkCmdPushDescriptorSetWithTemplateKHRcoredescriptorUpdateTemplate must have been created with a templateType of VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcoredescriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993YNegativePushDescriptor.DescriptorTemplateIncompatibleLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRcorelayout must be compatible with the layout used to create descriptorUpdateTemplate
VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcorelayout must be a valid VkPipelineLayout handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686YNegativePushDescriptor.TemplateDestroyDescriptorSetLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRcorepData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate
VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07304YNegativePushDescriptor.DescriptorTemplateIncompatibleLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRcoreset must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07305YNegativePushDescriptor.DescriptorTemplateIncompatibleLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRcoreset must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07995YNegativePushDescriptor.DescriptorTemplateIncompatibleLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRcoreset must be the same value used to create descriptorUpdateTemplate
VUID-vkCmdPushDescriptorSetWithTemplateKHR-videocodingYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdResetEvent-commandBuffer-01157NNoneexplicitvkCmdResetEventcorecommandBuffer's current device mask must include exactly one physical device
VUID-vkCmdResetEvent-commandBuffer-cmdpoolYNoneimplicitvkCmdResetEventcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdResetEvent-commandBuffer-parameterYNoneimplicitvkCmdResetEventcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetEvent-commandBuffer-recordingYNoneimplicitvkCmdResetEventcorecommandBuffer must be in the recording state
VUID-vkCmdResetEvent-commonparentYNoneimplicitvkCmdResetEventcoreBoth of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetEvent-event-03834YNegativeSyncVal.EventsCommandHazardsexplicitvkCmdResetEventcoreThere must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkCmdResetEvent-event-03835YNoneexplicitvkCmdResetEventcoreThere must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkCmdResetEvent-event-parameterYNoneimplicitvkCmdResetEventcoreevent must be a valid VkEvent handle
VUID-vkCmdResetEvent-renderpassYNoneimplicitvkCmdResetEventcoreThis command must only be called outside of a render pass instance
VUID-vkCmdResetEvent-stageMask-01153YNegativeSyncObject.StageMaskHostexplicitvkCmdResetEventcorestageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdResetEvent-stageMask-03937YNoneexplicitvkCmdResetEventcoreIf the synchronization2 feature is not enabled, stageMask must not be 0
VUID-vkCmdResetEvent-stageMask-04090YNoneexplicitvkCmdResetEventcoreIf the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdResetEvent-stageMask-04091YNoneexplicitvkCmdResetEventcoreIf the tessellationShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdResetEvent-stageMask-04092YNoneexplicitvkCmdResetEventcoreIf the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04093YNoneexplicitvkCmdResetEventcoreIf the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04094YNoneexplicitvkCmdResetEventcoreIf the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdResetEventcoreIf the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdResetEventcoreIf the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdResetEvent-stageMask-06458YNoneexplicitvkCmdResetEventcoreAny pipeline stage included in stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdResetEvent-stageMask-07318YNoneexplicitvkCmdResetEventcoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdResetEvent-stageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdResetEventcoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdResetEvent-stageMask-parameterYNoneimplicitvkCmdResetEventcorestageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdResetEvent2-commandBuffer-03833NNoneexplicitvkCmdResetEvent2corecommandBuffer's current device mask must include exactly one physical device
VUID-vkCmdResetEvent2-commandBuffer-cmdpoolYNoneimplicitvkCmdResetEvent2coreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdResetEvent2-commandBuffer-parameterYNoneimplicitvkCmdResetEvent2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetEvent2-commandBuffer-recordingYNoneimplicitvkCmdResetEvent2corecommandBuffer must be in the recording state
VUID-vkCmdResetEvent2-commonparentYNoneimplicitvkCmdResetEvent2coreBoth of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetEvent2-event-03831YNoneexplicitvkCmdResetEvent2coreThere must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkCmdResetEvent2-event-03832YNoneexplicitvkCmdResetEvent2coreThere must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkCmdResetEvent2-event-parameterYNoneimplicitvkCmdResetEvent2coreevent must be a valid VkEvent handle
VUID-vkCmdResetEvent2-renderpassYNoneimplicitvkCmdResetEvent2coreThis command must only be called outside of a render pass instance
VUID-vkCmdResetEvent2-stageMask-03830YNoneexplicitvkCmdResetEvent2corestageMask must not include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-vkCmdResetEvent2-stageMask-03929YNoneexplicitvkCmdResetEvent2coreIf the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdResetEvent2-stageMask-03930YNoneexplicitvkCmdResetEvent2coreIf the tessellationShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdResetEvent2-stageMask-03931YNoneexplicitvkCmdResetEvent2coreIf the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03932YNoneexplicitvkCmdResetEvent2coreIf the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03933YNoneexplicitvkCmdResetEvent2coreIf the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03934YNoneexplicitvkCmdResetEvent2coreIf the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03935YNoneexplicitvkCmdResetEvent2coreIf the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-04957NNoneexplicitvkCmdResetEvent2coreIf the subpassShading feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-vkCmdResetEvent2-stageMask-04995NNoneexplicitvkCmdResetEvent2coreIf the invocationMask feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdResetEvent2-stageMask-07316YNegativeFragmentShadingRate.StageUsage, NegativeFragmentShadingRate.StageUsageNVexplicitvkCmdResetEvent2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdResetEvent2-stageMask-07946YNoneexplicitvkCmdResetEvent2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdResetEvent2-stageMask-parameterYNoneimplicitvkCmdResetEvent2corestageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdResetEvent2-synchronization2-03829YNegativeSyncVal.Sync2FeatureDisabledexplicitvkCmdResetEvent2coreThe synchronization2 feature must be enabled
VUID-vkCmdResetQueryPool-None-02841YNegativeQuery.ActiveCmdResetQueryPoolexplicitvkCmdResetQueryPoolcoreAll queries used by the command must not be active
VUID-vkCmdResetQueryPool-commandBuffer-cmdpoolYNoneimplicitvkCmdResetQueryPoolcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, encode, or optical flow operations
VUID-vkCmdResetQueryPool-commandBuffer-parameterYNoneimplicitvkCmdResetQueryPoolcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetQueryPool-commandBuffer-recordingYNoneimplicitvkCmdResetQueryPoolcorecommandBuffer must be in the recording state
VUID-vkCmdResetQueryPool-commonparentYNoneimplicitvkCmdResetQueryPoolcoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetQueryPool-firstQuery-02862YNegativeQuery.PerformanceQueryResetexplicitvkCmdResetQueryPoolcoreIf queryPool was created with VK_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]
VUID-vkCmdResetQueryPool-firstQuery-09436YNegativeQuery.SizesexplicitvkCmdResetQueryPoolcorefirstQuery must be less than the number of queries in queryPool
VUID-vkCmdResetQueryPool-firstQuery-09437YNegativeQuery.SizesexplicitvkCmdResetQueryPoolcoreThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdResetQueryPool-queryPool-parameterYNegativeQuery.CmdResetQueryPoolWithoutQueryPoolimplicitvkCmdResetQueryPoolcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdResetQueryPool-renderpassYNoneimplicitvkCmdResetQueryPoolcoreThis command must only be called outside of a render pass instance
VUID-vkCmdResetQueryPool-videocodingYNoneimplicitvkCmdResetQueryPoolcoreThis command must only be called outside of a video coding scope
VUID-vkCmdResolveImage-commandBuffer-01837YNoneexplicitvkCmdResolveImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdResolveImage-commandBuffer-01838YNoneexplicitvkCmdResolveImagecoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdResolveImage-commandBuffer-01839YNoneexplicitvkCmdResolveImagecoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdResolveImage-commandBuffer-cmdpoolYNoneimplicitvkCmdResolveImagecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdResolveImage-commandBuffer-parameterYNoneimplicitvkCmdResolveImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResolveImage-commandBuffer-recordingYNoneimplicitvkCmdResolveImagecorecommandBuffer must be in the recording state
VUID-vkCmdResolveImage-commonparentYNoneimplicitvkCmdResolveImagecoreEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResolveImage-dstImage-00258YNoneexplicitvkCmdResolveImagecoreIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdResolveImage-dstImage-00259YNegativeCommand.ResolveImageHighSampleCountexplicitvkCmdResolveImagecoredstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdResolveImage-dstImage-00276YNegativeCommand.ResolveImageImageTypeexplicitvkCmdResolveImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1
VUID-vkCmdResolveImage-dstImage-00278YNegativeCommand.ResolveImageImageType, NegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1
VUID-vkCmdResolveImage-dstImage-02003YNegativeImage.ResolveDepthImageexplicitvkCmdResolveImagecoreThe format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-vkCmdResolveImage-dstImage-02546YNoneexplicitvkCmdResolveImagecoredstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdResolveImage-dstImage-06764YNegativeCommand.ResolveUsageexplicitvkCmdResolveImagecoredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdResolveImage-dstImage-06765YNegativeCommand.ResolveUsageexplicitvkCmdResolveImagecoreThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdResolveImage-dstImage-parameterYNoneimplicitvkCmdResolveImagecoredstImage must be a valid VkImage handle
VUID-vkCmdResolveImage-dstImageLayout-00262YNegativeCommand.ResolveImageLayoutMismatchexplicitvkCmdResolveImagecoredstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-vkCmdResolveImage-dstImageLayout-01401YNoneexplicitvkCmdResolveImagecoredstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdResolveImage-dstImageLayout-parameterYNoneimplicitvkCmdResolveImagecoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdResolveImage-dstOffset-00274YNegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-00275YNegativeCommand.ResolveImageImageType, NegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-dstOffset-00277YNegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-dstSubresource-01710YNegativeCommand.ResolveInvalidSubresourceexplicitvkCmdResolveImagecoreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdResolveImage-dstSubresource-01712YNegativeCommand.ResolveInvalidSubresourceexplicitvkCmdResolveImagecoreIf dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdResolveImage-linearColorAttachment-06519NNoneexplicitvkCmdResolveImagecoreIf the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, the format features of dstImage must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-vkCmdResolveImage-pRegions-00255NNoneexplicitvkCmdResolveImagecoreThe 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-pRegions-parameterYNoneimplicitvkCmdResolveImagecorepRegions must be a valid pointer to an array of regionCount valid VkImageResolve structures
VUID-vkCmdResolveImage-regionCount-arraylengthYNoneimplicitvkCmdResolveImagecoreregionCount must be greater than 0
VUID-vkCmdResolveImage-renderpassYNoneimplicitvkCmdResolveImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdResolveImage-srcImage-00256YNoneexplicitvkCmdResolveImagecoreIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdResolveImage-srcImage-00257YNegativeCommand.ResolveImageLowSampleCountexplicitvkCmdResolveImagecoresrcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdResolveImage-srcImage-00271YNoneexplicitvkCmdResolveImagecoreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
VUID-vkCmdResolveImage-srcImage-00273YNegativeCommand.ResolveImageImageType, NegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImagecoreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
VUID-vkCmdResolveImage-srcImage-01386YNegativeCommand.ResolveImageFormatMismatchexplicitvkCmdResolveImagecoresrcImage and dstImage must have been created with the same image format
VUID-vkCmdResolveImage-srcImage-04446YNegativeCommand.ResolveImageImageTypeexplicitvkCmdResolveImagecoreIf dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.layerCount must be 1
VUID-vkCmdResolveImage-srcImage-04447YNoneexplicitvkCmdResolveImagecoreIf dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1
VUID-vkCmdResolveImage-srcImage-06762YNegativeCommand.ResolveUsageexplicitvkCmdResolveImagecoresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdResolveImage-srcImage-06763YNegativeCommand.ResolveUsageexplicitvkCmdResolveImagecoreThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdResolveImage-srcImage-parameterYNoneimplicitvkCmdResolveImagecoresrcImage must be a valid VkImage handle
VUID-vkCmdResolveImage-srcImageLayout-00260YNegativeCommand.ResolveImageLayoutMismatchexplicitvkCmdResolveImagecoresrcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-vkCmdResolveImage-srcImageLayout-01400YNoneexplicitvkCmdResolveImagecoresrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdResolveImage-srcImageLayout-parameterYNoneimplicitvkCmdResolveImagecoresrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdResolveImage-srcOffset-00269YNegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-00270YNegativeCommand.ResolveImageImageType, NegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-srcOffset-00272YNegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-srcSubresource-01709YNegativeCommand.ResolveInvalidSubresourceexplicitvkCmdResolveImagecoreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdResolveImage-srcSubresource-01711YNegativeCommand.ResolveInvalidSubresourceexplicitvkCmdResolveImagecoreIf srcSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdResolveImage-videocodingYNoneimplicitvkCmdResolveImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdResolveImage2-commandBuffer-01837YNoneexplicitvkCmdResolveImage2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdResolveImage2-commandBuffer-01838YNoneexplicitvkCmdResolveImage2coreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdResolveImage2-commandBuffer-01839YNoneexplicitvkCmdResolveImage2coreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdResolveImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdResolveImage2coreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdResolveImage2-commandBuffer-parameterYNoneimplicitvkCmdResolveImage2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResolveImage2-commandBuffer-recordingYNoneimplicitvkCmdResolveImage2corecommandBuffer must be in the recording state
VUID-vkCmdResolveImage2-pResolveImageInfo-parameterYNoneimplicitvkCmdResolveImage2corepResolveImageInfo must be a valid pointer to a valid VkResolveImageInfo2 structure
VUID-vkCmdResolveImage2-renderpassYNoneimplicitvkCmdResolveImage2coreThis command must only be called outside of a render pass instance
VUID-vkCmdResolveImage2-videocodingYNoneimplicitvkCmdResolveImage2coreThis command must only be called outside of a video coding scope
VUID-vkCmdSetAlphaToCoverageEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetAlphaToCoverageEnableEXTcoreAt least one of the following must be true: The extendedDynamicState3AlphaToCoverageEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetAlphaToCoverageEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetAlphaToCoverageEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetAlphaToCoverageEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetAlphaToCoverageEnableEXT-videocodingYNoneimplicitvkCmdSetAlphaToCoverageEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetAlphaToOneEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetAlphaToOneEnableEXTcoreAt least one of the following must be true: The extendedDynamicState3AlphaToOneEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetAlphaToOneEnableEXT-alphaToOne-07607YNegativeDynamicState.DrawNotSetAlphaToOneEnableexplicitvkCmdSetAlphaToOneEnableEXTcoreIf the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetAlphaToOneEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetAlphaToOneEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetAlphaToOneEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetAlphaToOneEnableEXT-videocodingYNoneimplicitvkCmdSetAlphaToOneEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863YNegativeDynamicState.AttachmentFeedbackLoopEnableAspectMaskexplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcoreaspectMask must only include VK_IMAGE_ASPECT_NONE, VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_ASPECT_DEPTH_BIT, and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameterYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862YNegativeDynamicState.AttachmentFeedbackLoopEnableFeaturesexplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcoreThe attachmentFeedbackLoopDynamicState feature must be enabled
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864YNegativeDynamicState.AttachmentFeedbackLoopEnableFeaturesexplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcoreIf the attachmentFeedbackLoopLayout feature is not enabled, aspectMask must be VK_IMAGE_ASPECT_NONE
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocodingYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetBlendConstants-commandBuffer-cmdpoolYNoneimplicitvkCmdSetBlendConstantscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetBlendConstants-commandBuffer-parameterYNoneimplicitvkCmdSetBlendConstantscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetBlendConstants-commandBuffer-recordingYNoneimplicitvkCmdSetBlendConstantscorecommandBuffer must be in the recording state
VUID-vkCmdSetBlendConstants-videocodingYNoneimplicitvkCmdSetBlendConstantscoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCheckpointNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetCheckpointNV-commandBuffer-parameterYNoneimplicitvkCmdSetCheckpointNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCheckpointNV-commandBuffer-recordingYNegativeTooling.ValidateNVDeviceDiagnosticCheckpointsimplicitvkCmdSetCheckpointNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetCheckpointNV-videocodingYNoneimplicitvkCmdSetCheckpointNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoarseSampleOrderNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoarseSampleOrderNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235NNoneexplicitvkCmdSetCoarseSampleOrderNVcoreThe array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members
VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNVcoreIf customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures
VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdSetCoarseSampleOrderNVcoreIf sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0
VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNVcoresampleOrderType must be a valid VkCoarseSampleOrderTypeNV value
VUID-vkCmdSetCoarseSampleOrderNV-videocodingYNoneimplicitvkCmdSetCoarseSampleOrderNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendAdvancedEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetColorBlendAdvancedEXTcoreAt least one of the following must be true: The extendedDynamicState3ColorBlendAdvanced feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetColorBlendAdvancedEXT-attachmentCount-arraylengthYNoneimplicitvkCmdSetColorBlendAdvancedEXTcoreattachmentCount must be greater than 0
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendAdvancedEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendAdvancedEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendAdvancedEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetColorBlendAdvancedEXT-pColorBlendAdvanced-parameterYNoneimplicitvkCmdSetColorBlendAdvancedEXTcorepColorBlendAdvanced must be a valid pointer to an array of attachmentCount valid VkColorBlendAdvancedEXT structures
VUID-vkCmdSetColorBlendAdvancedEXT-videocodingYNoneimplicitvkCmdSetColorBlendAdvancedEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetColorBlendEnableEXTcoreAt least one of the following must be true: The extendedDynamicState3ColorBlendEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetColorBlendEnableEXT-attachmentCount-arraylengthNNoneimplicitvkCmdSetColorBlendEnableEXTcoreattachmentCount must be greater than 0
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetColorBlendEnableEXT-pColorBlendEnables-parameterNNoneimplicitvkCmdSetColorBlendEnableEXTcorepColorBlendEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-vkCmdSetColorBlendEnableEXT-videocodingYNoneimplicitvkCmdSetColorBlendEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendEquationEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetColorBlendEquationEXTcoreAt least one of the following must be true: The extendedDynamicState3ColorBlendEquation feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetColorBlendEquationEXT-attachmentCount-arraylengthYNoneimplicitvkCmdSetColorBlendEquationEXTcoreattachmentCount must be greater than 0
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendEquationEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendEquationEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendEquationEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetColorBlendEquationEXT-pColorBlendEquations-parameterYNoneimplicitvkCmdSetColorBlendEquationEXTcorepColorBlendEquations must be a valid pointer to an array of attachmentCount valid VkColorBlendEquationEXT structures
VUID-vkCmdSetColorBlendEquationEXT-videocodingYNoneimplicitvkCmdSetColorBlendEquationEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorWriteEnableEXT-None-04803YNegativeDynamicState.ColorWriteEnableFeatureexplicitvkCmdSetColorWriteEnableEXTcoreThe colorWriteEnable feature must be enabled
VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-06656YNegativeDynamicState.ColorWriteEnableAttachmentCountexplicitvkCmdSetColorWriteEnableEXTcoreattachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits
VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylengthNNoneimplicitvkCmdSetColorWriteEnableEXTcoreattachmentCount must be greater than 0
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorWriteEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorWriteEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorWriteEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetColorWriteEnableEXT-pColorWriteEnables-parameterNNoneimplicitvkCmdSetColorWriteEnableEXTcorepColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-vkCmdSetColorWriteEnableEXT-videocodingYNoneimplicitvkCmdSetColorWriteEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorWriteMaskEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetColorWriteMaskEXTcoreAt least one of the following must be true: The extendedDynamicState3ColorWriteMask feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetColorWriteMaskEXT-attachmentCount-arraylengthNNoneimplicitvkCmdSetColorWriteMaskEXTcoreattachmentCount must be greater than 0
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorWriteMaskEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorWriteMaskEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorWriteMaskEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-parameterYNegativeDynamicState.DrawNotSetColorWriteMaskimplicitvkCmdSetColorWriteMaskEXTcorepColorWriteMasks must be a valid pointer to an array of attachmentCount valid combinations of VkColorComponentFlagBits values
VUID-vkCmdSetColorWriteMaskEXT-videocodingYNoneimplicitvkCmdSetColorWriteMaskEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetConservativeRasterizationModeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetConservativeRasterizationModeEXTcoreAt least one of the following must be true: The extendedDynamicState3ConservativeRasterizationMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetConservativeRasterizationModeEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetConservativeRasterizationModeEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetConservativeRasterizationModeEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetConservativeRasterizationModeEXT-conservativeRasterizationMode-parameterYNoneimplicitvkCmdSetConservativeRasterizationModeEXTcoreconservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value
VUID-vkCmdSetConservativeRasterizationModeEXT-videocodingYNoneimplicitvkCmdSetConservativeRasterizationModeEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationModeNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageModulationModeNVcoreAt least one of the following must be true: The extendedDynamicState3CoverageModulationMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationModeNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationModeNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationModeNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationModeNV-coverageModulationMode-parameterYNoneimplicitvkCmdSetCoverageModulationModeNVcorecoverageModulationMode must be a valid VkCoverageModulationModeNV value
VUID-vkCmdSetCoverageModulationModeNV-videocodingYNoneimplicitvkCmdSetCoverageModulationModeNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationTableEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageModulationTableEnableNVcoreAt least one of the following must be true: The extendedDynamicState3CoverageModulationTableEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationTableEnableNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationTableEnableNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationTableEnableNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationTableEnableNV-videocodingYNoneimplicitvkCmdSetCoverageModulationTableEnableNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationTableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageModulationTableNVcoreAt least one of the following must be true: The extendedDynamicState3CoverageModulationTable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationTableNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationTableNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationTableNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationTableNV-coverageModulationTableCount-arraylengthYNoneimplicitvkCmdSetCoverageModulationTableNVcorecoverageModulationTableCount must be greater than 0
VUID-vkCmdSetCoverageModulationTableNV-pCoverageModulationTable-parameterYNoneimplicitvkCmdSetCoverageModulationTableNVcorepCoverageModulationTable must be a valid pointer to an array of coverageModulationTableCount float values
VUID-vkCmdSetCoverageModulationTableNV-videocodingYNoneimplicitvkCmdSetCoverageModulationTableNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageReductionModeNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageReductionModeNVcoreAt least one of the following must be true: The extendedDynamicState3CoverageReductionMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageReductionModeNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageReductionModeNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageReductionModeNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetCoverageReductionModeNV-coverageReductionMode-parameterYNoneimplicitvkCmdSetCoverageReductionModeNVcorecoverageReductionMode must be a valid VkCoverageReductionModeNV value
VUID-vkCmdSetCoverageReductionModeNV-videocodingYNoneimplicitvkCmdSetCoverageReductionModeNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageToColorEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageToColorEnableNVcoreAt least one of the following must be true: The extendedDynamicState3CoverageToColorEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageToColorEnableNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageToColorEnableNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageToColorEnableNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetCoverageToColorEnableNV-videocodingYNoneimplicitvkCmdSetCoverageToColorEnableNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageToColorLocationNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageToColorLocationNVcoreAt least one of the following must be true: The extendedDynamicState3CoverageToColorLocation feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageToColorLocationNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageToColorLocationNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageToColorLocationNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetCoverageToColorLocationNV-videocodingYNoneimplicitvkCmdSetCoverageToColorLocationNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCullMode-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetCullModecoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetCullMode-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCullModecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCullMode-commandBuffer-parameterYNoneimplicitvkCmdSetCullModecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCullMode-commandBuffer-recordingYNoneimplicitvkCmdSetCullModecorecommandBuffer must be in the recording state
VUID-vkCmdSetCullMode-cullMode-parameterYNoneimplicitvkCmdSetCullModecorecullMode must be a valid combination of VkCullModeFlagBits values
VUID-vkCmdSetCullMode-videocodingYNoneimplicitvkCmdSetCullModecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBias-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBiascoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBias-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBiascorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBias-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBiascorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBias-depthBiasClamp-00790YNegativeDynamicState.SetDepthBiasClampDisabledexplicitvkCmdSetDepthBiascoreIf the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0
VUID-vkCmdSetDepthBias-videocodingYNoneimplicitvkCmdSetDepthBiascoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBias2EXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBias2EXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBias2EXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBias2EXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBias2EXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBias2EXT-pDepthBiasInfo-parameterYNoneimplicitvkCmdSetDepthBias2EXTcorepDepthBiasInfo must be a valid pointer to a valid VkDepthBiasInfoEXT structure
VUID-vkCmdSetDepthBias2EXT-videocodingYNoneimplicitvkCmdSetDepthBias2EXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBiasEnable-None-08970YNegativeDynamicState.ExtendedDynamicState2DisabledexplicitvkCmdSetDepthBiasEnablecoreAt least one of the following must be true: the extendedDynamicState2 feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetDepthBiasEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBiasEnablecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBiasEnablecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBiasEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBiasEnablecorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBiasEnable-videocodingYNoneimplicitvkCmdSetDepthBiasEnablecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBounds-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBoundscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBounds-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBoundscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBounds-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBoundscorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBounds-maxDepthBounds-00601YNegativeDynamicState.DepthRangeUnrestrictedexplicitvkCmdSetDepthBoundscoreIf the VK_EXT_depth_range_unrestricted extension is not enabled maxDepthBounds must be between 0.0 and 1.0, inclusive
VUID-vkCmdSetDepthBounds-minDepthBounds-00600YNegativeDynamicState.DepthRangeUnrestrictedexplicitvkCmdSetDepthBoundscoreIf the VK_EXT_depth_range_unrestricted extension is not enabled minDepthBounds must be between 0.0 and 1.0, inclusive
VUID-vkCmdSetDepthBounds-videocodingYNoneimplicitvkCmdSetDepthBoundscoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBoundsTestEnable-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetDepthBoundsTestEnablecoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBoundsTestEnablecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBoundsTestEnablecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBoundsTestEnablecorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBoundsTestEnable-videocodingYNoneimplicitvkCmdSetDepthBoundsTestEnablecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClampEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClampEnableEXTcoreAt least one of the following must be true: The extendedDynamicState3DepthClampEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClampEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClampEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClampEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449YNegativeDynamicState.DrawNotSetDepthClampEnableexplicitvkCmdSetDepthClampEnableEXTcoreIf the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE
VUID-vkCmdSetDepthClampEnableEXT-videocodingYNoneimplicitvkCmdSetDepthClampEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClipEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClipEnableEXTcoreAt least one of the following must be true: The extendedDynamicState3DepthClipEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClipEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClipEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClipEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthClipEnableEXT-depthClipEnable-07451YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClipEnableEXTcoreThe depthClipEnable feature must be enabled
VUID-vkCmdSetDepthClipEnableEXT-videocodingYNoneimplicitvkCmdSetDepthClipEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClipNegativeOneToOneEXTcoreAt least one of the following must be true: The extendedDynamicState3DepthClipNegativeOneToOne feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClipNegativeOneToOneEXTcoreThe depthClipControl feature must be enabled
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-videocodingYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthCompareOp-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetDepthCompareOpcoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetDepthCompareOp-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthCompareOpcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthCompareOp-commandBuffer-parameterYNoneimplicitvkCmdSetDepthCompareOpcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthCompareOp-commandBuffer-recordingYNoneimplicitvkCmdSetDepthCompareOpcorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameterYNoneimplicitvkCmdSetDepthCompareOpcoredepthCompareOp must be a valid VkCompareOp value
VUID-vkCmdSetDepthCompareOp-videocodingYNoneimplicitvkCmdSetDepthCompareOpcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthTestEnable-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetDepthTestEnablecoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetDepthTestEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthTestEnablecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthTestEnablecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthTestEnablecorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthTestEnable-videocodingYNoneimplicitvkCmdSetDepthTestEnablecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthWriteEnable-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetDepthWriteEnablecoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetDepthWriteEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthWriteEnablecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthWriteEnablecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthWriteEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthWriteEnablecorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthWriteEnable-videocodingYNoneimplicitvkCmdSetDepthWriteEnablecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-recordingYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDescriptorBufferOffsets2EXT-descriptorBuffer-09470YNoneexplicitvkCmdSetDescriptorBufferOffsets2EXTcoreThe descriptorBuffer feature must be enabled
VUID-vkCmdSetDescriptorBufferOffsets2EXT-pSetDescriptorBufferOffsetsInfo-09471YNoneexplicitvkCmdSetDescriptorBufferOffsets2EXTcoreEach bit in pSetDescriptorBufferOffsetsInfo->stageFlags must be a stage supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdSetDescriptorBufferOffsets2EXT-pSetDescriptorBufferOffsetsInfo-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTcorepSetDescriptorBufferOffsetsInfo must be a valid pointer to a valid VkSetDescriptorBufferOffsetsInfoEXT structure
VUID-vkCmdSetDescriptorBufferOffsets2EXT-videocodingYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDescriptorBufferOffsetsEXT-None-08060YNoneexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThe descriptorBuffer feature must be enabled
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commonparentYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcoreBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-08066YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThe sum of firstSet and setCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-09006YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThe VkDescriptorSetLayout for each set from firstSet to firstSet + setCount when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set
VUID-vkCmdSetDescriptorBufferOffsetsEXT-layout-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcorelayout must be a valid VkPipelineLayout handle
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08064YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreEach element of pBufferIndices must be less than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08065YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreEach element of pBufferIndices must reference a valid descriptor buffer binding set by a previous call to vkCmdBindDescriptorBuffersEXT in commandBuffer
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcorepBufferIndices must be a valid pointer to an array of setCount uint32_t values
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08061YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThe offsets in pOffsets must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThe offsets in pOffsets must be small enough such that any descriptor binding referenced by layout without the VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT flag computes a valid address inside the underlying VkBuffer
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08126NNoneexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThe offsets in pOffsets must be small enough such that any location accessed by a shader as a sampler descriptor must be within VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferRange of the sampler descriptor buffer binding
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08127NNoneexplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThe offsets in pOffsets must be small enough such that any location accessed by a shader as a resource descriptor must be within VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferRange of the resource descriptor buffer binding
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcorepOffsets must be a valid pointer to an array of setCount VkDeviceSize values
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-08067YNegativeDescriptorBuffer.BindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTcorepipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdSetDescriptorBufferOffsetsEXT-setCount-arraylengthYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcoresetCount must be greater than 0
VUID-vkCmdSetDescriptorBufferOffsetsEXT-videocodingYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDeviceMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDeviceMaskcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetDeviceMask-commandBuffer-parameterYNoneimplicitvkCmdSetDeviceMaskcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDeviceMask-commandBuffer-recordingYNoneimplicitvkCmdSetDeviceMaskcorecommandBuffer must be in the recording state
VUID-vkCmdSetDeviceMask-deviceMask-00108YNegativeWsi.DeviceMaskexplicitvkCmdSetDeviceMaskcoredeviceMask must be a valid device mask value
VUID-vkCmdSetDeviceMask-deviceMask-00109YNegativeWsi.DeviceMaskexplicitvkCmdSetDeviceMaskcoredeviceMask must not be zero
VUID-vkCmdSetDeviceMask-deviceMask-00110YNegativeWsi.DeviceMaskexplicitvkCmdSetDeviceMaskcoredeviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfo::deviceMask value when the command buffer began recording
VUID-vkCmdSetDeviceMask-deviceMask-00111YNegativeWsi.DeviceMaskexplicitvkCmdSetDeviceMaskcoreIf vkCmdSetDeviceMask is called inside a render pass instance, deviceMask must not include any set bits that were not in the VkDeviceGroupRenderPassBeginInfo::deviceMask value when the render pass instance began recording
VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDiscardRectangleEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDiscardRectangleEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDiscardRectangleEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylengthYNoneimplicitvkCmdSetDiscardRectangleEXTcorediscardRectangleCount must be greater than 0
VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585YNegativeDynamicState.CmdSetDiscardRectangleEXTRectangleCountexplicitvkCmdSetDiscardRectangleEXTcoreThe sum of firstDiscardRectangle and discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles
VUID-vkCmdSetDiscardRectangleEXT-offset-00588YNegativeDynamicState.CmdSetDiscardRectangleEXTRectangleCountOverflowexplicitvkCmdSetDiscardRectangleEXTcoreEvaluation of (offset.x + extent.width) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow
VUID-vkCmdSetDiscardRectangleEXT-offset-00589YNegativeDynamicState.CmdSetDiscardRectangleEXTRectangleCountOverflowexplicitvkCmdSetDiscardRectangleEXTcoreEvaluation of (offset.y + extent.height) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow
VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameterYNoneimplicitvkCmdSetDiscardRectangleEXTcorepDiscardRectangles must be a valid pointer to an array of discardRectangleCount VkRect2D structures
VUID-vkCmdSetDiscardRectangleEXT-videocodingYNoneimplicitvkCmdSetDiscardRectangleEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788YNoneexplicitvkCmdSetDiscardRectangleEXTcoreIf this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called
VUID-vkCmdSetDiscardRectangleEXT-x-00587YNegativeDynamicState.CmdSetDiscardRectangleEXTOffsetsexplicitvkCmdSetDiscardRectangleEXTcoreThe x and y member of offset in each VkRect2D element of pDiscardRectangles must be greater than or equal to 0
VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDiscardRectangleEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDiscardRectangleEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDiscardRectangleEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDiscardRectangleEnableEXT-specVersion-07851YNegativeDynamicState.DiscardRectanglesVersionexplicitvkCmdSetDiscardRectangleEnableEXTcoreThe VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension
VUID-vkCmdSetDiscardRectangleEnableEXT-videocodingYNoneimplicitvkCmdSetDiscardRectangleEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDiscardRectangleModeEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDiscardRectangleModeEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDiscardRectangleModeEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetDiscardRectangleModeEXT-discardRectangleMode-parameterYNoneimplicitvkCmdSetDiscardRectangleModeEXTcorediscardRectangleMode must be a valid VkDiscardRectangleModeEXT value
VUID-vkCmdSetDiscardRectangleModeEXT-specVersion-07852YNoneexplicitvkCmdSetDiscardRectangleModeEXTcoreThe VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension
VUID-vkCmdSetDiscardRectangleModeEXT-videocodingYNoneimplicitvkCmdSetDiscardRectangleModeEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetEvent-commandBuffer-01152NNoneexplicitvkCmdSetEventcoreThe current device mask of commandBuffer must include exactly one physical device
VUID-vkCmdSetEvent-commandBuffer-cmdpoolYNoneimplicitvkCmdSetEventcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdSetEvent-commandBuffer-parameterYNoneimplicitvkCmdSetEventcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetEvent-commandBuffer-recordingYNoneimplicitvkCmdSetEventcorecommandBuffer must be in the recording state
VUID-vkCmdSetEvent-commonparentYNoneimplicitvkCmdSetEventcoreBoth of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetEvent-event-parameterYNoneimplicitvkCmdSetEventcoreevent must be a valid VkEvent handle
VUID-vkCmdSetEvent-renderpassYNoneimplicitvkCmdSetEventcoreThis command must only be called outside of a render pass instance
VUID-vkCmdSetEvent-stageMask-01149YNegativeSyncObject.StageMaskHostexplicitvkCmdSetEventcorestageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdSetEvent-stageMask-03937YNoneexplicitvkCmdSetEventcoreIf the synchronization2 feature is not enabled, stageMask must not be 0
VUID-vkCmdSetEvent-stageMask-04090YNegativeGeometryTessellation.StageMaskGsTsEnabledexplicitvkCmdSetEventcoreIf the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdSetEvent-stageMask-04091YNegativeGeometryTessellation.StageMaskGsTsEnabledexplicitvkCmdSetEventcoreIf the tessellationShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdSetEvent-stageMask-04092YNoneexplicitvkCmdSetEventcoreIf the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04093YNoneexplicitvkCmdSetEventcoreIf the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04094YNoneexplicitvkCmdSetEventcoreIf the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdSetEventcoreIf the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdSetEventcoreIf the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdSetEvent-stageMask-06457YNoneexplicitvkCmdSetEventcoreAny pipeline stage included in stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdSetEvent-stageMask-07318YNegativeFragmentShadingRate.StageUsage, NegativeFragmentShadingRate.StageUsageNVexplicitvkCmdSetEventcoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdSetEvent-stageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdSetEventcoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdSetEvent-stageMask-parameterYNoneimplicitvkCmdSetEventcorestageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdSetEvent2-commandBuffer-03826NNoneexplicitvkCmdSetEvent2coreThe current device mask of commandBuffer must include exactly one physical device
VUID-vkCmdSetEvent2-commandBuffer-cmdpoolYNoneimplicitvkCmdSetEvent2coreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdSetEvent2-commandBuffer-parameterYNoneimplicitvkCmdSetEvent2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetEvent2-commandBuffer-recordingYNoneimplicitvkCmdSetEvent2corecommandBuffer must be in the recording state
VUID-vkCmdSetEvent2-commonparentYNoneimplicitvkCmdSetEvent2coreBoth of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetEvent2-dependencyFlags-03825YNegativeSyncObject.SetEvent2DependencyFlagsexplicitvkCmdSetEvent2coreThe dependencyFlags member of pDependencyInfo must be 0
VUID-vkCmdSetEvent2-dstStageMask-03828YNoneexplicitvkCmdSetEvent2coreThe dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdSetEvent2-dstStageMask-09392YNegativeSyncObject.SetEvent2HostStageexplicitvkCmdSetEvent2coreThe dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must not include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-vkCmdSetEvent2-event-parameterYNoneimplicitvkCmdSetEvent2coreevent must be a valid VkEvent handle
VUID-vkCmdSetEvent2-pDependencyInfo-parameterYNoneimplicitvkCmdSetEvent2corepDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure
VUID-vkCmdSetEvent2-renderpassYNoneimplicitvkCmdSetEvent2coreThis command must only be called outside of a render pass instance
VUID-vkCmdSetEvent2-srcStageMask-03827YNoneexplicitvkCmdSetEvent2coreThe srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdSetEvent2-srcStageMask-09391YNegativeSyncObject.SetEvent2HostStageexplicitvkCmdSetEvent2coreThe srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must not include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-vkCmdSetEvent2-synchronization2-03824YNegativeSyncVal.Sync2FeatureDisabledexplicitvkCmdSetEvent2coreThe synchronization2 feature must be enabled
VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetExclusiveScissorEnableNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetExclusiveScissorEnableNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetExclusiveScissorEnableNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetExclusiveScissorEnableNV-exclusiveScissor-07853YNoneexplicitvkCmdSetExclusiveScissorEnableNVcoreThe exclusiveScissor feature must be enabled, and the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extension
VUID-vkCmdSetExclusiveScissorEnableNV-exclusiveScissorCount-arraylengthNNoneimplicitvkCmdSetExclusiveScissorEnableNVcoreexclusiveScissorCount must be greater than 0
VUID-vkCmdSetExclusiveScissorEnableNV-pExclusiveScissorEnables-parameterNNoneimplicitvkCmdSetExclusiveScissorEnableNVcorepExclusiveScissorEnables must be a valid pointer to an array of exclusiveScissorCount VkBool32 values
VUID-vkCmdSetExclusiveScissorEnableNV-videocodingYNoneimplicitvkCmdSetExclusiveScissorEnableNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetExclusiveScissorNV-None-02031YNoneexplicitvkCmdSetExclusiveScissorNVcoreThe exclusiveScissor feature must be enabled
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetExclusiveScissorNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameterYNoneimplicitvkCmdSetExclusiveScissorNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recordingYNoneimplicitvkCmdSetExclusiveScissorNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVcoreIf the multiViewport feature is not enabled, exclusiveScissorCount must be 1
VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylengthYNegativeCommand.ExclusiveScissorNVimplicitvkCmdSetExclusiveScissorNVcoreexclusiveScissorCount must be greater than 0
VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034YNoneexplicitvkCmdSetExclusiveScissorNVcoreThe sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVcoreIf the multiViewport feature is not enabled, firstExclusiveScissor must be 0
VUID-vkCmdSetExclusiveScissorNV-offset-02038YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVcoreEvaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow
VUID-vkCmdSetExclusiveScissorNV-offset-02039YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVcoreEvaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow
VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameterYNegativeCommand.ExclusiveScissorNVimplicitvkCmdSetExclusiveScissorNVcorepExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures
VUID-vkCmdSetExclusiveScissorNV-videocodingYNoneimplicitvkCmdSetExclusiveScissorNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetExclusiveScissorNV-x-02037YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVcoreThe x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTcoreAt least one of the following must be true: The extendedDynamicState3ExtraPrimitiveOverestimationSize feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428YNegativeDynamicState.DrawNotSetExtraPrimitiveOverestimationSizeexplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTcoreextraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-videocodingYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582NNoneexplicitvkCmdSetFragmentShadingRateEnumNVcoreIf the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameterNNoneimplicitvkCmdSetFragmentShadingRateEnumNVcoreEach element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetFragmentShadingRateEnumNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameterYNoneimplicitvkCmdSetFragmentShadingRateEnumNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recordingYNoneimplicitvkCmdSetFragmentShadingRateEnumNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579YNoneexplicitvkCmdSetFragmentShadingRateEnumNVcoreThe fragmentShadingRateEnums feature must be enabled
VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583NNoneexplicitvkCmdSetFragmentShadingRateEnumNVcoreIf the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578NNoneexplicitvkCmdSetFragmentShadingRateEnumNVcoreIf noInvocationFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576NNoneexplicitvkCmdSetFragmentShadingRateEnumNVcoreIf pipelineFragmentShadingRate is not enabled, shadingRate must be VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV
VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580NNoneexplicitvkCmdSetFragmentShadingRateEnumNVcoreOne of the pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate features must be enabled
VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581NNoneexplicitvkCmdSetFragmentShadingRateEnumNVcoreIf the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameterYNoneimplicitvkCmdSetFragmentShadingRateEnumNVcoreshadingRate must be a valid VkFragmentShadingRateNV value
VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577NNoneexplicitvkCmdSetFragmentShadingRateEnumNVcoreIf supersampleFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV
VUID-vkCmdSetFragmentShadingRateEnumNV-videocodingYNoneimplicitvkCmdSetFragmentShadingRateEnumNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511YNegativeFragmentShadingRate.CombinerOpsNoFeaturesexplicitvkCmdSetFragmentShadingRateKHRcoreIf the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameterNNoneimplicitvkCmdSetFragmentShadingRateKHRcoreEach element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetFragmentShadingRateKHRcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameterYNoneimplicitvkCmdSetFragmentShadingRateKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recordingYNoneimplicitvkCmdSetFragmentShadingRateKHRcorecommandBuffer must be in the recording state
VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512YNegativeFragmentShadingRate.CombinerOpsLimitexplicitvkCmdSetFragmentShadingRateKHRcoreIf the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRcorepFragmentSize->width must be greater than or equal to 1
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRcorepFragmentSize->height must be greater than or equal to 1
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRcorepFragmentSize->width must be a power-of-two value
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRcorepFragmentSize->height must be a power-of-two value
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRcorepFragmentSize->width must be less than or equal to 4
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRcorepFragmentSize->height must be less than or equal to 4
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameterYNoneimplicitvkCmdSetFragmentShadingRateKHRcorepFragmentSize must be a valid pointer to a valid VkExtent2D structure
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507YNegativeFragmentShadingRate.CombinerOpsNoPipelineRateexplicitvkCmdSetFragmentShadingRateKHRcoreIf pipelineFragmentShadingRate is not enabled, pFragmentSize->width must be 1
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508YNegativeFragmentShadingRate.CombinerOpsNoPipelineRateexplicitvkCmdSetFragmentShadingRateKHRcoreIf pipelineFragmentShadingRate is not enabled, pFragmentSize->height must be 1
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509YNegativeFragmentShadingRate.ValuesNoFeaturesexplicitvkCmdSetFragmentShadingRateKHRcoreOne of pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate must be enabled
VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510YNegativeFragmentShadingRate.CombinerOpsNoFeaturesexplicitvkCmdSetFragmentShadingRateKHRcoreIf the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateKHR-videocodingYNoneimplicitvkCmdSetFragmentShadingRateKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetFrontFace-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetFrontFacecoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetFrontFace-commandBuffer-cmdpoolYNoneimplicitvkCmdSetFrontFacecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFrontFace-commandBuffer-parameterYNoneimplicitvkCmdSetFrontFacecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFrontFace-commandBuffer-recordingYNoneimplicitvkCmdSetFrontFacecorecommandBuffer must be in the recording state
VUID-vkCmdSetFrontFace-frontFace-parameterYNoneimplicitvkCmdSetFrontFacecorefrontFace must be a valid VkFrontFace value
VUID-vkCmdSetFrontFace-videocodingYNoneimplicitvkCmdSetFrontFacecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetLineRasterizationModeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetLineRasterizationModeEXTcoreAt least one of the following must be true: The extendedDynamicState3LineRasterizationMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineRasterizationModeEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLineRasterizationModeEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLineRasterizationModeEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418YNegativeDynamicState.DrawNotSetLineRasterizationModeexplicitvkCmdSetLineRasterizationModeEXTcoreIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07419YNegativeDynamicState.DrawNotSetLineRasterizationModeexplicitvkCmdSetLineRasterizationModeEXTcoreIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07420YNegativeDynamicState.DrawNotSetLineRasterizationModeexplicitvkCmdSetLineRasterizationModeEXTcoreIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-parameterYNoneimplicitvkCmdSetLineRasterizationModeEXTcorelineRasterizationMode must be a valid VkLineRasterizationModeEXT value
VUID-vkCmdSetLineRasterizationModeEXT-videocodingYNoneimplicitvkCmdSetLineRasterizationModeEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetLineStippleEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineStippleEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineStippleEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLineStippleEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineStippleEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLineStippleEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776YNegativePipeline.LineRasterizationexplicitvkCmdSetLineStippleEXTcorelineStippleFactor must be in the range [1,256]
VUID-vkCmdSetLineStippleEXT-videocodingYNoneimplicitvkCmdSetLineStippleEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetLineStippleEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetLineStippleEnableEXTcoreAt least one of the following must be true: The extendedDynamicState3LineStippleEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineStippleEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLineStippleEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLineStippleEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetLineStippleEnableEXT-videocodingYNoneimplicitvkCmdSetLineStippleEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetLineWidth-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineWidthcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineWidth-commandBuffer-parameterYNoneimplicitvkCmdSetLineWidthcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineWidth-commandBuffer-recordingYNoneimplicitvkCmdSetLineWidthcorecommandBuffer must be in the recording state
VUID-vkCmdSetLineWidth-lineWidth-00788YNegativeDynamicState.LineWidthexplicitvkCmdSetLineWidthcoreIf the wideLines feature is not enabled, lineWidth must be 1.0
VUID-vkCmdSetLineWidth-videocodingYNoneimplicitvkCmdSetLineWidthcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetLogicOpEXT-None-09422YNegativeDynamicState.ExtendedDynamicState2LogicOpDisabledexplicitvkCmdSetLogicOpEXTcoreAt least one of the following must be true: The extendedDynamicState2LogicOp feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetLogicOpEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLogicOpEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLogicOpEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLogicOpEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLogicOpEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLogicOpEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetLogicOpEXT-logicOp-parameterYNoneimplicitvkCmdSetLogicOpEXTcorelogicOp must be a valid VkLogicOp value
VUID-vkCmdSetLogicOpEXT-videocodingYNoneimplicitvkCmdSetLogicOpEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetLogicOpEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetLogicOpEnableEXTcoreAt least one of the following must be true: The extendedDynamicState3LogicOpEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLogicOpEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLogicOpEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLogicOpEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366YNegativeDynamicState.DrawNotSetLogicOpEnableexplicitvkCmdSetLogicOpEnableEXTcoreIf the logicOp feature is not enabled, logicOpEnable must be VK_FALSE
VUID-vkCmdSetLogicOpEnableEXT-videocodingYNoneimplicitvkCmdSetLogicOpEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetPatchControlPointsEXT-None-09422YNegativeDynamicState.ExtendedDynamicState2PatchControlPointsDisabledexplicitvkCmdSetPatchControlPointsEXTcoreAt least one of the following must be true: The extendedDynamicState2PatchControlPoints feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPatchControlPointsEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetPatchControlPointsEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetPatchControlPointsEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874YNegativeDynamicState.ExtendedDynamicState2PatchControlPointsEnabledexplicitvkCmdSetPatchControlPointsEXTcorepatchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-vkCmdSetPatchControlPointsEXT-videocodingYNoneimplicitvkCmdSetPatchControlPointsEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceMarkerINTELcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceMarkerINTELcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceMarkerINTELcorecommandBuffer must be in the recording state
VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameterYNoneimplicitvkCmdSetPerformanceMarkerINTELcorepMarkerInfo must be a valid pointer to a valid VkPerformanceMarkerInfoINTEL structure
VUID-vkCmdSetPerformanceMarkerINTEL-videocodingYNoneimplicitvkCmdSetPerformanceMarkerINTELcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceOverrideINTELcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceOverrideINTELcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceOverrideINTELcorecommandBuffer must be in the recording state
VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736NNoneexplicitvkCmdSetPerformanceOverrideINTELcorepOverrideInfo must not be used with a VkPerformanceOverrideTypeINTEL that is not reported available by vkGetPerformanceParameterINTEL
VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameterYNoneimplicitvkCmdSetPerformanceOverrideINTELcorepOverrideInfo must be a valid pointer to a valid VkPerformanceOverrideInfoINTEL structure
VUID-vkCmdSetPerformanceOverrideINTEL-videocodingYNoneimplicitvkCmdSetPerformanceOverrideINTELcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELcorecommandBuffer must be in the recording state
VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameterYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELcorepMarkerInfo must be a valid pointer to a valid VkPerformanceStreamMarkerInfoINTEL structure
VUID-vkCmdSetPerformanceStreamMarkerINTEL-videocodingYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetPolygonModeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetPolygonModeEXTcoreAt least one of the following must be true: The extendedDynamicState3PolygonMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPolygonModeEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetPolygonModeEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPolygonModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetPolygonModeEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424YNegativeDynamicState.DrawNotSetPolygonModeexplicitvkCmdSetPolygonModeEXTcoreIf the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-vkCmdSetPolygonModeEXT-polygonMode-07425YNoneexplicitvkCmdSetPolygonModeEXTcoreIf the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-vkCmdSetPolygonModeEXT-polygonMode-parameterYNegativeDynamicState.DrawNotSetPolygonModeimplicitvkCmdSetPolygonModeEXTcorepolygonMode must be a valid VkPolygonMode value
VUID-vkCmdSetPolygonModeEXT-videocodingYNoneimplicitvkCmdSetPolygonModeEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetPrimitiveRestartEnable-None-08970YNegativeDynamicState.ExtendedDynamicState2DisabledexplicitvkCmdSetPrimitiveRestartEnablecoreAt least one of the following must be true: the extendedDynamicState2 feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPrimitiveRestartEnablecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameterYNoneimplicitvkCmdSetPrimitiveRestartEnablecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-recordingYNoneimplicitvkCmdSetPrimitiveRestartEnablecorecommandBuffer must be in the recording state
VUID-vkCmdSetPrimitiveRestartEnable-videocodingYNoneimplicitvkCmdSetPrimitiveRestartEnablecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetPrimitiveTopology-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetPrimitiveTopologycoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetPrimitiveTopology-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPrimitiveTopologycoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameterYNoneimplicitvkCmdSetPrimitiveTopologycorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPrimitiveTopology-commandBuffer-recordingYNoneimplicitvkCmdSetPrimitiveTopologycorecommandBuffer must be in the recording state
VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameterYNoneimplicitvkCmdSetPrimitiveTopologycoreprimitiveTopology must be a valid VkPrimitiveTopology value
VUID-vkCmdSetPrimitiveTopology-videocodingYNoneimplicitvkCmdSetPrimitiveTopologycoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetProvokingVertexModeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetProvokingVertexModeEXTcoreAt least one of the following must be true: The extendedDynamicState3ProvokingVertexMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetProvokingVertexModeEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetProvokingVertexModeEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetProvokingVertexModeEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447YNegativeDynamicState.DrawNotSetProvokingVertexModeexplicitvkCmdSetProvokingVertexModeEXTcoreIf provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled
VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-parameterYNoneimplicitvkCmdSetProvokingVertexModeEXTcoreprovokingVertexMode must be a valid VkProvokingVertexModeEXT value
VUID-vkCmdSetProvokingVertexModeEXT-videocodingYNoneimplicitvkCmdSetProvokingVertexModeEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizationSamplesEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRasterizationSamplesEXTcoreAt least one of the following must be true: The extendedDynamicState3RasterizationSamples feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRasterizationSamplesEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizationSamplesEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizationSamplesEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetRasterizationSamplesEXT-rasterizationSamples-parameterYNoneimplicitvkCmdSetRasterizationSamplesEXTcorerasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-vkCmdSetRasterizationSamplesEXT-videocodingYNoneimplicitvkCmdSetRasterizationSamplesEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizationStreamEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRasterizationStreamEXTcoreAt least one of the following must be true: The extendedDynamicState3RasterizationStream feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRasterizationStreamEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizationStreamEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizationStreamEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07412YNegativeDynamicState.DrawNotSetRasterizationStream, NegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRasterizationStreamEXTcorerasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07413YNegativeDynamicState.DrawNotSetRasterizationStreamexplicitvkCmdSetRasterizationStreamEXTcorerasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE
VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411YNegativeDynamicState.DrawNotSetRasterizationStream, NegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRasterizationStreamEXTcoreThe transformFeedback feature must be enabled
VUID-vkCmdSetRasterizationStreamEXT-videocodingYNoneimplicitvkCmdSetRasterizationStreamEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizerDiscardEnable-None-08970YNegativeDynamicState.ExtendedDynamicState2DisabledexplicitvkCmdSetRasterizerDiscardEnablecoreAt least one of the following must be true: the extendedDynamicState2 feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRasterizerDiscardEnablecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizerDiscardEnablecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizerDiscardEnablecorecommandBuffer must be in the recording state
VUID-vkCmdSetRasterizerDiscardEnable-videocodingYNoneimplicitvkCmdSetRasterizerDiscardEnablecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameterYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-recordingYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRcorecommandBuffer must be in the recording state
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-pipelineStackSize-03610NNoneexplicitvkCmdSetRayTracingPipelineStackSizeKHRcorepipelineStackSize must be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpassYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-videocodingYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRepresentativeFragmentTestEnableNVcoreAt least one of the following must be true: The extendedDynamicState3RepresentativeFragmentTestEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-videocodingYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleLocationsEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleLocationsEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleLocationsEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameterYNoneimplicitvkCmdSetSampleLocationsEXTcorepSampleLocationsInfo must be a valid pointer to a valid VkSampleLocationsInfoEXT structure
VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530NNoneexplicitvkCmdSetSampleLocationsEXTcoreIf VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE then the current render pass must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sample locations state pointed to by pSampleLocationsInfo
VUID-vkCmdSetSampleLocationsEXT-videocodingYNoneimplicitvkCmdSetSampleLocationsEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetSampleLocationsEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetSampleLocationsEnableEXTcoreAt least one of the following must be true: The extendedDynamicState3SampleLocationsEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleLocationsEnableEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleLocationsEnableEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleLocationsEnableEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetSampleLocationsEnableEXT-videocodingYNoneimplicitvkCmdSetSampleLocationsEnableEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetSampleMaskEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetSampleMaskEXTcoreAt least one of the following must be true: The extendedDynamicState3SampleMask feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetSampleMaskEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleMaskEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleMaskEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleMaskEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleMaskEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetSampleMaskEXT-pSampleMask-parameterYNoneimplicitvkCmdSetSampleMaskEXTcorepSampleMask must be a valid pointer to an array of \(\lceil{\mathit{samples} \over 32}\rceil\) VkSampleMask values
VUID-vkCmdSetSampleMaskEXT-samples-parameterYNoneimplicitvkCmdSetSampleMaskEXTcoresamples must be a valid VkSampleCountFlagBits value
VUID-vkCmdSetSampleMaskEXT-videocodingYNoneimplicitvkCmdSetSampleMaskEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetScissor-commandBuffer-cmdpoolYNoneimplicitvkCmdSetScissorcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetScissor-commandBuffer-parameterYNoneimplicitvkCmdSetScissorcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetScissor-commandBuffer-recordingYNoneimplicitvkCmdSetScissorcorecommandBuffer must be in the recording state
VUID-vkCmdSetScissor-firstScissor-00592YNegativeDynamicState.SetScissorParamMultiviewportexplicitvkCmdSetScissorcoreThe sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetScissor-firstScissor-00593YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorcoreIf the multiViewport feature is not enabled, firstScissor must be 0
VUID-vkCmdSetScissor-offset-00596YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorcoreEvaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissor-offset-00597YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorcoreEvaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissor-pScissors-parameterYNegativeDynamicState.SetScissorParam, NegativeDynamicState.SetScissorParamMultiviewportimplicitvkCmdSetScissorcorepScissors must be a valid pointer to an array of scissorCount VkRect2D structures
VUID-vkCmdSetScissor-scissorCount-00594YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorcoreIf the multiViewport feature is not enabled, scissorCount must be 1
VUID-vkCmdSetScissor-scissorCount-arraylengthYNegativeDynamicState.SetScissorParam, NegativeDynamicState.SetScissorParamMultiviewportimplicitvkCmdSetScissorcorescissorCount must be greater than 0
VUID-vkCmdSetScissor-videocodingYNoneimplicitvkCmdSetScissorcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetScissor-viewportScissor2D-04789YNegativeViewportInheritance.BasicUsageexplicitvkCmdSetScissorcoreIf this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called
VUID-vkCmdSetScissor-x-00595YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorcoreThe x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-vkCmdSetScissorWithCount-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetScissorWithCountcoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetScissorWithCount-commandBuffer-04820YNoneexplicitvkCmdSetScissorWithCountcorecommandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetScissorWithCount-commandBuffer-cmdpoolYNoneimplicitvkCmdSetScissorWithCountcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetScissorWithCount-commandBuffer-parameterYNoneimplicitvkCmdSetScissorWithCountcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetScissorWithCount-commandBuffer-recordingYNoneimplicitvkCmdSetScissorWithCountcorecommandBuffer must be in the recording state
VUID-vkCmdSetScissorWithCount-offset-03400YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetScissorWithCountcoreEvaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissorWithCount-offset-03401YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetScissorWithCountcoreEvaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissorWithCount-pScissors-parameterYNoneimplicitvkCmdSetScissorWithCountcorepScissors must be a valid pointer to an array of scissorCount VkRect2D structures
VUID-vkCmdSetScissorWithCount-scissorCount-03397YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetScissorWithCountcorescissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetScissorWithCount-scissorCount-03398YNegativeDynamicState.ExtendedDynamicStateEnabledNoMultiviewexplicitvkCmdSetScissorWithCountcoreIf the multiViewport feature is not enabled, scissorCount must be 1
VUID-vkCmdSetScissorWithCount-scissorCount-arraylengthYNegativeDynamicState.ExtendedDynamicStateSetViewportScissorimplicitvkCmdSetScissorWithCountcorescissorCount must be greater than 0
VUID-vkCmdSetScissorWithCount-videocodingYNoneimplicitvkCmdSetScissorWithCountcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetScissorWithCount-x-03399YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetScissorWithCountcoreThe x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-vkCmdSetShadingRateImageEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetShadingRateImageEnableNVcoreAt least one of the following must be true: The extendedDynamicState3ShadingRateImageEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetShadingRateImageEnableNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetShadingRateImageEnableNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetShadingRateImageEnableNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetShadingRateImageEnableNV-videocodingYNoneimplicitvkCmdSetShadingRateImageEnableNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilCompareMaskcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilCompareMask-commandBuffer-parameterYNoneimplicitvkCmdSetStencilCompareMaskcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilCompareMask-commandBuffer-recordingYNoneimplicitvkCmdSetStencilCompareMaskcorecommandBuffer must be in the recording state
VUID-vkCmdSetStencilCompareMask-faceMask-parameterYNoneimplicitvkCmdSetStencilCompareMaskcorefaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilCompareMaskcorefaceMask must not be 0
VUID-vkCmdSetStencilCompareMask-videocodingYNoneimplicitvkCmdSetStencilCompareMaskcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilOp-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetStencilOpcoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetStencilOp-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilOpcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilOp-commandBuffer-parameterYNoneimplicitvkCmdSetStencilOpcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilOp-commandBuffer-recordingYNoneimplicitvkCmdSetStencilOpcorecommandBuffer must be in the recording state
VUID-vkCmdSetStencilOp-compareOp-parameterYNoneimplicitvkCmdSetStencilOpcorecompareOp must be a valid VkCompareOp value
VUID-vkCmdSetStencilOp-depthFailOp-parameterYNoneimplicitvkCmdSetStencilOpcoredepthFailOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-faceMask-parameterYNoneimplicitvkCmdSetStencilOpcorefaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilOp-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilOpcorefaceMask must not be 0
VUID-vkCmdSetStencilOp-failOp-parameterYNoneimplicitvkCmdSetStencilOpcorefailOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-passOp-parameterYNoneimplicitvkCmdSetStencilOpcorepassOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-videocodingYNoneimplicitvkCmdSetStencilOpcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilReference-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilReferencecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilReference-commandBuffer-parameterYNoneimplicitvkCmdSetStencilReferencecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilReference-commandBuffer-recordingYNoneimplicitvkCmdSetStencilReferencecorecommandBuffer must be in the recording state
VUID-vkCmdSetStencilReference-faceMask-parameterYNoneimplicitvkCmdSetStencilReferencecorefaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilReference-faceMask-requiredbitmaskYVkLayerTest.RequiredParameterimplicitvkCmdSetStencilReferencecorefaceMask must not be 0
VUID-vkCmdSetStencilReference-videocodingYNoneimplicitvkCmdSetStencilReferencecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilTestEnable-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetStencilTestEnablecoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetStencilTestEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilTestEnablecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetStencilTestEnablecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetStencilTestEnablecorecommandBuffer must be in the recording state
VUID-vkCmdSetStencilTestEnable-videocodingYNoneimplicitvkCmdSetStencilTestEnablecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilWriteMaskcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilWriteMask-commandBuffer-parameterYNoneimplicitvkCmdSetStencilWriteMaskcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilWriteMask-commandBuffer-recordingYNoneimplicitvkCmdSetStencilWriteMaskcorecommandBuffer must be in the recording state
VUID-vkCmdSetStencilWriteMask-faceMask-parameterYNoneimplicitvkCmdSetStencilWriteMaskcorefaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilWriteMaskcorefaceMask must not be 0
VUID-vkCmdSetStencilWriteMask-videocodingYNoneimplicitvkCmdSetStencilWriteMaskcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetTessellationDomainOriginEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetTessellationDomainOriginEXTcoreAt least one of the following must be true: The extendedDynamicState3TessellationDomainOrigin feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetTessellationDomainOriginEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameterYNoneimplicitvkCmdSetTessellationDomainOriginEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-recordingYNoneimplicitvkCmdSetTessellationDomainOriginEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetTessellationDomainOriginEXT-domainOrigin-parameterYNoneimplicitvkCmdSetTessellationDomainOriginEXTcoredomainOrigin must be a valid VkTessellationDomainOrigin value
VUID-vkCmdSetTessellationDomainOriginEXT-videocodingYNoneimplicitvkCmdSetTessellationDomainOriginEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetVertexInputEXT-None-08546YNegativeDynamicState.VertexInputDynamicStateDisabledexplicitvkCmdSetVertexInputEXTcoreEither the vertexInputDynamicState feature or the shaderObject feature or both must be enabled
VUID-vkCmdSetVertexInputEXT-binding-04793YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTcoreFor every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription2EXT must exist in pVertexBindingDescriptions with the same value of binding
VUID-vkCmdSetVertexInputEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetVertexInputEXTcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetVertexInputEXT-commandBuffer-parameterYNoneimplicitvkCmdSetVertexInputEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetVertexInputEXT-commandBuffer-recordingYNoneimplicitvkCmdSetVertexInputEXTcorecommandBuffer must be in the recording state
VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTcoreAll elements of pVertexAttributeDescriptions must describe distinct attribute locations
VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameterYNoneimplicitvkCmdSetVertexInputEXTcoreIf vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription2EXT structures
VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-04794YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTcoreAll elements of pVertexBindingDescriptions must describe distinct binding numbers
VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameterYNoneimplicitvkCmdSetVertexInputEXTcoreIf vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription2EXT structures
VUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTcorevertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTcorevertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdSetVertexInputEXT-videocodingYNoneimplicitvkCmdSetVertexInputEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewport-commandBuffer-04821YNegativeViewportInheritance.BasicUsageexplicitvkCmdSetViewportcorecommandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetViewport-commandBuffer-cmdpoolYNegativeCommand.CommandQueueFlagsimplicitvkCmdSetViewportcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewport-commandBuffer-parameterYNoneimplicitvkCmdSetViewportcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewport-commandBuffer-recordingYNoneimplicitvkCmdSetViewportcorecommandBuffer must be in the recording state
VUID-vkCmdSetViewport-firstViewport-01223YNegativeDynamicState.SetViewportParamMultiviewportexplicitvkCmdSetViewportcoreThe sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewport-firstViewport-01224YNegativeDynamicState.SetViewportParamexplicitvkCmdSetViewportcoreIf the multiViewport feature is not enabled, firstViewport must be 0
VUID-vkCmdSetViewport-pViewports-parameterYNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMultiviewport, VkLayerTest.RequiredParameterimplicitvkCmdSetViewportcorepViewports must be a valid pointer to an array of viewportCount valid VkViewport structures
VUID-vkCmdSetViewport-videocodingYNoneimplicitvkCmdSetViewportcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewport-viewportCount-01225YNegativeDynamicState.SetViewportParamexplicitvkCmdSetViewportcoreIf the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewport-viewportCount-arraylengthYNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMultiviewport, VkLayerTest.RequiredParameterimplicitvkCmdSetViewportcoreviewportCount must be greater than 0
VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064YNoneexplicitvkCmdSetViewportShadingRatePaletteNVcoreThe shadingRateImage feature must be enabled
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportShadingRatePaletteNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportShadingRatePaletteNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportShadingRatePaletteNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNVcoreThe sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNVcoreIf the multiViewport feature is not enabled, firstViewport must be 0
VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameterYNoneimplicitvkCmdSetViewportShadingRatePaletteNVcorepShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures
VUID-vkCmdSetViewportShadingRatePaletteNV-videocodingYNoneimplicitvkCmdSetViewportShadingRatePaletteNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNVcoreIf the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportShadingRatePaletteNVcoreviewportCount must be greater than 0
VUID-vkCmdSetViewportSwizzleNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetViewportSwizzleNVcoreAt least one of the following must be true: The extendedDynamicState3ViewportSwizzle feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportSwizzleNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportSwizzleNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportSwizzleNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameterYNoneimplicitvkCmdSetViewportSwizzleNVcorepViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures
VUID-vkCmdSetViewportSwizzleNV-videocodingYNoneimplicitvkCmdSetViewportSwizzleNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportSwizzleNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportSwizzleNVcoreviewportCount must be greater than 0
VUID-vkCmdSetViewportWScalingEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetViewportWScalingEnableNVcoreAt least one of the following must be true: The extendedDynamicState3ViewportWScalingEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWScalingEnableNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWScalingEnableNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWScalingEnableNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetViewportWScalingEnableNV-videocodingYNoneimplicitvkCmdSetViewportWScalingEnableNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWScalingNVcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWScalingNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWScalingNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWScalingNVcorecommandBuffer must be in the recording state
VUID-vkCmdSetViewportWScalingNV-firstViewport-01324YNegativeCommand.ViewportWScalingNVexplicitvkCmdSetViewportWScalingNVcoreThe sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameterYNoneimplicitvkCmdSetViewportWScalingNVcorepViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures
VUID-vkCmdSetViewportWScalingNV-videocodingYNoneimplicitvkCmdSetViewportWScalingNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportWScalingNVcoreviewportCount must be greater than 0
VUID-vkCmdSetViewportWithCount-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetViewportWithCountcoreAt least one of the following must be true: the extendedDynamicState feature is enabled the shaderObject feature is enabled the value of VkApplicationInfo::apiVersion used to create the VkInstance parent of commandBuffer is greater than or equal to Version 1.3
VUID-vkCmdSetViewportWithCount-commandBuffer-04819YNoneexplicitvkCmdSetViewportWithCountcorecommandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetViewportWithCount-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWithCountcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWithCount-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWithCountcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWithCount-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWithCountcorecommandBuffer must be in the recording state
VUID-vkCmdSetViewportWithCount-pViewports-parameterYNoneimplicitvkCmdSetViewportWithCountcorepViewports must be a valid pointer to an array of viewportCount valid VkViewport structures
VUID-vkCmdSetViewportWithCount-videocodingYNoneimplicitvkCmdSetViewportWithCountcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWithCount-viewportCount-03394YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetViewportWithCountcoreviewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportWithCount-viewportCount-03395YNegativeDynamicState.ExtendedDynamicStateEnabledNoMultiviewexplicitvkCmdSetViewportWithCountcoreIf the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewportWithCount-viewportCount-arraylengthYNegativeDynamicState.ExtendedDynamicStateSetViewportScissorimplicitvkCmdSetViewportWithCountcoreviewportCount must be greater than 0
VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdSubpassShadingHUAWEI-None-02691NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdSubpassShadingHUAWEI-None-02692NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdSubpassShadingHUAWEI-None-02693NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdSubpassShadingHUAWEI-None-04931NNoneexplicitvkCmdSubpassShadingHUAWEIcoreThis command must be called in a subpass with bind point VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI. No draw commands can be called in the same subpass. Only one vkCmdSubpassShadingHUAWEI command can be called in a subpass
VUID-vkCmdSubpassShadingHUAWEI-None-06479NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdSubpassShadingHUAWEI-None-06550NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdSubpassShadingHUAWEI-None-07288NNoneexplicitvkCmdSubpassShadingHUAWEIcoreAny shader invocation executed by this command must terminate
VUID-vkCmdSubpassShadingHUAWEI-None-07888NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdSubpassShadingHUAWEI-None-08114NNoneexplicitvkCmdSubpassShadingHUAWEIcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdSubpassShadingHUAWEI-None-08115NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdSubpassShadingHUAWEI-None-08116NNoneexplicitvkCmdSubpassShadingHUAWEIcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdSubpassShadingHUAWEI-None-08117NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdSubpassShadingHUAWEI-None-08119NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdSubpassShadingHUAWEI-None-08600NNoneexplicitvkCmdSubpassShadingHUAWEIcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdSubpassShadingHUAWEI-None-08601NNoneexplicitvkCmdSubpassShadingHUAWEIcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdSubpassShadingHUAWEI-None-08604NNoneexplicitvkCmdSubpassShadingHUAWEIcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdSubpassShadingHUAWEI-None-08605NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdSubpassShadingHUAWEI-None-08606NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdSubpassShadingHUAWEI-None-08607NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdSubpassShadingHUAWEI-None-08608NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdSubpassShadingHUAWEI-None-08609NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdSubpassShadingHUAWEI-None-08610NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdSubpassShadingHUAWEI-None-08611NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdSubpassShadingHUAWEI-None-08612NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdSubpassShadingHUAWEI-None-08613NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdSubpassShadingHUAWEI-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-04469NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkBufferView 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-vkCmdSubpassShadingHUAWEI-OpImageWrite-08795NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08796NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07027NNoneexplicitvkCmdSubpassShadingHUAWEIcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07028NNoneexplicitvkCmdSubpassShadingHUAWEIcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07029NNoneexplicitvkCmdSubpassShadingHUAWEIcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-07030NNoneexplicitvkCmdSubpassShadingHUAWEIcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdSubpassShadingHUAWEI-SampledType-04470NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView with a VkFormat 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-vkCmdSubpassShadingHUAWEI-SampledType-04471NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView with a VkFormat 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-vkCmdSubpassShadingHUAWEI-SampledType-04472NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkBufferView with a VkFormat 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-vkCmdSubpassShadingHUAWEI-SampledType-04473NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkBufferView with a VkFormat 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-vkCmdSubpassShadingHUAWEI-commandBuffer-02707NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-cmdpoolYNoneimplicitvkCmdSubpassShadingHUAWEIcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdSubpassShadingHUAWEIcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdSubpassShadingHUAWEIcorecommandBuffer must be in the recording state
VUID-vkCmdSubpassShadingHUAWEI-cubicRangeClamp-09212NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694NNoneexplicitvkCmdSubpassShadingHUAWEIcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdSubpassShadingHUAWEI-filterCubicMinmax-02695NNoneexplicitvkCmdSubpassShadingHUAWEIcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdSubpassShadingHUAWEI-flags-02696NNoneexplicitvkCmdSubpassShadingHUAWEIcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdSubpassShadingHUAWEI-format-07753NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdSubpassShadingHUAWEI-magFilter-04553NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-04770NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdSubpassShadingHUAWEI-reductionMode-09213NNoneexplicitvkCmdSubpassShadingHUAWEIcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdSubpassShadingHUAWEI-renderpassYNoneimplicitvkCmdSubpassShadingHUAWEIcoreThis command must only be called inside of a render pass instance
VUID-vkCmdSubpassShadingHUAWEI-selectableCubicWeights-09214NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04474NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04475NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-vkCmdSubpassShadingHUAWEI-storageBuffers-06936NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-vkCmdSubpassShadingHUAWEI-videocodingYNoneimplicitvkCmdSubpassShadingHUAWEIcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSubpassShadingHUAWEI-viewType-07752NNoneexplicitvkCmdSubpassShadingHUAWEIcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdTraceRaysIndirect2KHR-None-02691YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdTraceRaysIndirect2KHR-None-02692YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdTraceRaysIndirect2KHR-None-02693YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdTraceRaysIndirect2KHR-None-03429NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreAny shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysIndirect2KHR-None-06479YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdTraceRaysIndirect2KHR-None-06550YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdTraceRaysIndirect2KHR-None-07288NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreAny shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysIndirect2KHR-None-07888YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdTraceRaysIndirect2KHR-None-08114YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysIndirect2KHR-None-08115YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysIndirect2KHR-None-08116NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysIndirect2KHR-None-08117YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysIndirect2KHR-None-08119NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdTraceRaysIndirect2KHR-None-08600YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirect2KHR-None-08601NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirect2KHR-None-08604NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirect2KHR-None-08605NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdTraceRaysIndirect2KHR-None-08606YNegativeRayTracing.CmdTraceRaysIndirect2KHRAddress, NegativeRayTracing.CmdTraceRaysIndirect2KHRFeatureDisabledexplicitvkCmdTraceRaysIndirect2KHRcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirect2KHR-None-08607YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirect2KHR-None-08608YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysIndirect2KHR-None-08609YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdTraceRaysIndirect2KHR-None-08610YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdTraceRaysIndirect2KHR-None-08611YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdTraceRaysIndirect2KHR-None-08612YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdTraceRaysIndirect2KHR-None-08613YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdTraceRaysIndirect2KHR-None-09458YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the bound ray tracing pipeline state was created with the VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR dynamic state enabled then vkCmdSetRayTracingPipelineStackSizeKHR must have been called in the current command buffer prior to this trace command
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-04469YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkBufferView 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-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08795YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08796YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07027YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07028YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07029YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07030YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysIndirect2KHR-SampledType-04470YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView with a VkFormat 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-vkCmdTraceRaysIndirect2KHR-SampledType-04471YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView with a VkFormat 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-vkCmdTraceRaysIndirect2KHR-SampledType-04472YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkBufferView with a VkFormat 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-vkCmdTraceRaysIndirect2KHR-SampledType-04473YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkBufferView with a VkFormat 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-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635YNoneexplicitvkCmdTraceRaysIndirect2KHRcorecommandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysIndirect2KHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysIndirect2KHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysIndirect2KHRcorecommandBuffer must be in the recording state
VUID-vkCmdTraceRaysIndirect2KHR-cubicRangeClamp-09212NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdTraceRaysIndirect2KHR-flags-02696YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdTraceRaysIndirect2KHR-format-07753YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreThe buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634YNegativeRayTracing.CmdTraceRaysIndirect2KHRAddressexplicitvkCmdTraceRaysIndirect2KHRcoreindirectDeviceAddress must be a multiple of 4
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreAll device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(VkTraceRaysIndirectCommand2KHR) - 1 must be in the buffer device address range of the same buffer
VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreThis command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline
VUID-vkCmdTraceRaysIndirect2KHR-mipmapMode-04770YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysIndirect2KHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the bound ray tracing pipeline was created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabled
VUID-vkCmdTraceRaysIndirect2KHR-rayTracingPipelineTraceRaysIndirect2-03637YNegativeRayTracing.CmdTraceRaysIndirect2KHRFeatureDisabledexplicitvkCmdTraceRaysIndirect2KHRcoreThe rayTracingPipelineTraceRaysIndirect2 feature must be enabled
VUID-vkCmdTraceRaysIndirect2KHR-reductionMode-09213NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdTraceRaysIndirect2KHR-renderpassYNoneimplicitvkCmdTraceRaysIndirect2KHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysIndirect2KHR-selectableCubicWeights-09214NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04474YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04475NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-vkCmdTraceRaysIndirect2KHR-storageBuffers-06936NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935NNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-vkCmdTraceRaysIndirect2KHR-videocodingYNoneimplicitvkCmdTraceRaysIndirect2KHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752YNoneexplicitvkCmdTraceRaysIndirect2KHRcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdTraceRaysIndirectKHR-None-02691YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdTraceRaysIndirectKHR-None-02692YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdTraceRaysIndirectKHR-None-02693YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdTraceRaysIndirectKHR-None-03429NNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysIndirectKHR-None-06479YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdTraceRaysIndirectKHR-None-06550YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdTraceRaysIndirectKHR-None-07288NNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysIndirectKHR-None-07888YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdTraceRaysIndirectKHR-None-08114YNoneexplicitvkCmdTraceRaysIndirectKHRcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysIndirectKHR-None-08115YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysIndirectKHR-None-08116NNoneexplicitvkCmdTraceRaysIndirectKHRcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysIndirectKHR-None-08117YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysIndirectKHR-None-08119NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdTraceRaysIndirectKHR-None-08600YNoneexplicitvkCmdTraceRaysIndirectKHRcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirectKHR-None-08601NNoneexplicitvkCmdTraceRaysIndirectKHRcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirectKHR-None-08604NNoneexplicitvkCmdTraceRaysIndirectKHRcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirectKHR-None-08605NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdTraceRaysIndirectKHR-None-08606YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirectKHR-None-08607YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirectKHR-None-08608YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysIndirectKHR-None-08609YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdTraceRaysIndirectKHR-None-08610YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdTraceRaysIndirectKHR-None-08611YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdTraceRaysIndirectKHR-None-08612YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdTraceRaysIndirectKHR-None-08613YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdTraceRaysIndirectKHR-None-09458YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the bound ray tracing pipeline state was created with the VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR dynamic state enabled then vkCmdSetRayTracingPipelineStackSizeKHR must have been called in the current command buffer prior to this trace command
VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysIndirectKHR-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-04469YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkBufferView 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-vkCmdTraceRaysIndirectKHR-OpImageWrite-08795YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08796YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07027YNoneexplicitvkCmdTraceRaysIndirectKHRcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07028YNoneexplicitvkCmdTraceRaysIndirectKHRcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07029YNoneexplicitvkCmdTraceRaysIndirectKHRcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07030YNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysIndirectKHR-SampledType-04470YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView with a VkFormat 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-vkCmdTraceRaysIndirectKHR-SampledType-04471YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView with a VkFormat 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-vkCmdTraceRaysIndirectKHR-SampledType-04472YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkBufferView with a VkFormat 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-vkCmdTraceRaysIndirectKHR-SampledType-04473YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkBufferView with a VkFormat 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-vkCmdTraceRaysIndirectKHR-commandBuffer-02707YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635YNoneexplicitvkCmdTraceRaysIndirectKHRcorecommandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysIndirectKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysIndirectKHRcorecommandBuffer must be in the recording state
VUID-vkCmdTraceRaysIndirectKHR-cubicRangeClamp-09212NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694YNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695YNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdTraceRaysIndirectKHR-flags-02696YNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdTraceRaysIndirectKHR-flags-03511NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pMissShaderBindingTable->deviceAddress must not be set to zero
VUID-vkCmdTraceRaysIndirectKHR-flags-03512YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero
VUID-vkCmdTraceRaysIndirectKHR-flags-03513YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero
VUID-vkCmdTraceRaysIndirectKHR-flags-03514YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero
VUID-vkCmdTraceRaysIndirectKHR-flags-03696YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pHitShaderBindingTable->deviceAddress must not be zero
VUID-vkCmdTraceRaysIndirectKHR-flags-03697YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pHitShaderBindingTable->deviceAddress must not be zero
VUID-vkCmdTraceRaysIndirectKHR-format-07753YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633YNoneexplicitvkCmdTraceRaysIndirectKHRcoreThe buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634YNoneexplicitvkCmdTraceRaysIndirectKHRcoreindirectDeviceAddress must be a multiple of 4
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636NNoneexplicitvkCmdTraceRaysIndirectKHRcoreAll device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(VkTraceRaysIndirectCommandKHR) - 1 must be in the buffer device address range of the same buffer
VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679NNoneexplicitvkCmdTraceRaysIndirectKHRcoreThis command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline
VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the buffer from which pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692YNoneexplicitvkCmdTraceRaysIndirectKHRcoreThe buffer from which the pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03693YNoneexplicitvkCmdTraceRaysIndirectKHRcorepCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRcorepCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the buffer from which pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688YNoneexplicitvkCmdTraceRaysIndirectKHRcoreThe buffer from which the pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03689YNoneexplicitvkCmdTraceRaysIndirectKHRcorepHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735NNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04736NNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRcorepHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the buffer from which pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03684YNoneexplicitvkCmdTraceRaysIndirectKHRcoreThe buffer from which the pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03685YNoneexplicitvkCmdTraceRaysIndirectKHRcorepMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRcorepMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the buffer from which pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681YNoneexplicitvkCmdTraceRaysIndirectKHRcoreThe buffer from which the pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03682YNoneexplicitvkCmdTraceRaysIndirectKHRcorepRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRcorepRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the bound ray tracing pipeline was created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlurPipelineTraceRaysIndirect feature must be enabled
VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637YNoneexplicitvkCmdTraceRaysIndirectKHRcoreThe rayTracingPipelineTraceRaysIndirect feature must be enabled
VUID-vkCmdTraceRaysIndirectKHR-reductionMode-09213NNoneexplicitvkCmdTraceRaysIndirectKHRcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdTraceRaysIndirectKHR-renderpassYNoneimplicitvkCmdTraceRaysIndirectKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysIndirectKHR-selectableCubicWeights-09214NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdTraceRaysIndirectKHR-size-04023YNoneexplicitvkCmdTraceRaysIndirectKHRcoreThe size member of pRayGenShaderBindingTable must be equal to its stride member
VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04474YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04475NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-vkCmdTraceRaysIndirectKHR-storageBuffers-06936NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-vkCmdTraceRaysIndirectKHR-stride-03686YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRcorepMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-03690YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRcorepHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-03694YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRcorepCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-04029YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRcorepMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-stride-04035YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRcorepHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-stride-04041YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRcorepCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935NNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-vkCmdTraceRaysIndirectKHR-videocodingYNoneimplicitvkCmdTraceRaysIndirectKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysIndirectKHR-viewType-07752YNoneexplicitvkCmdTraceRaysIndirectKHRcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysKHR-ConstOffset-06551YNoneexplicitvkCmdTraceRaysKHRcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdTraceRaysKHR-None-02691YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdTraceRaysKHR-None-02692YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdTraceRaysKHR-None-02693YNoneexplicitvkCmdTraceRaysKHRcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdTraceRaysKHR-None-03429NNoneexplicitvkCmdTraceRaysKHRcoreAny shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysKHR-None-06479YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdTraceRaysKHR-None-06550YNoneexplicitvkCmdTraceRaysKHRcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdTraceRaysKHR-None-07288NNoneexplicitvkCmdTraceRaysKHRcoreAny shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysKHR-None-07888YNoneexplicitvkCmdTraceRaysKHRcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdTraceRaysKHR-None-08114YNoneexplicitvkCmdTraceRaysKHRcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysKHR-None-08115YNoneexplicitvkCmdTraceRaysKHRcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysKHR-None-08116NNoneexplicitvkCmdTraceRaysKHRcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysKHR-None-08117YNoneexplicitvkCmdTraceRaysKHRcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysKHR-None-08119NNoneexplicitvkCmdTraceRaysKHRcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdTraceRaysKHR-None-08600YNoneexplicitvkCmdTraceRaysKHRcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysKHR-None-08601NNoneexplicitvkCmdTraceRaysKHRcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysKHR-None-08604NNoneexplicitvkCmdTraceRaysKHRcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdTraceRaysKHR-None-08605NNoneexplicitvkCmdTraceRaysKHRcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdTraceRaysKHR-None-08606YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysKHR-None-08607YNoneexplicitvkCmdTraceRaysKHRcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdTraceRaysKHR-None-08608YNoneexplicitvkCmdTraceRaysKHRcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysKHR-None-08609YNoneexplicitvkCmdTraceRaysKHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdTraceRaysKHR-None-08610YNoneexplicitvkCmdTraceRaysKHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdTraceRaysKHR-None-08611YNoneexplicitvkCmdTraceRaysKHRcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdTraceRaysKHR-None-08612YNoneexplicitvkCmdTraceRaysKHRcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdTraceRaysKHR-None-08613YNoneexplicitvkCmdTraceRaysKHRcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdTraceRaysKHR-None-09458YNegativeRayTracing.DynamicRayTracingPipelineStackexplicitvkCmdTraceRaysKHRcoreIf the bound ray tracing pipeline state was created with the VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR dynamic state enabled then vkCmdSetRayTracingPipelineStackSizeKHR must have been called in the current command buffer prior to this trace command
VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysKHRcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdTraceRaysKHRcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdTraceRaysKHRcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdTraceRaysKHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdTraceRaysKHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdTraceRaysKHRcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysKHR-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdTraceRaysKHRcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdTraceRaysKHRcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdTraceRaysKHRcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdTraceRaysKHRcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdTraceRaysKHRcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdTraceRaysKHR-OpImageWrite-04469YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkBufferView 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-vkCmdTraceRaysKHR-OpImageWrite-08795YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdTraceRaysKHR-OpImageWrite-08796YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdTraceRaysKHR-OpTypeImage-07027YNoneexplicitvkCmdTraceRaysKHRcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysKHR-OpTypeImage-07028YNoneexplicitvkCmdTraceRaysKHRcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysKHR-OpTypeImage-07029YNoneexplicitvkCmdTraceRaysKHRcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysKHR-OpTypeImage-07030YNoneexplicitvkCmdTraceRaysKHRcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysKHR-SampledType-04470YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView with a VkFormat 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-vkCmdTraceRaysKHR-SampledType-04471YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView with a VkFormat 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-vkCmdTraceRaysKHR-SampledType-04472YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkBufferView with a VkFormat 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-vkCmdTraceRaysKHR-SampledType-04473YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkBufferView with a VkFormat 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-vkCmdTraceRaysKHR-commandBuffer-02707YNoneexplicitvkCmdTraceRaysKHRcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdTraceRaysKHR-commandBuffer-03635YNoneexplicitvkCmdTraceRaysKHRcorecommandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysKHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysKHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysKHRcorecommandBuffer must be in the recording state
VUID-vkCmdTraceRaysKHR-cubicRangeClamp-09212NNoneexplicitvkCmdTraceRaysKHRcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdTraceRaysKHR-depth-03640YNoneexplicitvkCmdTraceRaysKHRcoredepth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-vkCmdTraceRaysKHR-filterCubic-02694YNoneexplicitvkCmdTraceRaysKHRcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695YNoneexplicitvkCmdTraceRaysKHRcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdTraceRaysKHR-flags-02696YNoneexplicitvkCmdTraceRaysKHRcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdTraceRaysKHR-flags-03511NNoneexplicitvkCmdTraceRaysKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pMissShaderBindingTable->deviceAddress must not be set to zero
VUID-vkCmdTraceRaysKHR-flags-03512YNoneexplicitvkCmdTraceRaysKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero
VUID-vkCmdTraceRaysKHR-flags-03513YNoneexplicitvkCmdTraceRaysKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero
VUID-vkCmdTraceRaysKHR-flags-03514YNoneexplicitvkCmdTraceRaysKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by pHitShaderBindingTable->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero
VUID-vkCmdTraceRaysKHR-flags-03696YNoneexplicitvkCmdTraceRaysKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pHitShaderBindingTable->deviceAddress must not be zero
VUID-vkCmdTraceRaysKHR-flags-03697YNoneexplicitvkCmdTraceRaysKHRcoreIf the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pHitShaderBindingTable->deviceAddress must not be zero
VUID-vkCmdTraceRaysKHR-format-07753YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdTraceRaysKHR-height-03639YNoneexplicitvkCmdTraceRaysKHRcoreheight must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-vkCmdTraceRaysKHR-magFilter-04553YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysKHR-maintenance4-08602YNoneexplicitvkCmdTraceRaysKHRcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679NNoneexplicitvkCmdTraceRaysKHRcoreThis command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline
VUID-vkCmdTraceRaysKHR-mipmapMode-04770YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691YNoneexplicitvkCmdTraceRaysKHRcoreIf the buffer from which pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692YNoneexplicitvkCmdTraceRaysKHRcoreThe buffer from which the pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03693YNoneexplicitvkCmdTraceRaysKHRcorepCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHRcorepCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687YNoneexplicitvkCmdTraceRaysKHRcoreIf the buffer from which pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688YNoneexplicitvkCmdTraceRaysKHRcoreThe buffer from which the pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03689YNoneexplicitvkCmdTraceRaysKHRcorepHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735NNoneexplicitvkCmdTraceRaysKHRcoreAny non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04736NNoneexplicitvkCmdTraceRaysKHRcoreAny non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHRcorepHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683YNoneexplicitvkCmdTraceRaysKHRcoreIf the buffer from which pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684YNoneexplicitvkCmdTraceRaysKHRcoreThe buffer from which the pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03685YNoneexplicitvkCmdTraceRaysKHRcorepMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHRcorepMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680YNoneexplicitvkCmdTraceRaysKHRcoreIf the buffer from which pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681YNoneexplicitvkCmdTraceRaysKHRcoreThe buffer from which the pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03682YNoneexplicitvkCmdTraceRaysKHRcorepRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHRcorepRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-reductionMode-09213NNoneexplicitvkCmdTraceRaysKHRcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdTraceRaysKHR-renderpassYNoneimplicitvkCmdTraceRaysKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysKHR-selectableCubicWeights-09214NNoneexplicitvkCmdTraceRaysKHRcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdTraceRaysKHR-size-04023YNoneexplicitvkCmdTraceRaysKHRcoreThe size member of pRayGenShaderBindingTable must be equal to its stride member
VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04474YNoneexplicitvkCmdTraceRaysKHRcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04475NNoneexplicitvkCmdTraceRaysKHRcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-vkCmdTraceRaysKHR-storageBuffers-06936NNoneexplicitvkCmdTraceRaysKHRcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-vkCmdTraceRaysKHR-stride-03686YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRcorepMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-03690YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRcorepHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-03694YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRcorepCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-04029YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRcorepMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-stride-04035YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRcorepHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-stride-04041YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRcorepCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-uniformBuffers-06935NNoneexplicitvkCmdTraceRaysKHRcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-vkCmdTraceRaysKHR-videocodingYNoneimplicitvkCmdTraceRaysKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysKHR-viewType-07752YNoneexplicitvkCmdTraceRaysKHRcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysKHR-width-03638YNoneexplicitvkCmdTraceRaysKHRcorewidth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-vkCmdTraceRaysKHR-width-03641YNoneexplicitvkCmdTraceRaysKHRcorewidth × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-vkCmdTraceRaysNV-ConstOffset-06551YNoneexplicitvkCmdTraceRaysNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdTraceRaysNV-None-02691YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdTraceRaysNV-None-02692YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdTraceRaysNV-None-02693YNoneexplicitvkCmdTraceRaysNVcoreIf the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdTraceRaysNV-None-03429NNoneexplicitvkCmdTraceRaysNVcoreAny shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysNV-None-06479YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdTraceRaysNV-None-06550YNoneexplicitvkCmdTraceRaysNVcoreIf a bound shader accesses a VkSampler or VkImageView object that enables sampler Y'CBCR conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdTraceRaysNV-None-07288NNoneexplicitvkCmdTraceRaysNVcoreAny shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysNV-None-07888YNoneexplicitvkCmdTraceRaysNVcoreIf a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer's format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdTraceRaysNV-None-08114YNoneexplicitvkCmdTraceRaysNVcoreDescriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysNV-None-08115YNoneexplicitvkCmdTraceRaysNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysNV-None-08116NNoneexplicitvkCmdTraceRaysNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysNV-None-08117YNoneexplicitvkCmdTraceRaysNVcoreIf the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdTraceRaysNV-None-08119NNoneexplicitvkCmdTraceRaysNVcoreIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdTraceRaysNV-None-08600YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcoreFor each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysNV-None-08601NNoneexplicitvkCmdTraceRaysNVcoreFor each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysNV-None-08604NNoneexplicitvkCmdTraceRaysNVcoreDescriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdTraceRaysNV-None-08605NNoneexplicitvkCmdTraceRaysNVcoreIf a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdTraceRaysNV-None-08606YNoneexplicitvkCmdTraceRaysNVcoreIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysNV-None-08607YNoneexplicitvkCmdTraceRaysNVcoreIf the 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 VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
VUID-vkCmdTraceRaysNV-None-08608YNoneexplicitvkCmdTraceRaysNVcoreIf 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 VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysNV-None-08609YNoneexplicitvkCmdTraceRaysNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
VUID-vkCmdTraceRaysNV-None-08610YNoneexplicitvkCmdTraceRaysNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdTraceRaysNV-None-08611YNoneexplicitvkCmdTraceRaysNVcoreIf the VkPipeline object bound to the pipeline bind point used by this command or any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a VkSampler 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-vkCmdTraceRaysNV-None-08612YNoneexplicitvkCmdTraceRaysNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdTraceRaysNV-None-08613YNoneexplicitvkCmdTraceRaysNVcoreIf the robustBufferAccess feature is not enabled, and any VkShaderEXT 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-vkCmdTraceRaysNV-None-09458YNoneexplicitvkCmdTraceRaysNVcoreIf the bound ray tracing pipeline state was created with the VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR dynamic state enabled then vkCmdSetRayTracingPipelineStackSizeKHR must have been called in the current command buffer prior to this trace command
VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysNVcoreIf OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdTraceRaysNVcoreIf OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdTraceRaysNVcoreIf OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdTraceRaysNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdTraceRaysNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view's format must be a single-component format.
VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdTraceRaysNVcoreIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysNV-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdTraceRaysNVcoreIf OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdTraceRaysNVcoreIf OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdTraceRaysNVcoreIf OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdTraceRaysNVcoreIf OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdTraceRaysNVcoreIf any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdTraceRaysNV-OpImageWrite-04469YNoneexplicitvkCmdTraceRaysNVcoreIf a VkBufferView 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-vkCmdTraceRaysNV-OpImageWrite-08795YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView created with a format other than VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format
VUID-vkCmdTraceRaysNV-OpImageWrite-08796YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView created with the format VK_FORMAT_A8_UNORM_KHR is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components
VUID-vkCmdTraceRaysNV-OpTypeImage-07027YNoneexplicitvkCmdTraceRaysNVcoreFor any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysNV-OpTypeImage-07028YNoneexplicitvkCmdTraceRaysNVcoreFor any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysNV-OpTypeImage-07029YNoneexplicitvkCmdTraceRaysNVcoreFor any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysNV-OpTypeImage-07030YNoneexplicitvkCmdTraceRaysNVcoreAny VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdTraceRaysNV-SampledType-04470YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView with a VkFormat 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-vkCmdTraceRaysNV-SampledType-04471YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView with a VkFormat 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-vkCmdTraceRaysNV-SampledType-04472YNoneexplicitvkCmdTraceRaysNVcoreIf a VkBufferView with a VkFormat 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-vkCmdTraceRaysNV-SampledType-04473YNoneexplicitvkCmdTraceRaysNVcoreIf a VkBufferView with a VkFormat 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-vkCmdTraceRaysNV-callableShaderBindingOffset-02461YNoneexplicitvkCmdTraceRaysNVcorecallableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcorecallableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcorecallableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcorecallableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045NNoneexplicitvkCmdTraceRaysNVcoreIf callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNVcoreIf callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-commandBuffer-02707YNoneexplicitvkCmdTraceRaysNVcoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdTraceRaysNV-commandBuffer-04624YNoneexplicitvkCmdTraceRaysNVcorecommandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysNV-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysNVcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysNV-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysNV-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysNVcorecommandBuffer must be in the recording state
VUID-vkCmdTraceRaysNV-commonparentYNoneimplicitvkCmdTraceRaysNVcoreEach of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdTraceRaysNV-cubicRangeClamp-09212NNoneexplicitvkCmdTraceRaysNVcoreIf the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdTraceRaysNV-depth-02471YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcoredepth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdTraceRaysNV-filterCubic-02694YNoneexplicitvkCmdTraceRaysNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695YNoneexplicitvkCmdTraceRaysNVcoreAny VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdTraceRaysNV-flags-02696YNoneexplicitvkCmdTraceRaysNVcoreAny VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdTraceRaysNV-format-07753YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView is accessed as a result of this command, then the numeric type of the image view's format and the Sampled Type operand of the OpTypeImage must match
VUID-vkCmdTraceRaysNV-height-02470YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcoreheight must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459YNoneexplicitvkCmdTraceRaysNVcorehitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcorehitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcorehitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcorehitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044NNoneexplicitvkCmdTraceRaysNVcoreIf hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNVcoreIf hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-magFilter-04553YNoneexplicitvkCmdTraceRaysNVcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysNV-maintenance4-08602YNoneexplicitvkCmdTraceRaysNVcoreIf the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625NNoneexplicitvkCmdTraceRaysNVcoreThis command must not cause a pipeline trace ray instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline
VUID-vkCmdTraceRaysNV-mipmapMode-04770YNoneexplicitvkCmdTraceRaysNVcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457YNoneexplicitvkCmdTraceRaysNVcoremissShaderBindingOffset must be less than the size of missShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcoremissShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcoremissShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcoremissShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043NNoneexplicitvkCmdTraceRaysNVcoreIf missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNVcoreIf missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455YNoneexplicitvkCmdTraceRaysNVcoreraygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcoreraygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042NNoneexplicitvkCmdTraceRaysNVcoreIf raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNVcoreraygenShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-reductionMode-09213NNoneexplicitvkCmdTraceRaysNVcoreAny VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdTraceRaysNV-renderpassYNoneimplicitvkCmdTraceRaysNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214NNoneexplicitvkCmdTraceRaysNVcoreIf the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474YNoneexplicitvkCmdTraceRaysNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_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-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475NNoneexplicitvkCmdTraceRaysNVcoreIf the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_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-vkCmdTraceRaysNV-storageBuffers-06936NNoneexplicitvkCmdTraceRaysNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the 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-vkCmdTraceRaysNV-uniformBuffers-06935NNoneexplicitvkCmdTraceRaysNVcoreIf any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the 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-vkCmdTraceRaysNV-videocodingYNoneimplicitvkCmdTraceRaysNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysNV-viewType-07752YNoneexplicitvkCmdTraceRaysNVcoreIf a VkImageView 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 Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysNV-width-02469YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcorewidth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdUpdateBuffer-commandBuffer-01813YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdUpdateBuffercoreIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdUpdateBuffer-commandBuffer-01814YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdUpdateBuffercoreIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdUpdateBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdUpdateBuffercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdUpdateBuffer-commandBuffer-parameterYNoneimplicitvkCmdUpdateBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdUpdateBuffer-commandBuffer-recordingYNoneimplicitvkCmdUpdateBuffercorecommandBuffer must be in the recording state
VUID-vkCmdUpdateBuffer-commonparentYNoneimplicitvkCmdUpdateBuffercoreBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdUpdateBuffer-dataSize-00033YNegativeCommand.CmdUpdateBufferSizeexplicitvkCmdUpdateBuffercoredataSize must be less than or equal to the size of dstBuffer minus dstOffset
VUID-vkCmdUpdateBuffer-dataSize-00037YNoneexplicitvkCmdUpdateBuffercoredataSize must be less than or equal to 65536
VUID-vkCmdUpdateBuffer-dataSize-00038YNoneexplicitvkCmdUpdateBuffercoredataSize must be a multiple of 4
VUID-vkCmdUpdateBuffer-dataSize-arraylengthYNoneimplicitvkCmdUpdateBuffercoredataSize must be greater than 0
VUID-vkCmdUpdateBuffer-dstBuffer-00034YNoneexplicitvkCmdUpdateBuffercoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdUpdateBuffer-dstBuffer-00035YNoneexplicitvkCmdUpdateBuffercoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdUpdateBuffer-dstBuffer-parameterYNoneimplicitvkCmdUpdateBuffercoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdUpdateBuffer-dstOffset-00032YNegativeCommand.CmdUpdateBufferDstOffsetexplicitvkCmdUpdateBuffercoredstOffset must be less than the size of dstBuffer
VUID-vkCmdUpdateBuffer-dstOffset-00036YNoneexplicitvkCmdUpdateBuffercoredstOffset must be a multiple of 4
VUID-vkCmdUpdateBuffer-pData-parameterYNoneimplicitvkCmdUpdateBuffercorepData must be a valid pointer to an array of dataSize bytes
VUID-vkCmdUpdateBuffer-renderpassYNegativeBuffer.UpdateBufferWithinRenderPassimplicitvkCmdUpdateBuffercoreThis command must only be called outside of a render pass instance
VUID-vkCmdUpdateBuffer-videocodingYNoneimplicitvkCmdUpdateBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpoolYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameterYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-recordingYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcorecommandBuffer must be in the recording state
VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparentYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcoreBoth of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdUpdatePipelineIndirectBufferNV-deviceGeneratedComputePipelines-09021NNoneexplicitvkCmdUpdatePipelineIndirectBufferNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019NNoneexplicitvkCmdUpdatePipelineIndirectBufferNVcorepipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV flag set
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020NNoneexplicitvkCmdUpdatePipelineIndirectBufferNVcorepipeline must have been created with VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameterYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcorepipeline must be a valid VkPipeline handle
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018NNoneexplicitvkCmdUpdatePipelineIndirectBufferNVcorepipelineBindPoint must be VK_PIPELINE_BIND_POINT_COMPUTE
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameterYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpassYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdUpdatePipelineIndirectBufferNV-videocodingYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdWaitEvents-commandBuffer-01167NNoneexplicitvkCmdWaitEventscorecommandBuffer's current device mask must include exactly one physical device
VUID-vkCmdWaitEvents-commandBuffer-cmdpoolYNoneimplicitvkCmdWaitEventscoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdWaitEvents-commandBuffer-parameterYNoneimplicitvkCmdWaitEventscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWaitEvents-commandBuffer-recordingYNoneimplicitvkCmdWaitEventscorecommandBuffer must be in the recording state
VUID-vkCmdWaitEvents-commonparentYNoneimplicitvkCmdWaitEventscoreBoth of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWaitEvents-dstAccessMask-02816YNoneexplicitvkCmdWaitEventscoreThe 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 table of supported access types
VUID-vkCmdWaitEvents-dstAccessMask-06257YNegativeRayTracing.EventSync1AccessAccelerationStructureRayQueryDisabledexplicitvkCmdWaitEventscoreIf the rayQuery feature is not enabled and a memory barrier dstAccessMask includes VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdWaitEvents-dstStageMask-03937YNoneexplicitvkCmdWaitEventscoreIf the synchronization2 feature is not enabled, dstStageMask must not be 0
VUID-vkCmdWaitEvents-dstStageMask-04090YNoneexplicitvkCmdWaitEventscoreIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWaitEvents-dstStageMask-04091YNoneexplicitvkCmdWaitEventscoreIf the tessellationShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWaitEvents-dstStageMask-04092YNoneexplicitvkCmdWaitEventscoreIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04093YNoneexplicitvkCmdWaitEventscoreIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04094YNoneexplicitvkCmdWaitEventscoreIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdWaitEventscoreIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdWaitEventscoreIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-06460YNoneexplicitvkCmdWaitEventscoreAny pipeline stage included in dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdWaitEvents-dstStageMask-07318YNoneexplicitvkCmdWaitEventscoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWaitEvents-dstStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdWaitEventscoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdWaitEvents-dstStageMask-parameterYNoneimplicitvkCmdWaitEventscoredstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdWaitEvents-eventCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkCmdWaitEventscoreeventCount must be greater than 0
VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817NNoneexplicitvkCmdWaitEventscoreFor 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 table of supported access types
VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818NNoneexplicitvkCmdWaitEventscoreFor 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 table of supported access types
VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameterYNoneimplicitvkCmdWaitEventscoreIf bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures
VUID-vkCmdWaitEvents-pEvents-03847NNoneexplicitvkCmdWaitEventscoreElements of pEvents must not have been signaled by vkCmdSetEvent2
VUID-vkCmdWaitEvents-pEvents-parameterYNegativeSyncObject.WaitOnNoEventimplicitvkCmdWaitEventscorepEvents must be a valid pointer to an array of eventCount valid VkEvent handles
VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819NNoneexplicitvkCmdWaitEventscoreFor 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 table of supported access types
VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820NNoneexplicitvkCmdWaitEventscoreFor 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 table of supported access types
VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameterYNoneimplicitvkCmdWaitEventscoreIf imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures
VUID-vkCmdWaitEvents-pMemoryBarriers-parameterYNoneimplicitvkCmdWaitEventscoreIf memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures
VUID-vkCmdWaitEvents-srcAccessMask-02815YNoneexplicitvkCmdWaitEventscoreThe 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 table of supported access types
VUID-vkCmdWaitEvents-srcAccessMask-06257YNegativeRayTracing.EventSync1AccessAccelerationStructureRayQueryDisabledexplicitvkCmdWaitEventscoreIf the rayQuery feature is not enabled and a memory barrier srcAccessMask includes VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages except VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803YNegativeSyncObject.WaitEventsDifferentQueueFamiliesexplicitvkCmdWaitEventscoreThe srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pBufferMemoryBarriers or pImageMemoryBarriers must be equal
VUID-vkCmdWaitEvents-srcStageMask-01158YNoneexplicitvkCmdWaitEventscoresrcStageMask must be the bitwise OR of the stageMask parameter used in previous calls to vkCmdSetEvent with any of the elements of pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the elements of pEvents was set using vkSetEvent
VUID-vkCmdWaitEvents-srcStageMask-03937YNoneexplicitvkCmdWaitEventscoreIf the synchronization2 feature is not enabled, srcStageMask must not be 0
VUID-vkCmdWaitEvents-srcStageMask-04090YNoneexplicitvkCmdWaitEventscoreIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWaitEvents-srcStageMask-04091YNoneexplicitvkCmdWaitEventscoreIf the tessellationShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWaitEvents-srcStageMask-04092YNoneexplicitvkCmdWaitEventscoreIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04093YNoneexplicitvkCmdWaitEventscoreIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04094YNoneexplicitvkCmdWaitEventscoreIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdWaitEventscoreIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdWaitEventscoreIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-06459YNegativeSyncObject.BarriersexplicitvkCmdWaitEventscoreAny pipeline stage included in srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdWaitEvents-srcStageMask-07308YNegativeSyncObject.WaitEventRenderPassHostBitexplicitvkCmdWaitEventscoreIf vkCmdWaitEvents is being called inside a render pass instance, srcStageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdWaitEvents-srcStageMask-07318YNoneexplicitvkCmdWaitEventscoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWaitEvents-srcStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdWaitEventscoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdWaitEvents-srcStageMask-parameterYNegativeSyncObject.EventStageMaskOneCommandBufferFail, NegativeSyncObject.EventStageMaskTwoCommandBufferFailimplicitvkCmdWaitEventscoresrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdWaitEvents2-commandBuffer-03846NNoneexplicitvkCmdWaitEvents2corecommandBuffer's current device mask must include exactly one physical device
VUID-vkCmdWaitEvents2-commandBuffer-cmdpoolYNoneimplicitvkCmdWaitEvents2coreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdWaitEvents2-commandBuffer-parameterYNoneimplicitvkCmdWaitEvents2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWaitEvents2-commandBuffer-recordingYNoneimplicitvkCmdWaitEvents2corecommandBuffer must be in the recording state
VUID-vkCmdWaitEvents2-commonparentYNoneimplicitvkCmdWaitEvents2coreBoth of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWaitEvents2-dependencyFlags-03844YNoneexplicitvkCmdWaitEvents2coreIf vkCmdWaitEvents2 is being called inside a render pass instance, the srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must not include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-vkCmdWaitEvents2-dstStageMask-03843YNoneexplicitvkCmdWaitEvents2coreThe dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdWaitEvents2-eventCount-arraylengthYNoneimplicitvkCmdWaitEvents2coreeventCount must be greater than 0
VUID-vkCmdWaitEvents2-pDependencyInfos-parameterYNoneimplicitvkCmdWaitEvents2corepDependencyInfos must be a valid pointer to an array of eventCount valid VkDependencyInfo structures
VUID-vkCmdWaitEvents2-pEvents-03837YNoneexplicitvkCmdWaitEvents2coreMembers of pEvents must not have been signaled by vkCmdSetEvent
VUID-vkCmdWaitEvents2-pEvents-03838YNoneexplicitvkCmdWaitEvents2coreFor any element i of pEvents, if that event is signaled by vkCmdSetEvent2, that command's dependencyInfo parameter must be exactly equal to the ith element of pDependencyInfos
VUID-vkCmdWaitEvents2-pEvents-03839NNoneexplicitvkCmdWaitEvents2coreFor any element i of pEvents, if that event is signaled by vkSetEvent, barriers in the ith element of pDependencyInfos must include only host operations in their first synchronization scope
VUID-vkCmdWaitEvents2-pEvents-03840NNoneexplicitvkCmdWaitEvents2coreFor any element i of pEvents, if barriers in the ith element of pDependencyInfos include only host operations, the ith element of pEvents must be signaled before vkCmdWaitEvents2 is executed
VUID-vkCmdWaitEvents2-pEvents-03841NNoneexplicitvkCmdWaitEvents2coreFor any element i of pEvents, if barriers in the ith element of pDependencyInfos do not include host operations, the ith element of pEvents must be signaled by a corresponding vkCmdSetEvent2 that occurred earlier in submission order
VUID-vkCmdWaitEvents2-pEvents-parameterYNoneimplicitvkCmdWaitEvents2corepEvents must be a valid pointer to an array of eventCount valid VkEvent handles
VUID-vkCmdWaitEvents2-srcStageMask-03842YNoneexplicitvkCmdWaitEvents2coreThe srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must either include only pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdWaitEvents2-synchronization2-03836YNegativeSyncVal.CmdWaitEvents2KHRUsedButSynchronizaion2DisabledexplicitvkCmdWaitEvents2coreThe synchronization2 feature must be enabled
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructure-08924YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylengthYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreaccelerationStructureCount must be greater than 0
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreAll acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-buffer-03736NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreThe buffer used to create each acceleration structure in pAccelerationStructures must be bound to device memory
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recordingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcorecommandBuffer must be in the recording state
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparentYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreEach of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreAll acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcorepAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreThe sum of query plus accelerationStructureCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRcorequeryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02494YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreThe queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-06742YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRcorequeryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcorequeryType must be a valid VkQueryType value
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpassYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreThis command must only be called outside of a render pass instance
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-videocodingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcoreThis command must only be called outside of a video coding scope
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructure-03757NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreaccelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylengthYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreaccelerationStructureCount must be greater than 0
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recordingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcorecommandBuffer must be in the recording state
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparentYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreEach of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-04958NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreAll acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-06215YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreAll acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcorepAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureNV handles
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03755YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVcorequeryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03756NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreThe queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-06216YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVcorequeryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcorequeryType must be a valid VkQueryType value
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-renderpassYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreThis command must only be called outside of a render pass instance
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-videocodingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcoreThis command must only be called outside of a video coding scope
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteBufferMarker2AMDcoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameterYNoneimplicitvkCmdWriteBufferMarker2AMDcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-recordingYNoneimplicitvkCmdWriteBufferMarker2AMDcorecommandBuffer must be in the recording state
VUID-vkCmdWriteBufferMarker2AMD-commonparentYNoneimplicitvkCmdWriteBufferMarker2AMDcoreBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897NNoneexplicitvkCmdWriteBufferMarker2AMDcoredstBuffer must have been created with the VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameterYNoneimplicitvkCmdWriteBufferMarker2AMDcoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896NNoneexplicitvkCmdWriteBufferMarker2AMDcoredstOffset must be less than or equal to the size of dstBuffer minus 4
VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899NNoneexplicitvkCmdWriteBufferMarker2AMDcoredstOffset must be a multiple of 4
VUID-vkCmdWriteBufferMarker2AMD-stage-03894NNoneexplicitvkCmdWriteBufferMarker2AMDcorestage must include only a single pipeline stage
VUID-vkCmdWriteBufferMarker2AMD-stage-03895NNoneexplicitvkCmdWriteBufferMarker2AMDcorestage must include only stages that are valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdWriteBufferMarker2AMD-stage-03929NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the geometryShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteBufferMarker2AMD-stage-03930NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the tessellationShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWriteBufferMarker2AMD-stage-03931NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the conditionalRendering feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03932NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the fragmentDensityMap feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03933NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the transformFeedback feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03934NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the meshShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03935NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the taskShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-04957NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the subpassShading feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-vkCmdWriteBufferMarker2AMD-stage-04995NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf the invocationMask feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdWriteBufferMarker2AMD-stage-07316NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteBufferMarker2AMD-stage-07946NNoneexplicitvkCmdWriteBufferMarker2AMDcoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdWriteBufferMarker2AMD-stage-parameterYNoneimplicitvkCmdWriteBufferMarker2AMDcorestage must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893NNoneexplicitvkCmdWriteBufferMarker2AMDcoreThe synchronization2 feature must be enabled
VUID-vkCmdWriteBufferMarker2AMD-videocodingYNoneimplicitvkCmdWriteBufferMarker2AMDcoreThis command must only be called outside of a video coding scope
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteBufferMarkerAMDcoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameterYNoneimplicitvkCmdWriteBufferMarkerAMDcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recordingYNoneimplicitvkCmdWriteBufferMarkerAMDcorecommandBuffer must be in the recording state
VUID-vkCmdWriteBufferMarkerAMD-commonparentYNoneimplicitvkCmdWriteBufferMarkerAMDcoreBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799NNoneexplicitvkCmdWriteBufferMarkerAMDcoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameterYNoneimplicitvkCmdWriteBufferMarkerAMDcoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798NNoneexplicitvkCmdWriteBufferMarkerAMDcoredstOffset must be less than or equal to the size of dstBuffer minus 4
VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801NNoneexplicitvkCmdWriteBufferMarkerAMDcoredstOffset must be a multiple of 4
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074NNoneexplicitvkCmdWriteBufferMarkerAMDcorepipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf the tessellationShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-07077NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameterYNoneimplicitvkCmdWriteBufferMarkerAMDcoreIf pipelineStage is not 0, pipelineStage must be a valid VkPipelineStageFlagBits value
VUID-vkCmdWriteBufferMarkerAMD-rayTracingPipeline-07943NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pipelineStage must not be VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdWriteBufferMarkerAMD-shadingRateImage-07314NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489NNoneexplicitvkCmdWriteBufferMarkerAMDcoreIf the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE
VUID-vkCmdWriteBufferMarkerAMD-videocodingYNoneimplicitvkCmdWriteBufferMarkerAMDcoreThis command must only be called outside of a video coding scope
VUID-vkCmdWriteMicromapsPropertiesEXT-buffer-07527NNoneexplicitvkCmdWriteMicromapsPropertiesEXTcoreThe buffer used to create each micromap in pMicrmaps must be bound to device memory
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-recordingYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcorecommandBuffer must be in the recording state
VUID-vkCmdWriteMicromapsPropertiesEXT-commonparentYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcoreEach of commandBuffer, queryPool, and the elements of pMicromaps must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteMicromapsPropertiesEXT-micromapCount-arraylengthYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcoremicromapCount must be greater than 0
VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07501NNoneexplicitvkCmdWriteMicromapsPropertiesEXTcoreAll micromaps in pMicromaps must have been constructed prior to the execution of this command
VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07502NNoneexplicitvkCmdWriteMicromapsPropertiesEXTcoreAll micromaps in pMicromaps must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT if queryType is VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT
VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcorepMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles
VUID-vkCmdWriteMicromapsPropertiesEXT-query-07528NNoneexplicitvkCmdWriteMicromapsPropertiesEXTcoreThe sum of query plus micromapCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07525NNoneexplicitvkCmdWriteMicromapsPropertiesEXTcorequeryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07526NNoneexplicitvkCmdWriteMicromapsPropertiesEXTcoreThe queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-07503NNoneexplicitvkCmdWriteMicromapsPropertiesEXTcorequeryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT
VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcorequeryType must be a valid VkQueryType value
VUID-vkCmdWriteMicromapsPropertiesEXT-renderpassYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcoreThis command must only be called outside of a render pass instance
VUID-vkCmdWriteMicromapsPropertiesEXT-videocodingYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcoreThis command must only be called outside of a video coding scope
VUID-vkCmdWriteTimestamp-None-00830YNoneexplicitvkCmdWriteTimestampcoreAll queries used by the command must be unavailable
VUID-vkCmdWriteTimestamp-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteTimestampcoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, encode, or optical flow operations
VUID-vkCmdWriteTimestamp-commandBuffer-parameterYNoneimplicitvkCmdWriteTimestampcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteTimestamp-commandBuffer-recordingYNoneimplicitvkCmdWriteTimestampcorecommandBuffer must be in the recording state
VUID-vkCmdWriteTimestamp-commonparentYNoneimplicitvkCmdWriteTimestampcoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteTimestamp-pipelineStage-04074YNoneexplicitvkCmdWriteTimestampcorepipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdWriteTimestamp-pipelineStage-04075YNoneexplicitvkCmdWriteTimestampcoreIf the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteTimestamp-pipelineStage-04076YNoneexplicitvkCmdWriteTimestampcoreIf the tessellationShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWriteTimestamp-pipelineStage-04077YNoneexplicitvkCmdWriteTimestampcoreIf the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04078YNoneexplicitvkCmdWriteTimestampcoreIf the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04079YNoneexplicitvkCmdWriteTimestampcoreIf the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04080YNoneexplicitvkCmdWriteTimestampcoreIf the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-07077YNoneexplicitvkCmdWriteTimestampcoreIf the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-parameterYNoneimplicitvkCmdWriteTimestampcorepipelineStage must be a valid VkPipelineStageFlagBits value
VUID-vkCmdWriteTimestamp-query-00831YNegativeQuery.WriteTimestampInsideRenderPassexplicitvkCmdWriteTimestampcoreIf vkCmdWriteTimestamp 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-vkCmdWriteTimestamp-query-04904YNegativeQuery.WriteTimeStampexplicitvkCmdWriteTimestampcorequery must be less than the number of queries in queryPool
VUID-vkCmdWriteTimestamp-queryPool-01416YNegativeQuery.SizesexplicitvkCmdWriteTimestampcorequeryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdWriteTimestamp-queryPool-parameterYNegativeQuery.WriteTimestampWithoutQueryPoolimplicitvkCmdWriteTimestampcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943YNoneexplicitvkCmdWriteTimestampcoreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, pipelineStage must not be VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdWriteTimestamp-shadingRateImage-07314YNegativeFragmentShadingRate.StageUsage, NegativeFragmentShadingRate.StageUsageNVexplicitvkCmdWriteTimestampcoreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteTimestamp-synchronization2-06489YNoneexplicitvkCmdWriteTimestampcoreIf the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE
VUID-vkCmdWriteTimestamp-timestampValidBits-00829YNegativeQuery.SizesexplicitvkCmdWriteTimestampcoreThe command pool's queue family must support a non-zero timestampValidBits
VUID-vkCmdWriteTimestamp2-None-03864YNoneexplicitvkCmdWriteTimestamp2coreAll queries used by the command must be unavailable
VUID-vkCmdWriteTimestamp2-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteTimestamp2coreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdWriteTimestamp2-commandBuffer-parameterYNoneimplicitvkCmdWriteTimestamp2corecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteTimestamp2-commandBuffer-recordingYNoneimplicitvkCmdWriteTimestamp2corecommandBuffer must be in the recording state
VUID-vkCmdWriteTimestamp2-commonparentYNoneimplicitvkCmdWriteTimestamp2coreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteTimestamp2-query-03865YNoneexplicitvkCmdWriteTimestamp2coreIf vkCmdWriteTimestamp2 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-vkCmdWriteTimestamp2-query-04903YNoneexplicitvkCmdWriteTimestamp2corequery must be less than the number of queries in queryPool
VUID-vkCmdWriteTimestamp2-queryPool-03861YNoneexplicitvkCmdWriteTimestamp2corequeryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdWriteTimestamp2-queryPool-parameterYNegativeQuery.WriteTimestampWithoutQueryPoolimplicitvkCmdWriteTimestamp2corequeryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteTimestamp2-stage-03859YNoneexplicitvkCmdWriteTimestamp2corestage must only include a single pipeline stage
VUID-vkCmdWriteTimestamp2-stage-03860YNoneexplicitvkCmdWriteTimestamp2corestage must only include stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdWriteTimestamp2-stage-03929YNoneexplicitvkCmdWriteTimestamp2coreIf the geometryShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteTimestamp2-stage-03930YNoneexplicitvkCmdWriteTimestamp2coreIf the tessellationShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWriteTimestamp2-stage-03931YNoneexplicitvkCmdWriteTimestamp2coreIf the conditionalRendering feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03932YNoneexplicitvkCmdWriteTimestamp2coreIf the fragmentDensityMap feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03933YNoneexplicitvkCmdWriteTimestamp2coreIf the transformFeedback feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03934YNoneexplicitvkCmdWriteTimestamp2coreIf the meshShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03935YNoneexplicitvkCmdWriteTimestamp2coreIf the taskShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-04957NNoneexplicitvkCmdWriteTimestamp2coreIf the subpassShading feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-vkCmdWriteTimestamp2-stage-04995NNoneexplicitvkCmdWriteTimestamp2coreIf the invocationMask feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdWriteTimestamp2-stage-07316YNoneexplicitvkCmdWriteTimestamp2coreIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteTimestamp2-stage-07946YNoneexplicitvkCmdWriteTimestamp2coreIf neither the VK_NV_ray_tracing extension or rayTracingPipeline feature are enabled, stage must not contain VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdWriteTimestamp2-stage-parameterYNoneimplicitvkCmdWriteTimestamp2corestage must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdWriteTimestamp2-synchronization2-03858YNegativeSyncVal.Sync2FeatureDisabledexplicitvkCmdWriteTimestamp2coreThe synchronization2 feature must be enabled
VUID-vkCmdWriteTimestamp2-timestampValidBits-03863YNoneexplicitvkCmdWriteTimestamp2coreThe command pool's queue family must support a non-zero timestampValidBits
VUID-vkCompileDeferredNV-device-parameterYNoneimplicitvkCompileDeferredNVcoredevice must be a valid VkDevice handle
VUID-vkCompileDeferredNV-pipeline-02237NNoneexplicitvkCompileDeferredNVcorepipeline must have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV
VUID-vkCompileDeferredNV-pipeline-04621NNoneexplicitvkCompileDeferredNVcorepipeline must be a ray tracing pipeline
VUID-vkCompileDeferredNV-pipeline-parameterYNoneimplicitvkCompileDeferredNVcorepipeline must be a valid VkPipeline handle
VUID-vkCompileDeferredNV-pipeline-parentYNoneimplicitvkCompileDeferredNVcorepipeline must have been created, allocated, or retrieved from device
VUID-vkCompileDeferredNV-shader-02238NNoneexplicitvkCompileDeferredNVcoreshader must not have been called as a deferred compile before
VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582YNoneexplicitvkCopyAccelerationStructureKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands
VUID-vkCopyAccelerationStructureKHR-buffer-03727YNegativeRayTracing.CmdCopyUnboundAccelerationStructureexplicitvkCopyAccelerationStructureKHRcoreThe buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyAccelerationStructureKHR-buffer-03728YNegativeRayTracing.CmdCopyUnboundAccelerationStructureexplicitvkCopyAccelerationStructureKHRcoreThe buffer used to create pInfo->dst must be bound to host-visible device memory feature must be enabled
VUID-vkCopyAccelerationStructureKHR-buffer-03780NNoneexplicitvkCopyAccelerationStructureKHRcoreThe buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureKHR-buffer-03781NNoneexplicitvkCopyAccelerationStructureKHRcoreThe buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureKHR-deferredOperation-03677NNoneexplicitvkCopyAccelerationStructureKHRcoreIf deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyAccelerationStructureKHR-deferredOperation-03678YNoneexplicitvkCopyAccelerationStructureKHRcoreAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameterYNoneimplicitvkCopyAccelerationStructureKHRcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyAccelerationStructureKHR-deferredOperation-parentYNoneimplicitvkCopyAccelerationStructureKHRcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyAccelerationStructureKHR-device-parameterYNoneimplicitvkCopyAccelerationStructureKHRcoredevice must be a valid VkDevice handle
VUID-vkCopyAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCopyAccelerationStructureKHRcorepInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure
VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584YNoneexplicitvkCopyAccelerationStructureToMemoryKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731NNoneexplicitvkCopyAccelerationStructureToMemoryKHRcoreThe buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783NNoneexplicitvkCopyAccelerationStructureToMemoryKHRcoreThe buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03677NNoneexplicitvkCopyAccelerationStructureToMemoryKHRcoreIf deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03678YNoneexplicitvkCopyAccelerationStructureToMemoryKHRcoreAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHRcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parentYNoneimplicitvkCopyAccelerationStructureToMemoryKHRcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHRcoredevice must be a valid VkDevice handle
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732YNoneexplicitvkCopyAccelerationStructureToMemoryKHRcorepInfo->dst.hostAddress must be a valid host pointer
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751YNoneexplicitvkCopyAccelerationStructureToMemoryKHRcorepInfo->dst.hostAddress must be aligned to 16 bytes
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHRcorepInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure
VUID-vkCopyImageToImageEXT-device-parameterYNoneimplicitvkCopyImageToImageEXTcoredevice must be a valid VkDevice handle
VUID-vkCopyImageToImageEXT-hostImageCopy-09068YNegativeHostImageCopy.FeaturesexplicitvkCopyImageToImageEXTcoreThe hostImageCopy feature must be enabled
VUID-vkCopyImageToImageEXT-pCopyImageToImageInfo-parameterYNoneimplicitvkCopyImageToImageEXTcorepCopyImageToImageInfo must be a valid pointer to a valid VkCopyImageToImageInfoEXT structure
VUID-vkCopyImageToMemoryEXT-device-parameterYNoneimplicitvkCopyImageToMemoryEXTcoredevice must be a valid VkDevice handle
VUID-vkCopyImageToMemoryEXT-hostImageCopy-09063YNegativeHostImageCopy.FeaturesexplicitvkCopyImageToMemoryEXTcoreThe hostImageCopy feature must be enabled
VUID-vkCopyImageToMemoryEXT-pCopyImageToMemoryInfo-parameterYNoneimplicitvkCopyImageToMemoryEXTcorepCopyImageToMemoryInfo must be a valid pointer to a valid VkCopyImageToMemoryInfoEXT structure
VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583YNoneexplicitvkCopyMemoryToAccelerationStructureKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730YNegativeRayTracing.CopyMemoryToAsBufferexplicitvkCopyMemoryToAccelerationStructureKHRcoreThe buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782NNoneexplicitvkCopyMemoryToAccelerationStructureKHRcoreThe buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03677NNoneexplicitvkCopyMemoryToAccelerationStructureKHRcoreIf deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03678YNoneexplicitvkCopyMemoryToAccelerationStructureKHRcoreAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHRcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parentYNoneimplicitvkCopyMemoryToAccelerationStructureKHRcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHRcoredevice must be a valid VkDevice handle
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729YNoneexplicitvkCopyMemoryToAccelerationStructureKHRcorepInfo->src.hostAddress must be a valid host pointer
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750NNoneexplicitvkCopyMemoryToAccelerationStructureKHRcorepInfo->src.hostAddress must be aligned to 16 bytes
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHRcorepInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure
VUID-vkCopyMemoryToImageEXT-device-parameterYNoneimplicitvkCopyMemoryToImageEXTcoredevice must be a valid VkDevice handle
VUID-vkCopyMemoryToImageEXT-hostImageCopy-09058YNegativeHostImageCopy.FeaturesexplicitvkCopyMemoryToImageEXTcoreThe hostImageCopy feature must be enabled
VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameterYNoneimplicitvkCopyMemoryToImageEXTcorepCopyMemoryToImageInfo must be a valid pointer to a valid VkCopyMemoryToImageInfoEXT structure
VUID-vkCopyMemoryToMicromapEXT-buffer-07565NNoneexplicitvkCopyMemoryToMicromapEXTcoreThe buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMemoryToMicromapEXT-buffer-07567NNoneexplicitvkCopyMemoryToMicromapEXTcoreThe buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03677NNoneexplicitvkCopyMemoryToMicromapEXTcoreIf deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03678NNoneexplicitvkCopyMemoryToMicromapEXTcoreAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parameterYNoneimplicitvkCopyMemoryToMicromapEXTcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parentYNoneimplicitvkCopyMemoryToMicromapEXTcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMemoryToMicromapEXT-device-parameterYNoneimplicitvkCopyMemoryToMicromapEXTcoredevice must be a valid VkDevice handle
VUID-vkCopyMemoryToMicromapEXT-micromapHostCommands-07566NNoneexplicitvkCopyMemoryToMicromapEXTcoreThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMemoryToMicromapEXT-pInfo-07563NNoneexplicitvkCopyMemoryToMicromapEXTcorepInfo->src.hostAddress must be a valid host pointer
VUID-vkCopyMemoryToMicromapEXT-pInfo-07564NNoneexplicitvkCopyMemoryToMicromapEXTcorepInfo->src.hostAddress must be aligned to 16 bytes
VUID-vkCopyMemoryToMicromapEXT-pInfo-parameterYNoneimplicitvkCopyMemoryToMicromapEXTcorepInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure
VUID-vkCopyMicromapEXT-buffer-07558NNoneexplicitvkCopyMicromapEXTcoreThe buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyMicromapEXT-buffer-07559NNoneexplicitvkCopyMicromapEXTcoreThe buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMicromapEXT-buffer-07561NNoneexplicitvkCopyMicromapEXTcoreThe buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapEXT-buffer-07562NNoneexplicitvkCopyMicromapEXTcoreThe buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapEXT-deferredOperation-03677NNoneexplicitvkCopyMicromapEXTcoreIf deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyMicromapEXT-deferredOperation-03678NNoneexplicitvkCopyMicromapEXTcoreAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMicromapEXT-deferredOperation-parameterYNoneimplicitvkCopyMicromapEXTcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMicromapEXT-deferredOperation-parentYNoneimplicitvkCopyMicromapEXTcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMicromapEXT-device-parameterYNoneimplicitvkCopyMicromapEXTcoredevice must be a valid VkDevice handle
VUID-vkCopyMicromapEXT-micromapHostCommands-07560NNoneexplicitvkCopyMicromapEXTcoreThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMicromapEXT-pInfo-parameterYNoneimplicitvkCopyMicromapEXTcorepInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure
VUID-vkCopyMicromapToMemoryEXT-buffer-07568NNoneexplicitvkCopyMicromapToMemoryEXTcoreThe buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyMicromapToMemoryEXT-buffer-07572NNoneexplicitvkCopyMicromapToMemoryEXTcoreThe buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03677NNoneexplicitvkCopyMicromapToMemoryEXTcoreIf deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03678NNoneexplicitvkCopyMicromapToMemoryEXTcoreAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parameterYNoneimplicitvkCopyMicromapToMemoryEXTcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parentYNoneimplicitvkCopyMicromapToMemoryEXTcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMicromapToMemoryEXT-device-parameterYNoneimplicitvkCopyMicromapToMemoryEXTcoredevice must be a valid VkDevice handle
VUID-vkCopyMicromapToMemoryEXT-micromapHostCommands-07571NNoneexplicitvkCopyMicromapToMemoryEXTcoreThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMicromapToMemoryEXT-pInfo-07569NNoneexplicitvkCopyMicromapToMemoryEXTcorepInfo->dst.hostAddress must be a valid host pointer
VUID-vkCopyMicromapToMemoryEXT-pInfo-07570NNoneexplicitvkCopyMicromapToMemoryEXTcorepInfo->dst.hostAddress must be aligned to 16 bytes
VUID-vkCopyMicromapToMemoryEXT-pInfo-parameterYNoneimplicitvkCopyMicromapToMemoryEXTcorepInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure
VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611YNegativeRayTracing.CreateAccelerationStructureFeatureexplicitvkCreateAccelerationStructureKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCreateAccelerationStructureKHR-device-03489NNoneexplicitvkCreateAccelerationStructureKHRcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkCreateAccelerationStructureKHR-device-parameterYNoneimplicitvkCreateAccelerationStructureKHRcoredevice must be a valid VkDevice handle
VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488YNegativeRayTracing.CreateAccelerationStructureKHRReplayFeatureexplicitvkCreateAccelerationStructureKHRcoreIf VkAccelerationStructureCreateInfoKHR::deviceAddress is not zero, the accelerationStructureCaptureReplay feature must be enabled
VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameterYNoneimplicitvkCreateAccelerationStructureKHRcorepAccelerationStructure must be a valid pointer to a VkAccelerationStructureKHR handle
VUID-vkCreateAccelerationStructureKHR-pAllocator-parameterNNoneimplicitvkCreateAccelerationStructureKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAccelerationStructureKHR-pCreateInfo-parameterYNoneimplicitvkCreateAccelerationStructureKHRcorepCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoKHR structure
VUID-vkCreateAccelerationStructureNV-device-parameterYNoneimplicitvkCreateAccelerationStructureNVcoredevice must be a valid VkDevice handle
VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameterYNoneimplicitvkCreateAccelerationStructureNVcorepAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle
VUID-vkCreateAccelerationStructureNV-pAllocator-parameterNNoneimplicitvkCreateAccelerationStructureNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameterYNoneimplicitvkCreateAccelerationStructureNVcorepCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure
VUID-vkCreateAndroidSurfaceKHR-instance-parameterYNoneimplicitvkCreateAndroidSurfaceKHRcoreinstance must be a valid VkInstance handle
VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateAndroidSurfaceKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateAndroidSurfaceKHRcorepCreateInfo must be a valid pointer to a valid VkAndroidSurfaceCreateInfoKHR structure
VUID-vkCreateAndroidSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateAndroidSurfaceKHRcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateBuffer-device-parameterYNoneimplicitvkCreateBuffercoredevice must be a valid VkDevice handle
VUID-vkCreateBuffer-flags-00911YNoneexplicitvkCreateBuffercoreIf the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, and the extendedSparseAddressSpace feature is not enabled, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize
VUID-vkCreateBuffer-flags-09383NNoneexplicitvkCreateBuffercoreIf the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, the extendedSparseAddressSpace feature is enabled, and the usage member of pCreateInfo contains bits not in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device, excluding VkBuffer created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags and VkImage created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize
VUID-vkCreateBuffer-flags-09384NNoneexplicitvkCreateBuffercoreIf the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT and the extendedSparseAddressSpace feature is enabled, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseAddressSpaceSize
VUID-vkCreateBuffer-pAllocator-parameterNNoneimplicitvkCreateBuffercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBuffer-pBuffer-parameterYNoneimplicitvkCreateBuffercorepBuffer must be a valid pointer to a VkBuffer handle
VUID-vkCreateBuffer-pCreateInfo-parameterYNoneimplicitvkCreateBuffercorepCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure
VUID-vkCreateBuffer-pNext-06387NNoneexplicitvkCreateBuffercoreIf using the VkBuffer for an import operation from a VkBufferCollectionFUCHSIA where a VkBufferCollectionBufferCreateInfoFUCHSIA has been chained to pNext, pCreateInfo must match the VkBufferConstraintsInfoFUCHSIA::createInfo used when setting the constraints on the buffer collection with vkSetBufferCollectionBufferConstraintsFUCHSIA
VUID-vkCreateBufferCollectionFUCHSIA-device-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkCreateBufferCollectionFUCHSIA-pAllocator-parameterNNoneimplicitvkCreateBufferCollectionFUCHSIAcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBufferCollectionFUCHSIA-pCollection-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIAcorepCollection must be a valid pointer to a VkBufferCollectionFUCHSIA handle
VUID-vkCreateBufferCollectionFUCHSIA-pCreateInfo-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIAcorepCreateInfo must be a valid pointer to a valid VkBufferCollectionCreateInfoFUCHSIA structure
VUID-vkCreateBufferView-device-parameterYNoneimplicitvkCreateBufferViewcoredevice must be a valid VkDevice handle
VUID-vkCreateBufferView-pAllocator-parameterNNoneimplicitvkCreateBufferViewcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBufferView-pCreateInfo-parameterYNoneimplicitvkCreateBufferViewcorepCreateInfo must be a valid pointer to a valid VkBufferViewCreateInfo structure
VUID-vkCreateBufferView-pView-parameterYNoneimplicitvkCreateBufferViewcorepView must be a valid pointer to a VkBufferView handle
VUID-vkCreateCommandPool-device-parameterYNoneimplicitvkCreateCommandPoolcoredevice must be a valid VkDevice handle
VUID-vkCreateCommandPool-pAllocator-parameterNNoneimplicitvkCreateCommandPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCommandPool-pCommandPool-parameterYNoneimplicitvkCreateCommandPoolcorepCommandPool must be a valid pointer to a VkCommandPool handle
VUID-vkCreateCommandPool-pCreateInfo-parameterYNoneimplicitvkCreateCommandPoolcorepCreateInfo must be a valid pointer to a valid VkCommandPoolCreateInfo structure
VUID-vkCreateCommandPool-queueFamilyIndex-01937YNegativeDeviceQueue.CreateCommandPoolexplicitvkCreateCommandPoolcorepCreateInfo->queueFamilyIndex must be the index of a queue family available in the logical device device
VUID-vkCreateComputePipelines-createInfoCount-arraylengthYNoneimplicitvkCreateComputePipelinescorecreateInfoCount must be greater than 0
VUID-vkCreateComputePipelines-device-parameterYNoneimplicitvkCreateComputePipelinescoredevice must be a valid VkDevice handle
VUID-vkCreateComputePipelines-flags-00695NNoneexplicitvkCreateComputePipelinescoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element
VUID-vkCreateComputePipelines-flags-00696NNoneexplicitvkCreateComputePipelinescoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set
VUID-vkCreateComputePipelines-pAllocator-parameterNNoneimplicitvkCreateComputePipelinescoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateComputePipelines-pCreateInfos-parameterYNoneimplicitvkCreateComputePipelinescorepCreateInfos must be a valid pointer to an array of createInfoCount valid VkComputePipelineCreateInfo structures
VUID-vkCreateComputePipelines-pPipelines-parameterYNoneimplicitvkCreateComputePipelinescorepPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateComputePipelines-pipelineCache-02873NNoneexplicitvkCreateComputePipelinescoreIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateComputePipelines-pipelineCache-parameterYNoneimplicitvkCreateComputePipelinescoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateComputePipelines-pipelineCache-parentYNoneimplicitvkCreateComputePipelinescoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateCuFunctionNVX-device-parameterYNoneimplicitvkCreateCuFunctionNVXcoredevice must be a valid VkDevice handle
VUID-vkCreateCuFunctionNVX-pAllocator-parameterNNoneimplicitvkCreateCuFunctionNVXcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCuFunctionNVX-pCreateInfo-parameterYNoneimplicitvkCreateCuFunctionNVXcorepCreateInfo must be a valid pointer to a valid VkCuFunctionCreateInfoNVX structure
VUID-vkCreateCuFunctionNVX-pFunction-parameterYNoneimplicitvkCreateCuFunctionNVXcorepFunction must be a valid pointer to a VkCuFunctionNVX handle
VUID-vkCreateCuModuleNVX-device-parameterYNoneimplicitvkCreateCuModuleNVXcoredevice must be a valid VkDevice handle
VUID-vkCreateCuModuleNVX-pAllocator-parameterNNoneimplicitvkCreateCuModuleNVXcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCuModuleNVX-pCreateInfo-parameterYNoneimplicitvkCreateCuModuleNVXcorepCreateInfo must be a valid pointer to a valid VkCuModuleCreateInfoNVX structure
VUID-vkCreateCuModuleNVX-pModule-parameterYNoneimplicitvkCreateCuModuleNVXcorepModule must be a valid pointer to a VkCuModuleNVX handle
VUID-vkCreateCudaFunctionNV-device-parameterYNoneimplicitvkCreateCudaFunctionNVcoredevice must be a valid VkDevice handle
VUID-vkCreateCudaFunctionNV-pAllocator-parameterNNoneimplicitvkCreateCudaFunctionNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCudaFunctionNV-pCreateInfo-parameterYNoneimplicitvkCreateCudaFunctionNVcorepCreateInfo must be a valid pointer to a valid VkCudaFunctionCreateInfoNV structure
VUID-vkCreateCudaFunctionNV-pFunction-parameterYNoneimplicitvkCreateCudaFunctionNVcorepFunction must be a valid pointer to a VkCudaFunctionNV handle
VUID-vkCreateCudaModuleNV-device-parameterYNoneimplicitvkCreateCudaModuleNVcoredevice must be a valid VkDevice handle
VUID-vkCreateCudaModuleNV-pAllocator-parameterNNoneimplicitvkCreateCudaModuleNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCudaModuleNV-pCreateInfo-parameterYNoneimplicitvkCreateCudaModuleNVcorepCreateInfo must be a valid pointer to a valid VkCudaModuleCreateInfoNV structure
VUID-vkCreateCudaModuleNV-pModule-parameterYNoneimplicitvkCreateCudaModuleNVcorepModule must be a valid pointer to a VkCudaModuleNV handle
VUID-vkCreateDebugReportCallbackEXT-instance-parameterYNoneimplicitvkCreateDebugReportCallbackEXTcoreinstance must be a valid VkInstance handle
VUID-vkCreateDebugReportCallbackEXT-pAllocator-parameterNNoneimplicitvkCreateDebugReportCallbackEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDebugReportCallbackEXT-pCallback-parameterYNoneimplicitvkCreateDebugReportCallbackEXTcorepCallback must be a valid pointer to a VkDebugReportCallbackEXT handle
VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameterYNoneimplicitvkCreateDebugReportCallbackEXTcorepCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure
VUID-vkCreateDebugUtilsMessengerEXT-instance-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXTcoreinstance must be a valid VkInstance handle
VUID-vkCreateDebugUtilsMessengerEXT-pAllocator-parameterNNoneimplicitvkCreateDebugUtilsMessengerEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXTcorepCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure
VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXTcorepMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle
VUID-vkCreateDeferredOperationKHR-device-parameterYNoneimplicitvkCreateDeferredOperationKHRcoredevice must be a valid VkDevice handle
VUID-vkCreateDeferredOperationKHR-pAllocator-parameterNNoneimplicitvkCreateDeferredOperationKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameterYNoneimplicitvkCreateDeferredOperationKHRcorepDeferredOperation must be a valid pointer to a VkDeferredOperationKHR handle
VUID-vkCreateDescriptorPool-device-parameterYNoneimplicitvkCreateDescriptorPoolcoredevice must be a valid VkDevice handle
VUID-vkCreateDescriptorPool-pAllocator-parameterNNoneimplicitvkCreateDescriptorPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorPool-pCreateInfo-parameterYNoneimplicitvkCreateDescriptorPoolcorepCreateInfo must be a valid pointer to a valid VkDescriptorPoolCreateInfo structure
VUID-vkCreateDescriptorPool-pDescriptorPool-parameterYNoneimplicitvkCreateDescriptorPoolcorepDescriptorPool must be a valid pointer to a VkDescriptorPool handle
VUID-vkCreateDescriptorSetLayout-device-parameterYNoneimplicitvkCreateDescriptorSetLayoutcoredevice must be a valid VkDevice handle
VUID-vkCreateDescriptorSetLayout-pAllocator-parameterNNoneimplicitvkCreateDescriptorSetLayoutcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameterYNoneimplicitvkCreateDescriptorSetLayoutcorepCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure
VUID-vkCreateDescriptorSetLayout-pSetLayout-parameterYNoneimplicitvkCreateDescriptorSetLayoutcorepSetLayout must be a valid pointer to a VkDescriptorSetLayout handle
VUID-vkCreateDescriptorUpdateTemplate-device-parameterYNoneimplicitvkCreateDescriptorUpdateTemplatecoredevice must be a valid VkDevice handle
VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameterNNoneimplicitvkCreateDescriptorUpdateTemplatecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameterYNoneimplicitvkCreateDescriptorUpdateTemplatecorepCreateInfo must be a valid pointer to a valid VkDescriptorUpdateTemplateCreateInfo structure
VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameterYNoneimplicitvkCreateDescriptorUpdateTemplatecorepDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle
VUID-vkCreateDevice-pAllocator-parameterNNoneimplicitvkCreateDevicecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDevice-pCreateInfo-parameterYNoneimplicitvkCreateDevicecorepCreateInfo must be a valid pointer to a valid VkDeviceCreateInfo structure
VUID-vkCreateDevice-pDevice-parameterYNoneimplicitvkCreateDevicecorepDevice must be a valid pointer to a VkDevice handle
VUID-vkCreateDevice-physicalDevice-parameterYNoneimplicitvkCreateDevicecorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkCreateDevice-ppEnabledExtensionNames-01387YVkLayerTest.ExtensionXmlDependsLogic, VkLayerTest.ExtensionXmlDependsLogic2, VkLayerTest.ExtensionXmlDependsLogic3explicitvkCreateDevicecoreAll required device extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list
VUID-vkCreateDirectFBSurfaceEXT-instance-parameterYNoneimplicitvkCreateDirectFBSurfaceEXTcoreinstance must be a valid VkInstance handle
VUID-vkCreateDirectFBSurfaceEXT-pAllocator-parameterNNoneimplicitvkCreateDirectFBSurfaceEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateDirectFBSurfaceEXTcorepCreateInfo must be a valid pointer to a valid VkDirectFBSurfaceCreateInfoEXT structure
VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateDirectFBSurfaceEXTcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateDisplayModeKHR-display-parameterYNoneimplicitvkCreateDisplayModeKHRcoredisplay must be a valid VkDisplayKHR handle
VUID-vkCreateDisplayModeKHR-display-parentYNoneimplicitvkCreateDisplayModeKHRcoredisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkCreateDisplayModeKHR-pAllocator-parameterNNoneimplicitvkCreateDisplayModeKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDisplayModeKHR-pCreateInfo-parameterYNoneimplicitvkCreateDisplayModeKHRcorepCreateInfo must be a valid pointer to a valid VkDisplayModeCreateInfoKHR structure
VUID-vkCreateDisplayModeKHR-pMode-parameterYNoneimplicitvkCreateDisplayModeKHRcorepMode must be a valid pointer to a VkDisplayModeKHR handle
VUID-vkCreateDisplayModeKHR-physicalDevice-parameterYNoneimplicitvkCreateDisplayModeKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHRcoreinstance must be a valid VkInstance handle
VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateDisplayPlaneSurfaceKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHRcorepCreateInfo must be a valid pointer to a valid VkDisplaySurfaceCreateInfoKHR structure
VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHRcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateEvent-device-parameterYNoneimplicitvkCreateEventcoredevice must be a valid VkDevice handle
VUID-vkCreateEvent-events-04468YNegativePortabilitySubset.EventexplicitvkCreateEventcoreIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::events is VK_FALSE, then the implementation does not support events, and vkCreateEvent must not be used
VUID-vkCreateEvent-pAllocator-parameterNNoneimplicitvkCreateEventcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateEvent-pCreateInfo-parameterYNoneimplicitvkCreateEventcorepCreateInfo must be a valid pointer to a valid VkEventCreateInfo structure
VUID-vkCreateEvent-pEvent-parameterYNoneimplicitvkCreateEventcorepEvent must be a valid pointer to a VkEvent handle
VUID-vkCreateExecutionGraphPipelinesAMDX-createInfoCount-arraylengthYNoneimplicitvkCreateExecutionGraphPipelinesAMDXcorecreateInfoCount must be greater than 0
VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXcoredevice must be a valid VkDevice handle
VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09125NNoneexplicitvkCreateExecutionGraphPipelinesAMDXcoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element
VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09126NNoneexplicitvkCreateExecutionGraphPipelinesAMDXcoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set
VUID-vkCreateExecutionGraphPipelinesAMDX-pAllocator-parameterNNoneimplicitvkCreateExecutionGraphPipelinesAMDXcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXcorepCreateInfos must be a valid pointer to an array of createInfoCount valid VkExecutionGraphPipelineCreateInfoAMDX structures
VUID-vkCreateExecutionGraphPipelinesAMDX-pPipelines-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXcorepPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-09127NNoneexplicitvkCreateExecutionGraphPipelinesAMDXcoreIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXcoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parentYNoneimplicitvkCreateExecutionGraphPipelinesAMDXcoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateExecutionGraphPipelinesAMDX-shaderEnqueue-09124NNoneexplicitvkCreateExecutionGraphPipelinesAMDXcoreThe shaderEnqueue feature must be enabled
VUID-vkCreateFence-device-parameterYNoneimplicitvkCreateFencecoredevice must be a valid VkDevice handle
VUID-vkCreateFence-pAllocator-parameterNNoneimplicitvkCreateFencecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateFence-pCreateInfo-parameterYNoneimplicitvkCreateFencecorepCreateInfo must be a valid pointer to a valid VkFenceCreateInfo structure
VUID-vkCreateFence-pFence-parameterYNoneimplicitvkCreateFencecorepFence must be a valid pointer to a VkFence handle
VUID-vkCreateFramebuffer-device-parameterYNoneimplicitvkCreateFramebuffercoredevice must be a valid VkDevice handle
VUID-vkCreateFramebuffer-pAllocator-parameterNNoneimplicitvkCreateFramebuffercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateFramebuffer-pCreateInfo-02777NNoneexplicitvkCreateFramebuffercoreIf pCreateInfo->flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, each element of pCreateInfo->pAttachments must have been created on device
VUID-vkCreateFramebuffer-pCreateInfo-parameterYNoneimplicitvkCreateFramebuffercorepCreateInfo must be a valid pointer to a valid VkFramebufferCreateInfo structure
VUID-vkCreateFramebuffer-pFramebuffer-parameterYNoneimplicitvkCreateFramebuffercorepFramebuffer must be a valid pointer to a VkFramebuffer handle
VUID-vkCreateGraphicsPipelines-createInfoCount-arraylengthYNoneimplicitvkCreateGraphicsPipelinescorecreateInfoCount must be greater than 0
VUID-vkCreateGraphicsPipelines-device-parameterYNoneimplicitvkCreateGraphicsPipelinescoredevice must be a valid VkDevice handle
VUID-vkCreateGraphicsPipelines-flags-00720YNoneexplicitvkCreateGraphicsPipelinescoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element
VUID-vkCreateGraphicsPipelines-flags-00721YNoneexplicitvkCreateGraphicsPipelinescoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set
VUID-vkCreateGraphicsPipelines-pAllocator-parameterNNoneimplicitvkCreateGraphicsPipelinescoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateGraphicsPipelines-pCreateInfos-parameterYNoneimplicitvkCreateGraphicsPipelinescorepCreateInfos must be a valid pointer to an array of createInfoCount valid VkGraphicsPipelineCreateInfo structures
VUID-vkCreateGraphicsPipelines-pPipelines-parameterYNoneimplicitvkCreateGraphicsPipelinescorepPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateGraphicsPipelines-pipelineCache-02876NNoneexplicitvkCreateGraphicsPipelinescoreIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateGraphicsPipelines-pipelineCache-parameterYNoneimplicitvkCreateGraphicsPipelinescoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateGraphicsPipelines-pipelineCache-parentYNoneimplicitvkCreateGraphicsPipelinescoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateHeadlessSurfaceEXT-instance-parameterYNoneimplicitvkCreateHeadlessSurfaceEXTcoreinstance must be a valid VkInstance handle
VUID-vkCreateHeadlessSurfaceEXT-pAllocator-parameterNNoneimplicitvkCreateHeadlessSurfaceEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateHeadlessSurfaceEXTcorepCreateInfo must be a valid pointer to a valid VkHeadlessSurfaceCreateInfoEXT structure
VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateHeadlessSurfaceEXTcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateIOSSurfaceMVK-instance-parameterYNoneimplicitvkCreateIOSSurfaceMVKcoreinstance must be a valid VkInstance handle
VUID-vkCreateIOSSurfaceMVK-pAllocator-parameterNNoneimplicitvkCreateIOSSurfaceMVKcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameterYNoneimplicitvkCreateIOSSurfaceMVKcorepCreateInfo must be a valid pointer to a valid VkIOSSurfaceCreateInfoMVK structure
VUID-vkCreateIOSSurfaceMVK-pSurface-parameterYNoneimplicitvkCreateIOSSurfaceMVKcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateImage-device-parameterYNoneimplicitvkCreateImagecoredevice must be a valid VkDevice handle
VUID-vkCreateImage-flags-00939NNoneexplicitvkCreateImagecoreIf the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, and the extendedSparseAddressSpace feature is not enabled, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize
VUID-vkCreateImage-flags-09385NNoneexplicitvkCreateImagecoreIf the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, the extendedSparseAddressSpace feature is enabled, and the usage member of pCreateInfo contains bits not in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device, excluding VkBuffer created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags and VkImage created with usage member of pCreateInfo containing bits in VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags, to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize
VUID-vkCreateImage-flags-09386NNoneexplicitvkCreateImagecoreIf the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT and the extendedSparseAddressSpace feature is enabled, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseAddressSpaceSize
VUID-vkCreateImage-pAllocator-parameterNNoneimplicitvkCreateImagecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImage-pCreateInfo-parameterYVkLayerTest.RequiredParameterimplicitvkCreateImagecorepCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-vkCreateImage-pImage-parameterYNoneimplicitvkCreateImagecorepImage must be a valid pointer to a VkImage handle
VUID-vkCreateImage-pNext-06389NNoneexplicitvkCreateImagecoreIf a VkBufferCollectionImageCreateInfoFUCHSIA has been chained to pNext, pCreateInfo must match the Sysmem chosen VkImageCreateInfo excepting members VkImageCreateInfo::extent and VkImageCreateInfo::usage in the match criteria
VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIAcoreinstance must be a valid VkInstance handle
VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameterNNoneimplicitvkCreateImagePipeSurfaceFUCHSIAcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIAcorepCreateInfo must be a valid pointer to a valid VkImagePipeSurfaceCreateInfoFUCHSIA structure
VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIAcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateImageView-device-parameterYNoneimplicitvkCreateImageViewcoredevice must be a valid VkDevice handle
VUID-vkCreateImageView-image-09179YNegativeParent.ImageViewexplicitvkCreateImageViewcoreVkImageViewCreateInfo::image must have been created from device
VUID-vkCreateImageView-pAllocator-parameterNNoneimplicitvkCreateImageViewcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImageView-pCreateInfo-parameterYNoneimplicitvkCreateImageViewcorepCreateInfo must be a valid pointer to a valid VkImageViewCreateInfo structure
VUID-vkCreateImageView-pView-parameterYNoneimplicitvkCreateImageViewcorepView must be a valid pointer to a VkImageView handle
VUID-vkCreateIndirectCommandsLayoutNV-device-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNVcoredevice must be a valid VkDevice handle
VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929NNoneexplicitvkCreateIndirectCommandsLayoutNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameterNNoneimplicitvkCreateIndirectCommandsLayoutNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNVcorepCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoNV structure
VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNVcorepIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNV handle
VUID-vkCreateInstance-pAllocator-parameterNNoneimplicitvkCreateInstancecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateInstance-pCreateInfo-parameterYNoneimplicitvkCreateInstancecorepCreateInfo must be a valid pointer to a valid VkInstanceCreateInfo structure
VUID-vkCreateInstance-pInstance-parameterYNoneimplicitvkCreateInstancecorepInstance must be a valid pointer to a VkInstance handle
VUID-vkCreateInstance-ppEnabledExtensionNames-01388YNegativeInstanceless.InstanceExtensionDependenciesexplicitvkCreateInstancecoreAll required extensions for each extension in the VkInstanceCreateInfo::ppEnabledExtensionNames list must also be present in that list
VUID-vkCreateMacOSSurfaceMVK-instance-parameterYNoneimplicitvkCreateMacOSSurfaceMVKcoreinstance must be a valid VkInstance handle
VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameterNNoneimplicitvkCreateMacOSSurfaceMVKcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameterYNoneimplicitvkCreateMacOSSurfaceMVKcorepCreateInfo must be a valid pointer to a valid VkMacOSSurfaceCreateInfoMVK structure
VUID-vkCreateMacOSSurfaceMVK-pSurface-parameterYNoneimplicitvkCreateMacOSSurfaceMVKcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateMetalSurfaceEXT-instance-parameterYNoneimplicitvkCreateMetalSurfaceEXTcoreinstance must be a valid VkInstance handle
VUID-vkCreateMetalSurfaceEXT-pAllocator-parameterNNoneimplicitvkCreateMetalSurfaceEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateMetalSurfaceEXTcorepCreateInfo must be a valid pointer to a valid VkMetalSurfaceCreateInfoEXT structure
VUID-vkCreateMetalSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateMetalSurfaceEXTcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateMicromapEXT-device-07432NNoneexplicitvkCreateMicromapEXTcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkCreateMicromapEXT-device-parameterYNoneimplicitvkCreateMicromapEXTcoredevice must be a valid VkDevice handle
VUID-vkCreateMicromapEXT-deviceAddress-07431NNoneexplicitvkCreateMicromapEXTcoreIf VkMicromapCreateInfoEXT::deviceAddress is not zero, the micromapCaptureReplay feature must be enabled
VUID-vkCreateMicromapEXT-micromap-07430NNoneexplicitvkCreateMicromapEXTcoreThe micromap feature must be enabled
VUID-vkCreateMicromapEXT-pAllocator-parameterNNoneimplicitvkCreateMicromapEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMicromapEXT-pCreateInfo-parameterYNoneimplicitvkCreateMicromapEXTcorepCreateInfo must be a valid pointer to a valid VkMicromapCreateInfoEXT structure
VUID-vkCreateMicromapEXT-pMicromap-parameterYNoneimplicitvkCreateMicromapEXTcorepMicromap must be a valid pointer to a VkMicromapEXT handle
VUID-vkCreateOpticalFlowSessionNV-device-parameterYNoneimplicitvkCreateOpticalFlowSessionNVcoredevice must be a valid VkDevice handle
VUID-vkCreateOpticalFlowSessionNV-pAllocator-parameterNNoneimplicitvkCreateOpticalFlowSessionNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateOpticalFlowSessionNV-pCreateInfo-parameterYNoneimplicitvkCreateOpticalFlowSessionNVcorepCreateInfo must be a valid pointer to a valid VkOpticalFlowSessionCreateInfoNV structure
VUID-vkCreateOpticalFlowSessionNV-pSession-parameterYNoneimplicitvkCreateOpticalFlowSessionNVcorepSession must be a valid pointer to a VkOpticalFlowSessionNV handle
VUID-vkCreatePipelineCache-device-parameterYNoneimplicitvkCreatePipelineCachecoredevice must be a valid VkDevice handle
VUID-vkCreatePipelineCache-pAllocator-parameterNNoneimplicitvkCreatePipelineCachecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePipelineCache-pCreateInfo-parameterYNoneimplicitvkCreatePipelineCachecorepCreateInfo must be a valid pointer to a valid VkPipelineCacheCreateInfo structure
VUID-vkCreatePipelineCache-pPipelineCache-parameterYNoneimplicitvkCreatePipelineCachecorepPipelineCache must be a valid pointer to a VkPipelineCache handle
VUID-vkCreatePipelineLayout-device-parameterYNoneimplicitvkCreatePipelineLayoutcoredevice must be a valid VkDevice handle
VUID-vkCreatePipelineLayout-pAllocator-parameterNNoneimplicitvkCreatePipelineLayoutcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePipelineLayout-pCreateInfo-parameterYNoneimplicitvkCreatePipelineLayoutcorepCreateInfo must be a valid pointer to a valid VkPipelineLayoutCreateInfo structure
VUID-vkCreatePipelineLayout-pPipelineLayout-parameterYNoneimplicitvkCreatePipelineLayoutcorepPipelineLayout must be a valid pointer to a VkPipelineLayout handle
VUID-vkCreatePrivateDataSlot-device-parameterYNoneimplicitvkCreatePrivateDataSlotcoredevice must be a valid VkDevice handle
VUID-vkCreatePrivateDataSlot-pAllocator-parameterNNoneimplicitvkCreatePrivateDataSlotcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePrivateDataSlot-pCreateInfo-parameterYNoneimplicitvkCreatePrivateDataSlotcorepCreateInfo must be a valid pointer to a valid VkPrivateDataSlotCreateInfo structure
VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameterYNoneimplicitvkCreatePrivateDataSlotcorepPrivateDataSlot must be a valid pointer to a VkPrivateDataSlot handle
VUID-vkCreatePrivateDataSlot-privateData-04564YNegativeTooling.PrivateDataFeatureexplicitvkCreatePrivateDataSlotcoreThe privateData feature must be enabled
VUID-vkCreateQueryPool-device-parameterYNoneimplicitvkCreateQueryPoolcoredevice must be a valid VkDevice handle
VUID-vkCreateQueryPool-pAllocator-parameterNNoneimplicitvkCreateQueryPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateQueryPool-pCreateInfo-parameterYNegativeQuery.NullQueryPoolCreateInfoimplicitvkCreateQueryPoolcorepCreateInfo must be a valid pointer to a valid VkQueryPoolCreateInfo structure
VUID-vkCreateQueryPool-pQueryPool-parameterYNoneimplicitvkCreateQueryPoolcorepQueryPool must be a valid pointer to a VkQueryPool handle
VUID-vkCreateRayTracingPipelinesKHR-createInfoCount-arraylengthYNoneimplicitvkCreateRayTracingPipelinesKHRcorecreateInfoCount must be greater than 0
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587YNoneexplicitvkCreateRayTracingPipelinesKHRcoreIf deferredOperation is not VK_NULL_HANDLE, the flags member of elements of pCreateInfos must not include VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03677NNoneexplicitvkCreateRayTracingPipelinesKHRcoreIf deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03678YNoneexplicitvkCreateRayTracingPipelinesKHRcoreAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRcoreIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parentYNoneimplicitvkCreateRayTracingPipelinesKHRcoreIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRayTracingPipelinesKHR-device-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRcoredevice must be a valid VkDevice handle
VUID-vkCreateRayTracingPipelinesKHR-flags-03415YNegativeRayTracingPipeline.BasicUsageexplicitvkCreateRayTracingPipelinesKHRcoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element
VUID-vkCreateRayTracingPipelinesKHR-flags-03416YNoneexplicitvkCreateRayTracingPipelinesKHRcoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set
VUID-vkCreateRayTracingPipelinesKHR-flags-03816YNegativeRayTracingPipeline.BasicUsageexplicitvkCreateRayTracingPipelinesKHRcoreflags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-vkCreateRayTracingPipelinesKHR-pAllocator-parameterNNoneimplicitvkCreateRayTracingPipelinesKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRayTracingPipelinesKHR-pCreateInfos-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRcorepCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoKHR structures
VUID-vkCreateRayTracingPipelinesKHR-pPipelines-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRcorepPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903NNoneexplicitvkCreateRayTracingPipelinesKHRcoreIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRcoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parentYNoneimplicitvkCreateRayTracingPipelinesKHRcoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586YNoneexplicitvkCreateRayTracingPipelinesKHRcoreThe rayTracingPipeline feature must be enabled
VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylengthYNegativeRayTracingPipelineNV.BasicUsageimplicitvkCreateRayTracingPipelinesNVcorecreateInfoCount must be greater than 0
VUID-vkCreateRayTracingPipelinesNV-device-parameterYNoneimplicitvkCreateRayTracingPipelinesNVcoredevice must be a valid VkDevice handle
VUID-vkCreateRayTracingPipelinesNV-flags-03415YNegativeRayTracingPipelineNV.BasicUsageexplicitvkCreateRayTracingPipelinesNVcoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element
VUID-vkCreateRayTracingPipelinesNV-flags-03416YNoneexplicitvkCreateRayTracingPipelinesNVcoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set
VUID-vkCreateRayTracingPipelinesNV-flags-03816YNoneexplicitvkCreateRayTracingPipelinesNVcoreflags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameterNNoneimplicitvkCreateRayTracingPipelinesNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameterYNoneimplicitvkCreateRayTracingPipelinesNVcorepCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures
VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameterYNoneimplicitvkCreateRayTracingPipelinesNVcorepPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903NNoneexplicitvkCreateRayTracingPipelinesNVcoreIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameterYNoneimplicitvkCreateRayTracingPipelinesNVcoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parentYNoneimplicitvkCreateRayTracingPipelinesNVcoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRenderPass-device-parameterYNoneimplicitvkCreateRenderPasscoredevice must be a valid VkDevice handle
VUID-vkCreateRenderPass-pAllocator-parameterNNoneimplicitvkCreateRenderPasscoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRenderPass-pCreateInfo-parameterYVkLayerTest.RequiredParameterimplicitvkCreateRenderPasscorepCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo structure
VUID-vkCreateRenderPass-pRenderPass-parameterYNoneimplicitvkCreateRenderPasscorepRenderPass must be a valid pointer to a VkRenderPass handle
VUID-vkCreateRenderPass2-device-parameterYNoneimplicitvkCreateRenderPass2coredevice must be a valid VkDevice handle
VUID-vkCreateRenderPass2-pAllocator-parameterNNoneimplicitvkCreateRenderPass2coreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRenderPass2-pCreateInfo-parameterYNoneimplicitvkCreateRenderPass2corepCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2 structure
VUID-vkCreateRenderPass2-pRenderPass-parameterYNoneimplicitvkCreateRenderPass2corepRenderPass must be a valid pointer to a VkRenderPass handle
VUID-vkCreateSampler-device-parameterYNoneimplicitvkCreateSamplercoredevice must be a valid VkDevice handle
VUID-vkCreateSampler-maxSamplerAllocationCount-04110YNegativeSampler.AllocationCount, NegativeSampler.CustomBorderColorexplicitvkCreateSamplercoreThere must be less than VkPhysicalDeviceLimits::maxSamplerAllocationCount VkSampler objects currently created on the device
VUID-vkCreateSampler-pAllocator-parameterNNoneimplicitvkCreateSamplercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSampler-pCreateInfo-parameterYNoneimplicitvkCreateSamplercorepCreateInfo must be a valid pointer to a valid VkSamplerCreateInfo structure
VUID-vkCreateSampler-pSampler-parameterYNoneimplicitvkCreateSamplercorepSampler must be a valid pointer to a VkSampler handle
VUID-vkCreateSamplerYcbcrConversion-None-01648YNegativeYcbcr.SamplerYcbcrConversionEnable, VkLayerTest.ExtensionNotEnabledYCbCrexplicitvkCreateSamplerYcbcrConversioncoreThe samplerYcbcrConversion feature must be enabled
VUID-vkCreateSamplerYcbcrConversion-device-parameterYNoneimplicitvkCreateSamplerYcbcrConversioncoredevice must be a valid VkDevice handle
VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameterNNoneimplicitvkCreateSamplerYcbcrConversioncoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameterYNoneimplicitvkCreateSamplerYcbcrConversioncorepCreateInfo must be a valid pointer to a valid VkSamplerYcbcrConversionCreateInfo structure
VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameterYNoneimplicitvkCreateSamplerYcbcrConversioncorepYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle
VUID-vkCreateScreenSurfaceQNX-instance-parameterYNoneimplicitvkCreateScreenSurfaceQNXcoreinstance must be a valid VkInstance handle
VUID-vkCreateScreenSurfaceQNX-pAllocator-parameterNNoneimplicitvkCreateScreenSurfaceQNXcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameterYNoneimplicitvkCreateScreenSurfaceQNXcorepCreateInfo must be a valid pointer to a valid VkScreenSurfaceCreateInfoQNX structure
VUID-vkCreateScreenSurfaceQNX-pSurface-parameterYNoneimplicitvkCreateScreenSurfaceQNXcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateSemaphore-device-parameterYNoneimplicitvkCreateSemaphorecoredevice must be a valid VkDevice handle
VUID-vkCreateSemaphore-pAllocator-parameterNNoneimplicitvkCreateSemaphorecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSemaphore-pCreateInfo-parameterYNoneimplicitvkCreateSemaphorecorepCreateInfo must be a valid pointer to a valid VkSemaphoreCreateInfo structure
VUID-vkCreateSemaphore-pSemaphore-parameterYNoneimplicitvkCreateSemaphorecorepSemaphore must be a valid pointer to a VkSemaphore handle
VUID-vkCreateShaderModule-device-parameterYNoneimplicitvkCreateShaderModulecoredevice must be a valid VkDevice handle
VUID-vkCreateShaderModule-pAllocator-parameterNNoneimplicitvkCreateShaderModulecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateShaderModule-pCreateInfo-06904NNoneexplicitvkCreateShaderModulecoreIf pCreateInfo is not NULL, pCreateInfo->pNext must be NULL or a pointer to a VkShaderModuleValidationCacheCreateInfoEXT structure
VUID-vkCreateShaderModule-pCreateInfo-parameterYNoneimplicitvkCreateShaderModulecorepCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure
VUID-vkCreateShaderModule-pShaderModule-parameterYNoneimplicitvkCreateShaderModulecorepShaderModule must be a valid pointer to a VkShaderModule handle
VUID-vkCreateShadersEXT-None-08400YNoneexplicitvkCreateShadersEXTcoreThe shaderObject feature must be enabled
VUID-vkCreateShadersEXT-createInfoCount-arraylengthYNoneimplicitvkCreateShadersEXTcorecreateInfoCount must be greater than 0
VUID-vkCreateShadersEXT-device-parameterYNoneimplicitvkCreateShadersEXTcoredevice must be a valid VkDevice handle
VUID-vkCreateShadersEXT-pAllocator-parameterNNoneimplicitvkCreateShadersEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateShadersEXT-pCreateInfos-08402YNegativeShaderObject.MissingLinkStageBitexplicitvkCreateShadersEXTcoreIf the flags member of any element of pCreateInfos includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the flags member of all other elements of pCreateInfos whose stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, or VK_SHADER_STAGE_FRAGMENT_BIT must also include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT
VUID-vkCreateShadersEXT-pCreateInfos-08403YNegativeShaderObject.MissingLinkStageBitMeshexplicitvkCreateShadersEXTcoreIf the flags member of any element of pCreateInfos includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the flags member of all other elements of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT must also include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT
VUID-vkCreateShadersEXT-pCreateInfos-08404YNegativeShaderObject.LinkedVertexAndMeshStagesexplicitvkCreateShadersEXTcoreIf the flags member of any element of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, there must be no member of pCreateInfos whose stage is VK_SHADER_STAGE_VERTEX_BIT and whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT
VUID-vkCreateShadersEXT-pCreateInfos-08405YNegativeShaderObject.LinkedTaskAndMeshNoTaskShadersexplicitvkCreateShadersEXTcoreIf there is any element of pCreateInfos whose stage is VK_SHADER_STAGE_MESH_BIT_EXT and whose flags member includes both VK_SHADER_CREATE_LINK_STAGE_BIT_EXT and VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT, there must be no element of pCreateInfos whose stage is VK_SHADER_STAGE_TASK_BIT_EXT and whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT
VUID-vkCreateShadersEXT-pCreateInfos-08409YNegativeShaderObject.MissingNextStageexplicitvkCreateShadersEXTcoreFor each element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, if there is any other element of pCreateInfos whose stage is logically later than the stage of the former and whose flags member also includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, the nextStage of the former must be equal to the stage of the element with the logically earliest stage following the stage of the former whose flags member also includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT
VUID-vkCreateShadersEXT-pCreateInfos-08410YNegativeShaderObject.SameLinkedStageexplicitvkCreateShadersEXTcoreThe stage member of each element of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT must be unique
VUID-vkCreateShadersEXT-pCreateInfos-08411YNegativeShaderObject.LinkedStagesWithDifferentCodeTypeexplicitvkCreateShadersEXTcoreThe codeType member of all elements of pCreateInfos whose flags member includes VK_SHADER_CREATE_LINK_STAGE_BIT_EXT must be the same
VUID-vkCreateShadersEXT-pCreateInfos-08867YNegativeShaderObject.MismatchedTessellationSubdivisionexplicitvkCreateShadersEXTcoreIf pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying the type of subdivision, it must match the subdivision type specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage
VUID-vkCreateShadersEXT-pCreateInfos-08868YNegativeShaderObject.MismatchedTessellationOrientationexplicitvkCreateShadersEXTcoreIf pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying the orientation of triangles, it must match the triangle orientation specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage
VUID-vkCreateShadersEXT-pCreateInfos-08869YNegativeShaderObject.MismatchedTessellationPointModeexplicitvkCreateShadersEXTcoreIf pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying PointMode, the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage must also contain an OpExecutionMode instruction specifying PointMode
VUID-vkCreateShadersEXT-pCreateInfos-08870YNegativeShaderObject.MismatchedTessellationSpacingexplicitvkCreateShadersEXTcoreIf pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitives, it must match the segment spacing specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage
VUID-vkCreateShadersEXT-pCreateInfos-08871YNegativeShaderObject.MismatchedTessellationOutputPatchSizeexplicitvkCreateShadersEXTcoreIf pCreateInfos contains elements with both VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, both elements' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT, both elements' codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage's pCode contains an OpExecutionMode instruction specifying the output patch size, it must match the output patch size specified in the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage
VUID-vkCreateShadersEXT-pCreateInfos-parameterYNoneimplicitvkCreateShadersEXTcorepCreateInfos must be a valid pointer to an array of createInfoCount valid VkShaderCreateInfoEXT structures
VUID-vkCreateShadersEXT-pShaders-parameterYNoneimplicitvkCreateShadersEXTcorepShaders must be a valid pointer to an array of createInfoCount VkShaderEXT handles
VUID-vkCreateSharedSwapchainsKHR-device-parameterYNoneimplicitvkCreateSharedSwapchainsKHRcoredevice must be a valid VkDevice handle
VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameterNNoneimplicitvkCreateSharedSwapchainsKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameterYNoneimplicitvkCreateSharedSwapchainsKHRcorepCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures
VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameterYNoneimplicitvkCreateSharedSwapchainsKHRcorepSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles
VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylengthYNoneimplicitvkCreateSharedSwapchainsKHRcoreswapchainCount must be greater than 0
VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGPcoreinstance must be a valid VkInstance handle
VUID-vkCreateStreamDescriptorSurfaceGGP-pAllocator-parameterNNoneimplicitvkCreateStreamDescriptorSurfaceGGPcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGPcorepCreateInfo must be a valid pointer to a valid VkStreamDescriptorSurfaceCreateInfoGGP structure
VUID-vkCreateStreamDescriptorSurfaceGGP-pSurface-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGPcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateSwapchainKHR-device-parameterYNoneimplicitvkCreateSwapchainKHRcoredevice must be a valid VkDevice handle
VUID-vkCreateSwapchainKHR-pAllocator-parameterNNoneimplicitvkCreateSwapchainKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSwapchainKHR-pCreateInfo-parameterYNoneimplicitvkCreateSwapchainKHRcorepCreateInfo must be a valid pointer to a valid VkSwapchainCreateInfoKHR structure
VUID-vkCreateSwapchainKHR-pSwapchain-parameterYNoneimplicitvkCreateSwapchainKHRcorepSwapchain must be a valid pointer to a VkSwapchainKHR handle
VUID-vkCreateValidationCacheEXT-device-parameterYNoneimplicitvkCreateValidationCacheEXTcoredevice must be a valid VkDevice handle
VUID-vkCreateValidationCacheEXT-pAllocator-parameterNNoneimplicitvkCreateValidationCacheEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateValidationCacheEXT-pCreateInfo-parameterYNoneimplicitvkCreateValidationCacheEXTcorepCreateInfo must be a valid pointer to a valid VkValidationCacheCreateInfoEXT structure
VUID-vkCreateValidationCacheEXT-pValidationCache-parameterYNoneimplicitvkCreateValidationCacheEXTcorepValidationCache must be a valid pointer to a VkValidationCacheEXT handle
VUID-vkCreateViSurfaceNN-instance-parameterYNoneimplicitvkCreateViSurfaceNNcoreinstance must be a valid VkInstance handle
VUID-vkCreateViSurfaceNN-pAllocator-parameterNNoneimplicitvkCreateViSurfaceNNcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateViSurfaceNN-pCreateInfo-parameterYNoneimplicitvkCreateViSurfaceNNcorepCreateInfo must be a valid pointer to a valid VkViSurfaceCreateInfoNN structure
VUID-vkCreateViSurfaceNN-pSurface-parameterYNoneimplicitvkCreateViSurfaceNNcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateVideoSessionKHR-device-parameterYNoneimplicitvkCreateVideoSessionKHRcoredevice must be a valid VkDevice handle
VUID-vkCreateVideoSessionKHR-pAllocator-parameterNNoneimplicitvkCreateVideoSessionKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateVideoSessionKHR-pCreateInfo-parameterYNoneimplicitvkCreateVideoSessionKHRcorepCreateInfo must be a valid pointer to a valid VkVideoSessionCreateInfoKHR structure
VUID-vkCreateVideoSessionKHR-pVideoSession-parameterYNoneimplicitvkCreateVideoSessionKHRcorepVideoSession must be a valid pointer to a VkVideoSessionKHR handle
VUID-vkCreateVideoSessionParametersKHR-device-parameterYNoneimplicitvkCreateVideoSessionParametersKHRcoredevice must be a valid VkDevice handle
VUID-vkCreateVideoSessionParametersKHR-pAllocator-parameterNNoneimplicitvkCreateVideoSessionParametersKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateVideoSessionParametersKHR-pCreateInfo-parameterYNoneimplicitvkCreateVideoSessionParametersKHRcorepCreateInfo must be a valid pointer to a valid VkVideoSessionParametersCreateInfoKHR structure
VUID-vkCreateVideoSessionParametersKHR-pVideoSessionParameters-parameterYNoneimplicitvkCreateVideoSessionParametersKHRcorepVideoSessionParameters must be a valid pointer to a VkVideoSessionParametersKHR handle
VUID-vkCreateWaylandSurfaceKHR-instance-parameterYNoneimplicitvkCreateWaylandSurfaceKHRcoreinstance must be a valid VkInstance handle
VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateWaylandSurfaceKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateWaylandSurfaceKHRcorepCreateInfo must be a valid pointer to a valid VkWaylandSurfaceCreateInfoKHR structure
VUID-vkCreateWaylandSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateWaylandSurfaceKHRcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateWin32SurfaceKHR-instance-parameterYNoneimplicitvkCreateWin32SurfaceKHRcoreinstance must be a valid VkInstance handle
VUID-vkCreateWin32SurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateWin32SurfaceKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateWin32SurfaceKHRcorepCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure
VUID-vkCreateWin32SurfaceKHR-pSurface-parameterYNoneimplicitvkCreateWin32SurfaceKHRcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateXcbSurfaceKHR-instance-parameterYNoneimplicitvkCreateXcbSurfaceKHRcoreinstance must be a valid VkInstance handle
VUID-vkCreateXcbSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateXcbSurfaceKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateXcbSurfaceKHRcorepCreateInfo must be a valid pointer to a valid VkXcbSurfaceCreateInfoKHR structure
VUID-vkCreateXcbSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateXcbSurfaceKHRcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateXlibSurfaceKHR-instance-parameterYNoneimplicitvkCreateXlibSurfaceKHRcoreinstance must be a valid VkInstance handle
VUID-vkCreateXlibSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateXlibSurfaceKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateXlibSurfaceKHRcorepCreateInfo must be a valid pointer to a valid VkXlibSurfaceCreateInfoKHR structure
VUID-vkCreateXlibSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateXlibSurfaceKHRcorepSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkDebugMarkerSetObjectNameEXT-device-parameterYNoneimplicitvkDebugMarkerSetObjectNameEXTcoredevice must be a valid VkDevice handle
VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameterYNoneimplicitvkDebugMarkerSetObjectNameEXTcorepNameInfo must be a valid pointer to a valid VkDebugMarkerObjectNameInfoEXT structure
VUID-vkDebugMarkerSetObjectTagEXT-device-parameterYNoneimplicitvkDebugMarkerSetObjectTagEXTcoredevice must be a valid VkDevice handle
VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameterYNoneimplicitvkDebugMarkerSetObjectTagEXTcorepTagInfo must be a valid pointer to a valid VkDebugMarkerObjectTagInfoEXT structure
VUID-vkDebugReportMessageEXT-flags-parameterYNoneimplicitvkDebugReportMessageEXTcoreflags must be a valid combination of VkDebugReportFlagBitsEXT values
VUID-vkDebugReportMessageEXT-flags-requiredbitmaskYNoneimplicitvkDebugReportMessageEXTcoreflags must not be 0
VUID-vkDebugReportMessageEXT-instance-parameterYNoneimplicitvkDebugReportMessageEXTcoreinstance must be a valid VkInstance handle
VUID-vkDebugReportMessageEXT-object-01241NNoneexplicitvkDebugReportMessageEXTcoreobject must be a Vulkan object or VK_NULL_HANDLE
VUID-vkDebugReportMessageEXT-objectType-01498NNoneexplicitvkDebugReportMessageEXTcoreIf objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-vkDebugReportMessageEXT-objectType-parameterYNoneimplicitvkDebugReportMessageEXTcoreobjectType must be a valid VkDebugReportObjectTypeEXT value
VUID-vkDebugReportMessageEXT-pLayerPrefix-parameterYNoneimplicitvkDebugReportMessageEXTcorepLayerPrefix must be a null-terminated UTF-8 string
VUID-vkDebugReportMessageEXT-pMessage-parameterYNoneimplicitvkDebugReportMessageEXTcorepMessage must be a null-terminated UTF-8 string
VUID-vkDeferredOperationJoinKHR-device-parameterYNoneimplicitvkDeferredOperationJoinKHRcoredevice must be a valid VkDevice handle
VUID-vkDeferredOperationJoinKHR-operation-parameterYNoneimplicitvkDeferredOperationJoinKHRcoreoperation must be a valid VkDeferredOperationKHR handle
VUID-vkDeferredOperationJoinKHR-operation-parentYNoneimplicitvkDeferredOperationJoinKHRcoreoperation must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442YNegativeRayTracing.ObjInUseCmdBuildAccelerationStructureKHRexplicitvkDestroyAccelerationStructureKHRcoreAll submitted commands that refer to accelerationStructure must have completed execution
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443YNoneexplicitvkDestroyAccelerationStructureKHRcoreIf VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444YNoneexplicitvkDestroyAccelerationStructureKHRcoreIf no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-08934YNegativeRayTracing.CreateAccelerationStructureFeatureexplicitvkDestroyAccelerationStructureKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameterYNoneimplicitvkDestroyAccelerationStructureKHRcoreIf accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parentYNoneimplicitvkDestroyAccelerationStructureKHRcoreIf accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureKHR-device-parameterYNoneimplicitvkDestroyAccelerationStructureKHRcoredevice must be a valid VkDevice handle
VUID-vkDestroyAccelerationStructureKHR-pAllocator-parameterNNoneimplicitvkDestroyAccelerationStructureKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03752YNegativeRayTracingNV.ObjInUseCmdBuildAccelerationStructureexplicitvkDestroyAccelerationStructureNVcoreAll submitted commands that refer to accelerationStructure must have completed execution
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753YNoneexplicitvkDestroyAccelerationStructureNVcoreIf VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754YNoneexplicitvkDestroyAccelerationStructureNVcoreIf no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameterYNoneimplicitvkDestroyAccelerationStructureNVcoreIf accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parentYNoneimplicitvkDestroyAccelerationStructureNVcoreIf accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureNV-device-parameterYNoneimplicitvkDestroyAccelerationStructureNVcoredevice must be a valid VkDevice handle
VUID-vkDestroyAccelerationStructureNV-pAllocator-parameterNNoneimplicitvkDestroyAccelerationStructureNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBuffer-buffer-00922YNegativeObjectLifetime.PushDescriptorUniformDestroySignaled, NegativeRayTracingNV.ObjInUseCmdBuildAccelerationStructureexplicitvkDestroyBuffercoreAll submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution
VUID-vkDestroyBuffer-buffer-00923YNoneexplicitvkDestroyBuffercoreIf VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here
VUID-vkDestroyBuffer-buffer-00924YNoneexplicitvkDestroyBuffercoreIf no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL
VUID-vkDestroyBuffer-buffer-parameterYNegativeBuffer.DoubleDeleteimplicitvkDestroyBuffercoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-vkDestroyBuffer-buffer-parentYNoneimplicitvkDestroyBuffercoreIf buffer is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyBuffer-device-parameterYNoneimplicitvkDestroyBuffercoredevice must be a valid VkDevice handle
VUID-vkDestroyBuffer-pAllocator-parameterNNoneimplicitvkDestroyBuffercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBufferCollectionFUCHSIA-collection-06407NNoneexplicitvkDestroyBufferCollectionFUCHSIAcoreVkImage and VkBuffer objects that referenced collection upon creation by inclusion of a VkBufferCollectionImageCreateInfoFUCHSIA or VkBufferCollectionBufferCreateInfoFUCHSIA chained to their VkImageCreateInfo or VkBufferCreateInfo structures respectively, may outlive collection
VUID-vkDestroyBufferCollectionFUCHSIA-collection-parameterYNoneimplicitvkDestroyBufferCollectionFUCHSIAcorecollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkDestroyBufferCollectionFUCHSIA-collection-parentYNoneimplicitvkDestroyBufferCollectionFUCHSIAcorecollection must have been created, allocated, or retrieved from device
VUID-vkDestroyBufferCollectionFUCHSIA-device-parameterYNoneimplicitvkDestroyBufferCollectionFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkDestroyBufferCollectionFUCHSIA-pAllocator-parameterNNoneimplicitvkDestroyBufferCollectionFUCHSIAcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBufferView-bufferView-00936YNegativeObjectLifetime.BufferViewInUseDestroyedSignaledexplicitvkDestroyBufferViewcoreAll submitted commands that refer to bufferView must have completed execution
VUID-vkDestroyBufferView-bufferView-00937YNoneexplicitvkDestroyBufferViewcoreIf VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here
VUID-vkDestroyBufferView-bufferView-00938YNoneexplicitvkDestroyBufferViewcoreIf no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL
VUID-vkDestroyBufferView-bufferView-parameterYNoneimplicitvkDestroyBufferViewcoreIf bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle
VUID-vkDestroyBufferView-bufferView-parentYNoneimplicitvkDestroyBufferViewcoreIf bufferView is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyBufferView-device-parameterYNoneimplicitvkDestroyBufferViewcoredevice must be a valid VkDevice handle
VUID-vkDestroyBufferView-pAllocator-parameterNNoneimplicitvkDestroyBufferViewcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCommandPool-commandPool-00041YNoneexplicitvkDestroyCommandPoolcoreAll VkCommandBuffer objects allocated from commandPool must not be in the pending state
VUID-vkDestroyCommandPool-commandPool-00042YNoneexplicitvkDestroyCommandPoolcoreIf VkAllocationCallbacks were provided when commandPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyCommandPool-commandPool-00043YNoneexplicitvkDestroyCommandPoolcoreIf no VkAllocationCallbacks were provided when commandPool was created, pAllocator must be NULL
VUID-vkDestroyCommandPool-commandPool-parameterYNoneimplicitvkDestroyCommandPoolcoreIf commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle
VUID-vkDestroyCommandPool-commandPool-parentYNoneimplicitvkDestroyCommandPoolcoreIf commandPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyCommandPool-device-parameterYNoneimplicitvkDestroyCommandPoolcoredevice must be a valid VkDevice handle
VUID-vkDestroyCommandPool-pAllocator-parameterNNoneimplicitvkDestroyCommandPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCuFunctionNVX-device-parameterYNoneimplicitvkDestroyCuFunctionNVXcoredevice must be a valid VkDevice handle
VUID-vkDestroyCuFunctionNVX-function-parameterYNoneimplicitvkDestroyCuFunctionNVXcorefunction must be a valid VkCuFunctionNVX handle
VUID-vkDestroyCuFunctionNVX-function-parentYNoneimplicitvkDestroyCuFunctionNVXcorefunction must have been created, allocated, or retrieved from device
VUID-vkDestroyCuFunctionNVX-pAllocator-parameterNNoneimplicitvkDestroyCuFunctionNVXcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCuModuleNVX-device-parameterYNoneimplicitvkDestroyCuModuleNVXcoredevice must be a valid VkDevice handle
VUID-vkDestroyCuModuleNVX-module-parameterYNoneimplicitvkDestroyCuModuleNVXcoremodule must be a valid VkCuModuleNVX handle
VUID-vkDestroyCuModuleNVX-module-parentYNoneimplicitvkDestroyCuModuleNVXcoremodule must have been created, allocated, or retrieved from device
VUID-vkDestroyCuModuleNVX-pAllocator-parameterNNoneimplicitvkDestroyCuModuleNVXcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCudaFunctionNV-device-parameterYNoneimplicitvkDestroyCudaFunctionNVcoredevice must be a valid VkDevice handle
VUID-vkDestroyCudaFunctionNV-function-parameterYNoneimplicitvkDestroyCudaFunctionNVcorefunction must be a valid VkCudaFunctionNV handle
VUID-vkDestroyCudaFunctionNV-function-parentYNoneimplicitvkDestroyCudaFunctionNVcorefunction must have been created, allocated, or retrieved from device
VUID-vkDestroyCudaFunctionNV-pAllocator-parameterNNoneimplicitvkDestroyCudaFunctionNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCudaModuleNV-device-parameterYNoneimplicitvkDestroyCudaModuleNVcoredevice must be a valid VkDevice handle
VUID-vkDestroyCudaModuleNV-module-parameterYNoneimplicitvkDestroyCudaModuleNVcoremodule must be a valid VkCudaModuleNV handle
VUID-vkDestroyCudaModuleNV-module-parentYNoneimplicitvkDestroyCudaModuleNVcoremodule must have been created, allocated, or retrieved from device
VUID-vkDestroyCudaModuleNV-pAllocator-parameterNNoneimplicitvkDestroyCudaModuleNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDebugReportCallbackEXT-callback-parameterYNoneimplicitvkDestroyDebugReportCallbackEXTcoreIf callback is not VK_NULL_HANDLE, callback must be a valid VkDebugReportCallbackEXT handle
VUID-vkDestroyDebugReportCallbackEXT-callback-parentYNegativeParent.Instance_DebugReportCallbackimplicitvkDestroyDebugReportCallbackEXTcoreIf callback is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroyDebugReportCallbackEXT-instance-01242YNoneexplicitvkDestroyDebugReportCallbackEXTcoreIf VkAllocationCallbacks were provided when callback was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDebugReportCallbackEXT-instance-01243YNoneexplicitvkDestroyDebugReportCallbackEXTcoreIf no VkAllocationCallbacks were provided when callback was created, pAllocator must be NULL
VUID-vkDestroyDebugReportCallbackEXT-instance-parameterYNoneimplicitvkDestroyDebugReportCallbackEXTcoreinstance must be a valid VkInstance handle
VUID-vkDestroyDebugReportCallbackEXT-pAllocator-parameterNNoneimplicitvkDestroyDebugReportCallbackEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameterYNoneimplicitvkDestroyDebugUtilsMessengerEXTcoreinstance must be a valid VkInstance handle
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915YNoneexplicitvkDestroyDebugUtilsMessengerEXTcoreIf VkAllocationCallbacks were provided when messenger was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916YNoneexplicitvkDestroyDebugUtilsMessengerEXTcoreIf no VkAllocationCallbacks were provided when messenger was created, pAllocator must be NULL
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameterYNoneimplicitvkDestroyDebugUtilsMessengerEXTcoreIf messenger is not VK_NULL_HANDLE, messenger must be a valid VkDebugUtilsMessengerEXT handle
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parentYNegativeParent.Instance_DebugUtilsMessengerimplicitvkDestroyDebugUtilsMessengerEXTcoreIf messenger is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameterNNoneimplicitvkDestroyDebugUtilsMessengerEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDeferredOperationKHR-device-parameterYNoneimplicitvkDestroyDeferredOperationKHRcoredevice must be a valid VkDevice handle
VUID-vkDestroyDeferredOperationKHR-operation-03434YNoneexplicitvkDestroyDeferredOperationKHRcoreIf VkAllocationCallbacks were provided when operation was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDeferredOperationKHR-operation-03435YNoneexplicitvkDestroyDeferredOperationKHRcoreIf no VkAllocationCallbacks were provided when operation was created, pAllocator must be NULL
VUID-vkDestroyDeferredOperationKHR-operation-03436YNoneexplicitvkDestroyDeferredOperationKHRcoreoperation must be completed
VUID-vkDestroyDeferredOperationKHR-operation-parameterYNoneimplicitvkDestroyDeferredOperationKHRcoreIf operation is not VK_NULL_HANDLE, operation must be a valid VkDeferredOperationKHR handle
VUID-vkDestroyDeferredOperationKHR-operation-parentYNoneimplicitvkDestroyDeferredOperationKHRcoreIf operation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDeferredOperationKHR-pAllocator-parameterNNoneimplicitvkDestroyDeferredOperationKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorPool-descriptorPool-00303YNegativeObjectLifetime.DescriptorPoolInUseDestroyedSignaledexplicitvkDestroyDescriptorPoolcoreAll submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution
VUID-vkDestroyDescriptorPool-descriptorPool-00304YNoneexplicitvkDestroyDescriptorPoolcoreIf VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorPool-descriptorPool-00305YNoneexplicitvkDestroyDescriptorPoolcoreIf no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL
VUID-vkDestroyDescriptorPool-descriptorPool-parameterYNoneimplicitvkDestroyDescriptorPoolcoreIf descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle
VUID-vkDestroyDescriptorPool-descriptorPool-parentYNoneimplicitvkDestroyDescriptorPoolcoreIf descriptorPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorPool-device-parameterYNoneimplicitvkDestroyDescriptorPoolcoredevice must be a valid VkDevice handle
VUID-vkDestroyDescriptorPool-pAllocator-parameterNNoneimplicitvkDestroyDescriptorPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284YNoneexplicitvkDestroyDescriptorSetLayoutcoreIf VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285YNoneexplicitvkDestroyDescriptorSetLayoutcoreIf no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameterYNoneimplicitvkDestroyDescriptorSetLayoutcoreIf descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parentYNoneimplicitvkDestroyDescriptorSetLayoutcoreIf descriptorSetLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorSetLayout-device-parameterYNoneimplicitvkDestroyDescriptorSetLayoutcoredevice must be a valid VkDevice handle
VUID-vkDestroyDescriptorSetLayout-pAllocator-parameterNNoneimplicitvkDestroyDescriptorSetLayoutcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356YNoneexplicitvkDestroyDescriptorUpdateTemplatecoreIf VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357YNoneexplicitvkDestroyDescriptorUpdateTemplatecoreIf no VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, pAllocator must be NULL
VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameterYNoneimplicitvkDestroyDescriptorUpdateTemplatecoreIf descriptorUpdateTemplate is not VK_NULL_HANDLE, descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parentYNoneimplicitvkDestroyDescriptorUpdateTemplatecoreIf descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorUpdateTemplate-device-parameterYNoneimplicitvkDestroyDescriptorUpdateTemplatecoredevice must be a valid VkDevice handle
VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameterNNoneimplicitvkDestroyDescriptorUpdateTemplatecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDevice-device-00379YNoneexplicitvkDestroyDevicecoreIf VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDevice-device-00380YNoneexplicitvkDestroyDevicecoreIf no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL
VUID-vkDestroyDevice-device-05137YNegativeObjectLifetime.LeakABuffer, NegativeObjectLifetime.LeakAnObject, NegativeWsi.LeakASwapchainexplicitvkDestroyDevicecoreAll child objects created on device must have been destroyed prior to destroying device
VUID-vkDestroyDevice-device-parameterYNoneimplicitvkDestroyDevicecoreIf device is not NULL, device must be a valid VkDevice handle
VUID-vkDestroyDevice-pAllocator-parameterNNoneimplicitvkDestroyDevicecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyEvent-device-parameterYNoneimplicitvkDestroyEventcoredevice must be a valid VkDevice handle
VUID-vkDestroyEvent-event-01145YNegativeObjectLifetime.InUseDestroyedSignaledexplicitvkDestroyEventcoreAll submitted commands that refer to event must have completed execution
VUID-vkDestroyEvent-event-01146YNoneexplicitvkDestroyEventcoreIf VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here
VUID-vkDestroyEvent-event-01147YNoneexplicitvkDestroyEventcoreIf no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL
VUID-vkDestroyEvent-event-parameterYNoneimplicitvkDestroyEventcoreIf event is not VK_NULL_HANDLE, event must be a valid VkEvent handle
VUID-vkDestroyEvent-event-parentYNoneimplicitvkDestroyEventcoreIf event is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyEvent-pAllocator-parameterNNoneimplicitvkDestroyEventcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyFence-device-parameterYNoneimplicitvkDestroyFencecoredevice must be a valid VkDevice handle
VUID-vkDestroyFence-fence-01120YNegativeObjectLifetime.InUseDestroyedSignaledexplicitvkDestroyFencecoreAll queue submission commands that refer to fence must have completed execution
VUID-vkDestroyFence-fence-01121YNoneexplicitvkDestroyFencecoreIf VkAllocationCallbacks were provided when fence was created, a compatible set of callbacks must be provided here
VUID-vkDestroyFence-fence-01122YNoneexplicitvkDestroyFencecoreIf no VkAllocationCallbacks were provided when fence was created, pAllocator must be NULL
VUID-vkDestroyFence-fence-parameterYNoneimplicitvkDestroyFencecoreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkDestroyFence-fence-parentYNoneimplicitvkDestroyFencecoreIf fence is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyFence-pAllocator-parameterNNoneimplicitvkDestroyFencecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyFramebuffer-device-parameterYNoneimplicitvkDestroyFramebuffercoredevice must be a valid VkDevice handle
VUID-vkDestroyFramebuffer-framebuffer-00892YNegativeObjectLifetime.FramebufferInUseDestroyedSignaledexplicitvkDestroyFramebuffercoreAll submitted commands that refer to framebuffer must have completed execution
VUID-vkDestroyFramebuffer-framebuffer-00893YNoneexplicitvkDestroyFramebuffercoreIf VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here
VUID-vkDestroyFramebuffer-framebuffer-00894YNoneexplicitvkDestroyFramebuffercoreIf no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL
VUID-vkDestroyFramebuffer-framebuffer-parameterYNoneimplicitvkDestroyFramebuffercoreIf framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle
VUID-vkDestroyFramebuffer-framebuffer-parentYNoneimplicitvkDestroyFramebuffercoreIf framebuffer is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyFramebuffer-pAllocator-parameterNNoneimplicitvkDestroyFramebuffercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyImage-device-parameterYNoneimplicitvkDestroyImagecoredevice must be a valid VkDevice handle
VUID-vkDestroyImage-image-01000YNegativeObjectLifetime.FramebufferImageInUseDestroyedSignaledexplicitvkDestroyImagecoreAll submitted commands that refer to image, either directly or via a VkImageView, must have completed execution
VUID-vkDestroyImage-image-01001YNoneexplicitvkDestroyImagecoreIf VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here
VUID-vkDestroyImage-image-01002YNoneexplicitvkDestroyImagecoreIf no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL
VUID-vkDestroyImage-image-04882YNegativeWsi.GetSwapchainImageAndTryDestroyexplicitvkDestroyImagecoreimage must not have been acquired from vkGetSwapchainImagesKHR
VUID-vkDestroyImage-image-parameterYNoneimplicitvkDestroyImagecoreIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-vkDestroyImage-image-parentYNoneimplicitvkDestroyImagecoreIf image is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyImage-pAllocator-parameterNNoneimplicitvkDestroyImagecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyImageView-device-parameterYNoneimplicitvkDestroyImageViewcoredevice must be a valid VkDevice handle
VUID-vkDestroyImageView-imageView-01026YNegativeObjectLifetime.ImageViewInUseDestroyedSignaledexplicitvkDestroyImageViewcoreAll submitted commands that refer to imageView must have completed execution
VUID-vkDestroyImageView-imageView-01027YNoneexplicitvkDestroyImageViewcoreIf VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here
VUID-vkDestroyImageView-imageView-01028YNoneexplicitvkDestroyImageViewcoreIf no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL
VUID-vkDestroyImageView-imageView-parameterYNoneimplicitvkDestroyImageViewcoreIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkDestroyImageView-imageView-parentYNoneimplicitvkDestroyImageViewcoreIf imageView is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyImageView-pAllocator-parameterNNoneimplicitvkDestroyImageViewcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyIndirectCommandsLayoutNV-device-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutNVcoredevice must be a valid VkDevice handle
VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941NNoneexplicitvkDestroyIndirectCommandsLayoutNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938NNoneexplicitvkDestroyIndirectCommandsLayoutNVcoreAll submitted commands that refer to indirectCommandsLayout must have completed execution
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939NNoneexplicitvkDestroyIndirectCommandsLayoutNVcoreIf VkAllocationCallbacks were provided when indirectCommandsLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940NNoneexplicitvkDestroyIndirectCommandsLayoutNVcoreIf no VkAllocationCallbacks were provided when indirectCommandsLayout was created, pAllocator must be NULL
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutNVcoreIf indirectCommandsLayout is not VK_NULL_HANDLE, indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parentYNoneimplicitvkDestroyIndirectCommandsLayoutNVcoreIf indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameterNNoneimplicitvkDestroyIndirectCommandsLayoutNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyInstance-instance-00629YNegativeObjectLifetime.LeakABuffer, NegativeObjectLifetime.LeakAnObject, NegativeWsi.LeakASwapchainexplicitvkDestroyInstancecoreAll child objects created using instance must have been destroyed prior to destroying instance
VUID-vkDestroyInstance-instance-00630YNoneexplicitvkDestroyInstancecoreIf VkAllocationCallbacks were provided when instance was created, a compatible set of callbacks must be provided here
VUID-vkDestroyInstance-instance-00631YNegativeInstanceless.DestroyInstanceAllocationCallbacksCompatibilityexplicitvkDestroyInstancecoreIf no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL
VUID-vkDestroyInstance-instance-parameterYNoneimplicitvkDestroyInstancecoreIf instance is not NULL, instance must be a valid VkInstance handle
VUID-vkDestroyInstance-pAllocator-parameterNNoneimplicitvkDestroyInstancecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyMicromapEXT-device-parameterYNoneimplicitvkDestroyMicromapEXTcoredevice must be a valid VkDevice handle
VUID-vkDestroyMicromapEXT-micromap-07441NNoneexplicitvkDestroyMicromapEXTcoreAll submitted commands that refer to micromap must have completed execution
VUID-vkDestroyMicromapEXT-micromap-07442YNoneexplicitvkDestroyMicromapEXTcoreIf VkAllocationCallbacks were provided when micromap was created, a compatible set of callbacks must be provided here
VUID-vkDestroyMicromapEXT-micromap-07443YNoneexplicitvkDestroyMicromapEXTcoreIf no VkAllocationCallbacks were provided when micromap was created, pAllocator must be NULL
VUID-vkDestroyMicromapEXT-micromap-parameterYNoneimplicitvkDestroyMicromapEXTcoreIf micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle
VUID-vkDestroyMicromapEXT-micromap-parentYNoneimplicitvkDestroyMicromapEXTcoreIf micromap is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyMicromapEXT-pAllocator-parameterNNoneimplicitvkDestroyMicromapEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyOpticalFlowSessionNV-device-parameterYNoneimplicitvkDestroyOpticalFlowSessionNVcoredevice must be a valid VkDevice handle
VUID-vkDestroyOpticalFlowSessionNV-pAllocator-parameterNNoneimplicitvkDestroyOpticalFlowSessionNVcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyOpticalFlowSessionNV-session-parameterYNoneimplicitvkDestroyOpticalFlowSessionNVcoresession must be a valid VkOpticalFlowSessionNV handle
VUID-vkDestroyOpticalFlowSessionNV-session-parentYNoneimplicitvkDestroyOpticalFlowSessionNVcoresession must have been created, allocated, or retrieved from device
VUID-vkDestroyPipeline-device-parameterYNoneimplicitvkDestroyPipelinecoredevice must be a valid VkDevice handle
VUID-vkDestroyPipeline-pAllocator-parameterNNoneimplicitvkDestroyPipelinecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipeline-pipeline-00765YNegativeObjectLifetime.PipelineInUseDestroyedSignaledexplicitvkDestroyPipelinecoreAll submitted commands that refer to pipeline must have completed execution
VUID-vkDestroyPipeline-pipeline-00766YNoneexplicitvkDestroyPipelinecoreIf VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipeline-pipeline-00767YNoneexplicitvkDestroyPipelinecoreIf no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL
VUID-vkDestroyPipeline-pipeline-parameterYNoneimplicitvkDestroyPipelinecoreIf pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle
VUID-vkDestroyPipeline-pipeline-parentYNoneimplicitvkDestroyPipelinecoreIf pipeline is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPipelineCache-device-parameterYNoneimplicitvkDestroyPipelineCachecoredevice must be a valid VkDevice handle
VUID-vkDestroyPipelineCache-pAllocator-parameterNNoneimplicitvkDestroyPipelineCachecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipelineCache-pipelineCache-00771YNoneexplicitvkDestroyPipelineCachecoreIf VkAllocationCallbacks were provided when pipelineCache was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipelineCache-pipelineCache-00772YNoneexplicitvkDestroyPipelineCachecoreIf no VkAllocationCallbacks were provided when pipelineCache was created, pAllocator must be NULL
VUID-vkDestroyPipelineCache-pipelineCache-parameterYNoneimplicitvkDestroyPipelineCachecoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkDestroyPipelineCache-pipelineCache-parentYNoneimplicitvkDestroyPipelineCachecoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPipelineLayout-device-parameterYNoneimplicitvkDestroyPipelineLayoutcoredevice must be a valid VkDevice handle
VUID-vkDestroyPipelineLayout-pAllocator-parameterNNoneimplicitvkDestroyPipelineLayoutcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipelineLayout-pipelineLayout-00299YNoneexplicitvkDestroyPipelineLayoutcoreIf VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipelineLayout-pipelineLayout-00300YNoneexplicitvkDestroyPipelineLayoutcoreIf no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL
VUID-vkDestroyPipelineLayout-pipelineLayout-02004NNoneexplicitvkDestroyPipelineLayoutcorepipelineLayout must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when vkDestroyPipelineLayout is called
VUID-vkDestroyPipelineLayout-pipelineLayout-parameterYNoneimplicitvkDestroyPipelineLayoutcoreIf pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle
VUID-vkDestroyPipelineLayout-pipelineLayout-parentYNoneimplicitvkDestroyPipelineLayoutcoreIf pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPrivateDataSlot-device-parameterYNoneimplicitvkDestroyPrivateDataSlotcoredevice must be a valid VkDevice handle
VUID-vkDestroyPrivateDataSlot-pAllocator-parameterNNoneimplicitvkDestroyPrivateDataSlotcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062YNoneexplicitvkDestroyPrivateDataSlotcoreIf VkAllocationCallbacks were provided when privateDataSlot was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063YNoneexplicitvkDestroyPrivateDataSlotcoreIf no VkAllocationCallbacks were provided when privateDataSlot was created, pAllocator must be NULL
VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameterYNoneimplicitvkDestroyPrivateDataSlotcoreIf privateDataSlot is not VK_NULL_HANDLE, privateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkDestroyPrivateDataSlot-privateDataSlot-parentYNoneimplicitvkDestroyPrivateDataSlotcoreIf privateDataSlot is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyQueryPool-device-parameterYNoneimplicitvkDestroyQueryPoolcoredevice must be a valid VkDevice handle
VUID-vkDestroyQueryPool-pAllocator-parameterNNoneimplicitvkDestroyQueryPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyQueryPool-queryPool-00793YNegativeQuery.DestroyActiveQueryPool, NegativeQuery.PoolInUseDestroyedSignaledexplicitvkDestroyQueryPoolcoreAll submitted commands that refer to queryPool must have completed execution
VUID-vkDestroyQueryPool-queryPool-00794YNoneexplicitvkDestroyQueryPoolcoreIf VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyQueryPool-queryPool-00795YNoneexplicitvkDestroyQueryPoolcoreIf no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL
VUID-vkDestroyQueryPool-queryPool-parameterYNegativeQuery.DestroyWithoutQueryPoolimplicitvkDestroyQueryPoolcoreIf queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle
VUID-vkDestroyQueryPool-queryPool-parentYNoneimplicitvkDestroyQueryPoolcoreIf queryPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyRenderPass-device-parameterYNoneimplicitvkDestroyRenderPasscoredevice must be a valid VkDevice handle
VUID-vkDestroyRenderPass-pAllocator-parameterNNoneimplicitvkDestroyRenderPasscoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyRenderPass-renderPass-00873YNegativeRenderPass.DestroyWhileInUseexplicitvkDestroyRenderPasscoreAll submitted commands that refer to renderPass must have completed execution
VUID-vkDestroyRenderPass-renderPass-00874YNoneexplicitvkDestroyRenderPasscoreIf VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here
VUID-vkDestroyRenderPass-renderPass-00875YNoneexplicitvkDestroyRenderPasscoreIf no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL
VUID-vkDestroyRenderPass-renderPass-parameterYNoneimplicitvkDestroyRenderPasscoreIf renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle
VUID-vkDestroyRenderPass-renderPass-parentYVkLayerTest.UseObjectWithWrongDeviceimplicitvkDestroyRenderPasscoreIf renderPass is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySampler-device-parameterYNoneimplicitvkDestroySamplercoredevice must be a valid VkDevice handle
VUID-vkDestroySampler-pAllocator-parameterNNoneimplicitvkDestroySamplercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySampler-sampler-01082YNegativeObjectLifetime.SamplerInUseDestroyedSignaledexplicitvkDestroySamplercoreAll submitted commands that refer to sampler must have completed execution
VUID-vkDestroySampler-sampler-01083YNoneexplicitvkDestroySamplercoreIf VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here
VUID-vkDestroySampler-sampler-01084YNoneexplicitvkDestroySamplercoreIf no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL
VUID-vkDestroySampler-sampler-parameterYNoneimplicitvkDestroySamplercoreIf sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle
VUID-vkDestroySampler-sampler-parentYNoneimplicitvkDestroySamplercoreIf sampler is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySamplerYcbcrConversion-device-parameterYNoneimplicitvkDestroySamplerYcbcrConversioncoredevice must be a valid VkDevice handle
VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameterNNoneimplicitvkDestroySamplerYcbcrConversioncoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameterYNoneimplicitvkDestroySamplerYcbcrConversioncoreIf ycbcrConversion is not VK_NULL_HANDLE, ycbcrConversion must be a valid VkSamplerYcbcrConversion handle
VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parentYNoneimplicitvkDestroySamplerYcbcrConversioncoreIf ycbcrConversion is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySemaphore-device-parameterYNoneimplicitvkDestroySemaphorecoredevice must be a valid VkDevice handle
VUID-vkDestroySemaphore-pAllocator-parameterNNoneimplicitvkDestroySemaphorecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySemaphore-semaphore-01138YNoneexplicitvkDestroySemaphorecoreIf VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here
VUID-vkDestroySemaphore-semaphore-01139YNoneexplicitvkDestroySemaphorecoreIf no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL
VUID-vkDestroySemaphore-semaphore-05149YNegativeObjectLifetime.InUseDestroyedSignaledexplicitvkDestroySemaphorecoreAll submitted batches that refer to semaphore must have completed execution
VUID-vkDestroySemaphore-semaphore-parameterYNoneimplicitvkDestroySemaphorecoreIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-vkDestroySemaphore-semaphore-parentYNoneimplicitvkDestroySemaphorecoreIf semaphore is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyShaderEXT-None-08481YNoneexplicitvkDestroyShaderEXTcoreThe shaderObject feature must be enabled
VUID-vkDestroyShaderEXT-device-parameterYNoneimplicitvkDestroyShaderEXTcoredevice must be a valid VkDevice handle
VUID-vkDestroyShaderEXT-pAllocator-08483YNoneexplicitvkDestroyShaderEXTcoreIf VkAllocationCallbacks were provided when shader was created, a compatible set of callbacks must be provided here
VUID-vkDestroyShaderEXT-pAllocator-08484YNoneexplicitvkDestroyShaderEXTcoreIf no VkAllocationCallbacks were provided when shader was created, pAllocator must be NULL
VUID-vkDestroyShaderEXT-pAllocator-parameterNNoneimplicitvkDestroyShaderEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyShaderEXT-shader-08482NNoneexplicitvkDestroyShaderEXTcoreAll submitted commands that refer to shader must have completed execution
VUID-vkDestroyShaderEXT-shader-parameterYNoneimplicitvkDestroyShaderEXTcoreshader must be a valid VkShaderEXT handle
VUID-vkDestroyShaderEXT-shader-parentYNoneimplicitvkDestroyShaderEXTcoreshader must have been created, allocated, or retrieved from device
VUID-vkDestroyShaderModule-device-parameterYNoneimplicitvkDestroyShaderModulecoredevice must be a valid VkDevice handle
VUID-vkDestroyShaderModule-pAllocator-parameterNNoneimplicitvkDestroyShaderModulecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyShaderModule-shaderModule-01092YNoneexplicitvkDestroyShaderModulecoreIf VkAllocationCallbacks were provided when shaderModule was created, a compatible set of callbacks must be provided here
VUID-vkDestroyShaderModule-shaderModule-01093YNoneexplicitvkDestroyShaderModulecoreIf no VkAllocationCallbacks were provided when shaderModule was created, pAllocator must be NULL
VUID-vkDestroyShaderModule-shaderModule-parameterYNoneimplicitvkDestroyShaderModulecoreIf shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle
VUID-vkDestroyShaderModule-shaderModule-parentYNoneimplicitvkDestroyShaderModulecoreIf shaderModule is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySurfaceKHR-instance-parameterYNoneimplicitvkDestroySurfaceKHRcoreinstance must be a valid VkInstance handle
VUID-vkDestroySurfaceKHR-pAllocator-parameterNNoneimplicitvkDestroySurfaceKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySurfaceKHR-surface-01266YNoneexplicitvkDestroySurfaceKHRcoreAll VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface
VUID-vkDestroySurfaceKHR-surface-01267YNoneexplicitvkDestroySurfaceKHRcoreIf VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here
VUID-vkDestroySurfaceKHR-surface-01268YNoneexplicitvkDestroySurfaceKHRcoreIf no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL
VUID-vkDestroySurfaceKHR-surface-parameterYNoneimplicitvkDestroySurfaceKHRcoreIf surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkDestroySurfaceKHR-surface-parentYNegativeParent.Instance_Surface_2implicitvkDestroySurfaceKHRcoreIf surface is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroySwapchainKHR-device-parameterNNoneimplicitvkDestroySwapchainKHRcoredevice must be a valid VkDevice handle
VUID-vkDestroySwapchainKHR-pAllocator-parameterNNoneimplicitvkDestroySwapchainKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySwapchainKHR-swapchain-01282NNoneexplicitvkDestroySwapchainKHRcoreAll uses of presentable images acquired from swapchain must have completed execution
VUID-vkDestroySwapchainKHR-swapchain-01283YNoneexplicitvkDestroySwapchainKHRcoreIf VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here
VUID-vkDestroySwapchainKHR-swapchain-01284YNoneexplicitvkDestroySwapchainKHRcoreIf no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL
VUID-vkDestroySwapchainKHR-swapchain-parameterYNoneimplicitvkDestroySwapchainKHRcoreIf swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle
VUID-vkDestroySwapchainKHR-swapchain-parentYNoneimplicitvkDestroySwapchainKHRcoreIf swapchain is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyValidationCacheEXT-device-parameterYNoneimplicitvkDestroyValidationCacheEXTcoredevice must be a valid VkDevice handle
VUID-vkDestroyValidationCacheEXT-pAllocator-parameterNNoneimplicitvkDestroyValidationCacheEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyValidationCacheEXT-validationCache-01537YNoneexplicitvkDestroyValidationCacheEXTcoreIf VkAllocationCallbacks were provided when validationCache was created, a compatible set of callbacks must be provided here
VUID-vkDestroyValidationCacheEXT-validationCache-01538YNoneexplicitvkDestroyValidationCacheEXTcoreIf no VkAllocationCallbacks were provided when validationCache was created, pAllocator must be NULL
VUID-vkDestroyValidationCacheEXT-validationCache-parameterYNoneimplicitvkDestroyValidationCacheEXTcoreIf validationCache is not VK_NULL_HANDLE, validationCache must be a valid VkValidationCacheEXT handle
VUID-vkDestroyValidationCacheEXT-validationCache-parentYNoneimplicitvkDestroyValidationCacheEXTcoreIf validationCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyVideoSessionKHR-device-parameterYNoneimplicitvkDestroyVideoSessionKHRcoredevice must be a valid VkDevice handle
VUID-vkDestroyVideoSessionKHR-pAllocator-parameterNNoneimplicitvkDestroyVideoSessionKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyVideoSessionKHR-videoSession-07192YNegativeVideo.InUseDestroyedexplicitvkDestroyVideoSessionKHRcoreAll submitted commands that refer to videoSession must have completed execution
VUID-vkDestroyVideoSessionKHR-videoSession-07193YNoneexplicitvkDestroyVideoSessionKHRcoreIf VkAllocationCallbacks were provided when videoSession was created, a compatible set of callbacks must be provided here
VUID-vkDestroyVideoSessionKHR-videoSession-07194YNoneexplicitvkDestroyVideoSessionKHRcoreIf no VkAllocationCallbacks were provided when videoSession was created, pAllocator must be NULL
VUID-vkDestroyVideoSessionKHR-videoSession-parameterYNoneimplicitvkDestroyVideoSessionKHRcoreIf videoSession is not VK_NULL_HANDLE, videoSession must be a valid VkVideoSessionKHR handle
VUID-vkDestroyVideoSessionKHR-videoSession-parentYNoneimplicitvkDestroyVideoSessionKHRcoreIf videoSession is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyVideoSessionParametersKHR-device-parameterYNoneimplicitvkDestroyVideoSessionParametersKHRcoredevice must be a valid VkDevice handle
VUID-vkDestroyVideoSessionParametersKHR-pAllocator-parameterNNoneimplicitvkDestroyVideoSessionParametersKHRcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07212YNegativeVideo.InUseDestroyedexplicitvkDestroyVideoSessionParametersKHRcoreAll submitted commands that refer to videoSessionParameters must have completed execution
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07213YNoneexplicitvkDestroyVideoSessionParametersKHRcoreIf VkAllocationCallbacks were provided when videoSessionParameters was created, a compatible set of callbacks must be provided here
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07214YNoneexplicitvkDestroyVideoSessionParametersKHRcoreIf no VkAllocationCallbacks were provided when videoSessionParameters was created, pAllocator must be NULL
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parameterYNoneimplicitvkDestroyVideoSessionParametersKHRcoreIf videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parentYNoneimplicitvkDestroyVideoSessionParametersKHRcoreIf videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDeviceWaitIdle-device-parameterYNoneimplicitvkDeviceWaitIdlecoredevice must be a valid VkDevice handle
VUID-vkDisplayPowerControlEXT-commonparentYNoneimplicitvkDisplayPowerControlEXTcoreBoth of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice
VUID-vkDisplayPowerControlEXT-device-parameterYNoneimplicitvkDisplayPowerControlEXTcoredevice must be a valid VkDevice handle
VUID-vkDisplayPowerControlEXT-display-parameterYNoneimplicitvkDisplayPowerControlEXTcoredisplay must be a valid VkDisplayKHR handle
VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameterYNoneimplicitvkDisplayPowerControlEXTcorepDisplayPowerInfo must be a valid pointer to a valid VkDisplayPowerInfoEXT structure
VUID-vkEndCommandBuffer-None-01978YNegativeCommand.EndCommandBufferWithConditionalRenderingexplicitvkEndCommandBuffercoreConditional rendering must not be active
VUID-vkEndCommandBuffer-None-06991YNegativeVideo.VideoCodingScopeexplicitvkEndCommandBuffercoreThere must be no video session object bound
VUID-vkEndCommandBuffer-commandBuffer-00059YNegativeCommand.NoBeginCommandBuffer, NegativeDescriptorIndexing.UpdateAfterBind, NegativeObjectLifetime.Sync2CmdBarrierBufferDestroyed, NegativeObjectLifetime.Sync2CmdBarrierImageDestroyedexplicitvkEndCommandBuffercorecommandBuffer must be in the recording state
VUID-vkEndCommandBuffer-commandBuffer-00060YNegativeRenderPass.EndCommandBufferWithinRenderPassexplicitvkEndCommandBuffercoreIf commandBuffer is a primary command buffer, there must not be an active render pass instance
VUID-vkEndCommandBuffer-commandBuffer-00061YVkLayerTest.UnclosedAndDuplicateQueriesexplicitvkEndCommandBuffercoreAll queries made active during the recording of commandBuffer must have been made inactive
VUID-vkEndCommandBuffer-commandBuffer-00062NNoneexplicitvkEndCommandBuffercoreIf commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT
VUID-vkEndCommandBuffer-commandBuffer-01815NNoneexplicitvkEndCommandBuffercoreIf commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT
VUID-vkEndCommandBuffer-commandBuffer-parameterYNoneimplicitvkEndCommandBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameterNNoneimplicitvkEnumerateDeviceExtensionPropertiescoreIf pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string
VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameterNNoneimplicitvkEnumerateDeviceExtensionPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures
VUID-vkEnumerateDeviceExtensionProperties-pPropertyCount-parameterNNoneimplicitvkEnumerateDeviceExtensionPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameterYNoneimplicitvkEnumerateDeviceExtensionPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumerateDeviceLayerProperties-pProperties-parameterNNoneimplicitvkEnumerateDeviceLayerPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures
VUID-vkEnumerateDeviceLayerProperties-pPropertyCount-parameterNNoneimplicitvkEnumerateDeviceLayerPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameterYNoneimplicitvkEnumerateDeviceLayerPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameterNNoneimplicitvkEnumerateInstanceExtensionPropertiescoreIf pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string
VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameterNNoneimplicitvkEnumerateInstanceExtensionPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures
VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameterNNoneimplicitvkEnumerateInstanceExtensionPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateInstanceLayerProperties-pProperties-parameterNNoneimplicitvkEnumerateInstanceLayerPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures
VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameterNNoneimplicitvkEnumerateInstanceLayerPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateInstanceVersion-pApiVersion-parameterNNoneimplicitvkEnumerateInstanceVersioncorepApiVersion must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceGroups-instance-parameterYNoneimplicitvkEnumeratePhysicalDeviceGroupscoreinstance must be a valid VkInstance handle
VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameterNNoneimplicitvkEnumeratePhysicalDeviceGroupscorepPhysicalDeviceGroupCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameterYNoneimplicitvkEnumeratePhysicalDeviceGroupscoreIf the value referenced by pPhysicalDeviceGroupCount is not 0, and pPhysicalDeviceGroupProperties is not NULL, pPhysicalDeviceGroupProperties must be a valid pointer to an array of pPhysicalDeviceGroupCount VkPhysicalDeviceGroupProperties structures
VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterCount-parameterNNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRcorepCounterCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRcoreIf the value referenced by pCounterCount is not 0, and pCounterDescriptions is not NULL, pCounterDescriptions must be a valid pointer to an array of pCounterCount VkPerformanceCounterDescriptionKHR structures
VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounters-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRcoreIf the value referenced by pCounterCount is not 0, and pCounters is not NULL, pCounters must be a valid pointer to an array of pCounterCount VkPerformanceCounterKHR structures
VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumeratePhysicalDevices-instance-parameterYNoneimplicitvkEnumeratePhysicalDevicescoreinstance must be a valid VkInstance handle
VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameterNNoneimplicitvkEnumeratePhysicalDevicescorepPhysicalDeviceCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameterYNoneimplicitvkEnumeratePhysicalDevicescoreIf the value referenced by pPhysicalDeviceCount is not 0, and pPhysicalDevices is not NULL, pPhysicalDevices must be a valid pointer to an array of pPhysicalDeviceCount VkPhysicalDevice handles
VUID-vkExportMetalObjectsEXT-device-parameterYNoneimplicitvkExportMetalObjectsEXTcoredevice must be a valid VkDevice handle
VUID-vkExportMetalObjectsEXT-pMetalObjectsInfo-parameterYNoneimplicitvkExportMetalObjectsEXTcorepMetalObjectsInfo must be a valid pointer to a VkExportMetalObjectsInfoEXT structure
VUID-vkFlushMappedMemoryRanges-device-parameterYNoneimplicitvkFlushMappedMemoryRangescoredevice must be a valid VkDevice handle
VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylengthYNoneimplicitvkFlushMappedMemoryRangescorememoryRangeCount must be greater than 0
VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameterYNoneimplicitvkFlushMappedMemoryRangescorepMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures
VUID-vkFreeCommandBuffers-commandBufferCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkFreeCommandBufferscorecommandBufferCount must be greater than 0
VUID-vkFreeCommandBuffers-commandPool-parameterYNoneimplicitvkFreeCommandBufferscorecommandPool must be a valid VkCommandPool handle
VUID-vkFreeCommandBuffers-commandPool-parentYNoneimplicitvkFreeCommandBufferscorecommandPool must have been created, allocated, or retrieved from device
VUID-vkFreeCommandBuffers-device-parameterYNoneimplicitvkFreeCommandBufferscoredevice must be a valid VkDevice handle
VUID-vkFreeCommandBuffers-pCommandBuffers-00047YNoneexplicitvkFreeCommandBufferscoreAll elements of pCommandBuffers must not be in the pending state
VUID-vkFreeCommandBuffers-pCommandBuffers-00048YNegativeObjectLifetime.FreeCommandBuffersNullexplicitvkFreeCommandBufferscorepCommandBuffers must be a valid pointer to an array of commandBufferCount VkCommandBuffer handles, each element of which must either be a valid handle or NULL
VUID-vkFreeCommandBuffers-pCommandBuffers-parentYNegativeCommand.CommandPoolConsistencyimplicitvkFreeCommandBufferscoreEach element of pCommandBuffers that is a valid handle must have been created, allocated, or retrieved from commandPool
VUID-vkFreeDescriptorSets-descriptorPool-00312YNegativeDescriptors.FreeDescriptorFromOneShotPoolexplicitvkFreeDescriptorSetscoredescriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT flag
VUID-vkFreeDescriptorSets-descriptorPool-parameterYNoneimplicitvkFreeDescriptorSetscoredescriptorPool must be a valid VkDescriptorPool handle
VUID-vkFreeDescriptorSets-descriptorPool-parentYNoneimplicitvkFreeDescriptorSetscoredescriptorPool must have been created, allocated, or retrieved from device
VUID-vkFreeDescriptorSets-descriptorSetCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkFreeDescriptorSetscoredescriptorSetCount must be greater than 0
VUID-vkFreeDescriptorSets-device-parameterYNoneimplicitvkFreeDescriptorSetscoredevice must be a valid VkDevice handle
VUID-vkFreeDescriptorSets-pDescriptorSets-00309YNegativeDescriptors.CmdBufferDescriptorSetImageSamplerDestroyedexplicitvkFreeDescriptorSetscoreAll submitted commands that refer to any element of pDescriptorSets must have completed execution
VUID-vkFreeDescriptorSets-pDescriptorSets-00310YNegativeObjectLifetime.FreeDescriptorSetsNullexplicitvkFreeDescriptorSetscorepDescriptorSets must be a valid pointer to an array of descriptorSetCount VkDescriptorSet handles, each element of which must either be a valid handle or VK_NULL_HANDLE
VUID-vkFreeDescriptorSets-pDescriptorSets-parentYNegativeDescriptors.DescriptorPoolConsistencyimplicitvkFreeDescriptorSetscoreEach element of pDescriptorSets that is a valid handle must have been created, allocated, or retrieved from descriptorPool
VUID-vkFreeMemory-device-parameterYNoneimplicitvkFreeMemorycoredevice must be a valid VkDevice handle
VUID-vkFreeMemory-memory-00677YNegativeObjectLifetime.CmdBarrierBufferDestroyed, NegativeObjectLifetime.CmdBarrierImageDestroyedexplicitvkFreeMemorycoreAll submitted commands that refer to memory (via images or buffers) must have completed execution
VUID-vkFreeMemory-memory-parameterYNoneimplicitvkFreeMemorycoreIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-vkFreeMemory-memory-parentYNoneimplicitvkFreeMemorycoreIf memory is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkFreeMemory-pAllocator-parameterNNoneimplicitvkFreeMemorycoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkGetAccelerationStructureBuildSizesKHR-accelerationStructure-08933YNoneexplicitvkGetAccelerationStructureBuildSizesKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkGetAccelerationStructureBuildSizesKHR-buildType-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRcorebuildType must be a valid VkAccelerationStructureBuildTypeKHR value
VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618NNoneexplicitvkGetAccelerationStructureBuildSizesKHRcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619YNoneexplicitvkGetAccelerationStructureBuildSizesKHRcoreIf pBuildInfo->geometryCount is not 0, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values
VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03785NNoneexplicitvkGetAccelerationStructureBuildSizesKHRcoreIf pBuildInfo->pGeometries or pBuildInfo->ppGeometries has a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each pMaxPrimitiveCounts[i] must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRcorepBuildInfo must be a valid pointer to a valid VkAccelerationStructureBuildGeometryInfoKHR structure
VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameterNNoneimplicitvkGetAccelerationStructureBuildSizesKHRcoreIf pMaxPrimitiveCounts is not NULL, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values
VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRcorepSizeInfo must be a valid pointer to a VkAccelerationStructureBuildSizesInfoKHR structure
VUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935NNoneexplicitvkGetAccelerationStructureDeviceAddressKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504NNoneexplicitvkGetAccelerationStructureDeviceAddressKHRcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameterYNoneimplicitvkGetAccelerationStructureDeviceAddressKHRcoredevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameterYNoneimplicitvkGetAccelerationStructureDeviceAddressKHRcorepInfo must be a valid pointer to a valid VkAccelerationStructureDeviceAddressInfoKHR structure
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787YNegativeRayTracingNV.ValidateGetAccelerationStructureHandleexplicitvkGetAccelerationStructureHandleNVcoreaccelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameterYNoneimplicitvkGetAccelerationStructureHandleNVcoreaccelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parentYNoneimplicitvkGetAccelerationStructureHandleNVcoreaccelerationStructure must have been created, allocated, or retrieved from device
VUID-vkGetAccelerationStructureHandleNV-dataSize-02240YNegativeRayTracingNV.ValidateGetAccelerationStructureHandleexplicitvkGetAccelerationStructureHandleNVcoredataSize must be large enough to contain the result of the query, as described above
VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylengthYNoneimplicitvkGetAccelerationStructureHandleNVcoredataSize must be greater than 0
VUID-vkGetAccelerationStructureHandleNV-device-parameterYNoneimplicitvkGetAccelerationStructureHandleNVcoredevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureHandleNV-pData-parameterYNoneimplicitvkGetAccelerationStructureHandleNVcorepData must be a valid pointer to an array of dataSize bytes
VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNVcoredevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNVcorepInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure
VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNVcorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088YNegativeDescriptorBuffer.NotEnabledexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTcoreThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-08090YNoneexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTcoredevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-08089NNoneexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTcorepData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::accelerationStructureCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTcorepData must be a pointer value
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTcorepInfo must be a valid pointer to a valid VkAccelerationStructureCaptureDescriptorDataInfoEXT structure
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884YNegativeAndroidHardwareBuffer.DedicatedUsageDS, NegativeAndroidHardwareBuffer.GpuUsage, NegativeAndroidHardwareBuffer.ImportBuffer, PositiveAndroidHardwareBuffer.DepthStencilexplicitvkGetAndroidHardwareBufferPropertiesANDROIDcorebuffer must be a valid Android hardware buffer object with at least one of the AHARDWAREBUFFER_USAGE_GPU_* flags in its AHardwareBuffer_Desc::usage
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameterYNegativeAndroidHardwareBuffer.NullAHBPropertiesimplicitvkGetAndroidHardwareBufferPropertiesANDROIDcorebuffer must be a valid pointer to a valid AHardwareBuffer value
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameterYNoneimplicitvkGetAndroidHardwareBufferPropertiesANDROIDcoredevice must be a valid VkDevice handle
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameterYNoneimplicitvkGetAndroidHardwareBufferPropertiesANDROIDcorepProperties must be a valid pointer to a VkAndroidHardwareBufferPropertiesANDROID structure
VUID-vkGetBufferCollectionPropertiesFUCHSIA-None-06405NNoneexplicitvkGetBufferCollectionPropertiesFUCHSIAcorePrior to calling vkGetBufferCollectionPropertiesFUCHSIA, the constraints on the buffer collection must have been set by either vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA
VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIAcorecollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parentYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIAcorecollection must have been created, allocated, or retrieved from device
VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkGetBufferCollectionPropertiesFUCHSIA-pProperties-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIAcorepProperties must be a valid pointer to a VkBufferCollectionPropertiesFUCHSIA structure
VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324YNegativeMemory.BufferDeviceAddressEXTDisabled, NegativeMemory.BufferDeviceAddressKHRDisabledexplicitvkGetBufferDeviceAddresscoreThe bufferDeviceAddress or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddress feature must be enabled
VUID-vkGetBufferDeviceAddress-device-03325YNoneexplicitvkGetBufferDeviceAddresscoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferDeviceAddress-device-parameterYNoneimplicitvkGetBufferDeviceAddresscoredevice must be a valid VkDevice handle
VUID-vkGetBufferDeviceAddress-pInfo-parameterYNoneimplicitvkGetBufferDeviceAddresscorepInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure
VUID-vkGetBufferMemoryRequirements-buffer-parameterYNoneimplicitvkGetBufferMemoryRequirementscorebuffer must be a valid VkBuffer handle
VUID-vkGetBufferMemoryRequirements-buffer-parentYNegativeParent.BindBufferimplicitvkGetBufferMemoryRequirementscorebuffer must have been created, allocated, or retrieved from device
VUID-vkGetBufferMemoryRequirements-device-parameterYNoneimplicitvkGetBufferMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetBufferMemoryRequirementscorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure
VUID-vkGetBufferMemoryRequirements2-device-parameterYNoneimplicitvkGetBufferMemoryRequirements2coredevice must be a valid VkDevice handle
VUID-vkGetBufferMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetBufferMemoryRequirements2corepInfo must be a valid pointer to a valid VkBufferMemoryRequirementsInfo2 structure
VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameterYNoneimplicitvkGetBufferMemoryRequirements2corepMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetBufferOpaqueCaptureAddress-None-03326YNegativeMemory.BufferDeviceAddressKHRDisabledexplicitvkGetBufferOpaqueCaptureAddresscoreThe bufferDeviceAddress feature must be enabled
VUID-vkGetBufferOpaqueCaptureAddress-device-03327YNoneexplicitvkGetBufferOpaqueCaptureAddresscoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferOpaqueCaptureAddress-device-parameterYNoneimplicitvkGetBufferOpaqueCaptureAddresscoredevice must be a valid VkDevice handle
VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameterYNoneimplicitvkGetBufferOpaqueCaptureAddresscorepInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072YNegativeDescriptorBuffer.NotEnabledexplicitvkGetBufferOpaqueCaptureDescriptorDataEXTcoreThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-08074YNoneexplicitvkGetBufferOpaqueCaptureDescriptorDataEXTcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXTcoredevice must be a valid VkDevice handle
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073NNoneexplicitvkGetBufferOpaqueCaptureDescriptorDataEXTcorepData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXTcorepData must be a pointer value
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXTcorepInfo must be a valid pointer to a valid VkBufferCaptureDescriptorDataInfoEXT structure
VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246YVkLayerTest.GetCalibratedTimestampsDuplicate, VkLayerTest.GetCalibratedTimestampsDuplicateKHRexplicitvkGetCalibratedTimestampsKHRcoreThe timeDomain value of each VkCalibratedTimestampInfoEXT in pTimestampInfos must be unique
VUID-vkGetCalibratedTimestampsKHR-device-parameterYNoneimplicitvkGetCalibratedTimestampsKHRcoredevice must be a valid VkDevice handle
VUID-vkGetCalibratedTimestampsKHR-pMaxDeviation-parameterYNoneimplicitvkGetCalibratedTimestampsKHRcorepMaxDeviation must be a valid pointer to a uint64_t value
VUID-vkGetCalibratedTimestampsKHR-pTimestampInfos-parameterYNoneimplicitvkGetCalibratedTimestampsKHRcorepTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoKHR structures
VUID-vkGetCalibratedTimestampsKHR-pTimestamps-parameterYNoneimplicitvkGetCalibratedTimestampsKHRcorepTimestamps must be a valid pointer to an array of timestampCount uint64_t values
VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylengthYNoneimplicitvkGetCalibratedTimestampsKHRcoretimestampCount must be greater than 0
VUID-vkGetCudaModuleCacheNV-device-parameterYNoneimplicitvkGetCudaModuleCacheNVcoredevice must be a valid VkDevice handle
VUID-vkGetCudaModuleCacheNV-module-parameterYNoneimplicitvkGetCudaModuleCacheNVcoremodule must be a valid VkCudaModuleNV handle
VUID-vkGetCudaModuleCacheNV-module-parentYNoneimplicitvkGetCudaModuleCacheNVcoremodule must have been created, allocated, or retrieved from device
VUID-vkGetCudaModuleCacheNV-pCacheData-parameterYNoneimplicitvkGetCudaModuleCacheNVcoreIf 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-pCacheSize-parameterNNoneimplicitvkGetCudaModuleCacheNVcorepCacheSize must be a valid pointer to a size_t value
VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameterYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHRcoredevice must be a valid VkDevice handle
VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameterYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHRcoreoperation must be a valid VkDeferredOperationKHR handle
VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parentYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHRcoreoperation must have been created, allocated, or retrieved from device
VUID-vkGetDeferredOperationResultKHR-device-parameterYNoneimplicitvkGetDeferredOperationResultKHRcoredevice must be a valid VkDevice handle
VUID-vkGetDeferredOperationResultKHR-operation-parameterYNoneimplicitvkGetDeferredOperationResultKHRcoreoperation must be a valid VkDeferredOperationKHR handle
VUID-vkGetDeferredOperationResultKHR-operation-parentYNoneimplicitvkGetDeferredOperationResultKHRcoreoperation must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorEXT-None-08015YNegativeDescriptorBuffer.NotEnabledexplicitvkGetDescriptorEXTcoreThe descriptorBuffer feature must be enabled
VUID-vkGetDescriptorEXT-dataSize-08125YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitvkGetDescriptorEXTcoreIf pDescriptorInfo->type is not VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER or pDescriptorInfo->data.pCombinedImageSampler has a imageView member that was not created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, dataSize must equal the size of a descriptor of type VkDescriptorGetInfoEXT::type determined by the value in VkPhysicalDeviceDescriptorBufferPropertiesEXT , or determined by VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT::combinedImageSamplerDensityMapDescriptorSize if pDescriptorInfo specifies a VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER whose VkSampler was created with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT set
VUID-vkGetDescriptorEXT-dataSize-arraylengthYNoneimplicitvkGetDescriptorEXTcoredataSize must be greater than 0
VUID-vkGetDescriptorEXT-descriptorType-09469YNoneexplicitvkGetDescriptorEXTcoreIf pDescriptorInfo->type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER and pDescriptorInfo->data.pCombinedImageSampler has a imageView member that was created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, dataSize must equal the size of VkPhysicalDeviceDescriptorBufferPropertiesEXT::combinedImageSamplerDescriptorSize times VkSamplerYcbcrConversionImageFormatProperties::combinedImageSamplerDescriptorCount
VUID-vkGetDescriptorEXT-device-parameterNNoneimplicitvkGetDescriptorEXTcoredevice must be a valid VkDevice handle
VUID-vkGetDescriptorEXT-pDescriptor-08016NNoneexplicitvkGetDescriptorEXTcorepDescriptor must be a valid pointer to an array of at least dataSize bytes
VUID-vkGetDescriptorEXT-pDescriptor-parameterYNoneimplicitvkGetDescriptorEXTcorepDescriptor must be a valid pointer to an array of dataSize bytes
VUID-vkGetDescriptorEXT-pDescriptorInfo-parameterYNoneimplicitvkGetDescriptorEXTcorepDescriptorInfo must be a valid pointer to a valid VkDescriptorGetInfoEXT structure
VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVEcoredescriptorSet must be a valid VkDescriptorSet handle
VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parentYNoneimplicitvkGetDescriptorSetHostMappingVALVEcoredescriptorSet must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorSetHostMappingVALVE-device-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVEcoredevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVEcoreppData must be a valid pointer to a pointer value
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-None-08013YNegativeDescriptorBuffer.NotEnabledexplicitvkGetDescriptorSetLayoutBindingOffsetEXTcoreThe descriptorBuffer feature must be enabled
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXTcoredevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-08014YNegativeDescriptorBuffer.VariousexplicitvkGetDescriptorSetLayoutBindingOffsetEXTcorelayout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXTcorelayout must be a valid VkDescriptorSetLayout handle
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parentYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXTcorelayout must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-pOffset-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXTcorepOffset must be a valid pointer to a VkDeviceSize value
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVEcoredevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pBindingReference-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVEcorepBindingReference must be a valid pointer to a valid VkDescriptorSetBindingReferenceVALVE structure
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pHostMapping-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVEcorepHostMapping must be a valid pointer to a VkDescriptorSetLayoutHostMappingInfoVALVE structure
VUID-vkGetDescriptorSetLayoutSizeEXT-None-08011YNegativeDescriptorBuffer.NotEnabledexplicitvkGetDescriptorSetLayoutSizeEXTcoreThe descriptorBuffer feature must be enabled
VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXTcoredevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-08012YNegativeDescriptorBuffer.VariousexplicitvkGetDescriptorSetLayoutSizeEXTcorelayout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXTcorelayout must be a valid VkDescriptorSetLayout handle
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parentYNoneimplicitvkGetDescriptorSetLayoutSizeEXTcorelayout must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorSetLayoutSizeEXT-pLayoutSizeInBytes-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXTcorepLayoutSizeInBytes must be a valid pointer to a VkDeviceSize value
VUID-vkGetDescriptorSetLayoutSupport-device-parameterYNoneimplicitvkGetDescriptorSetLayoutSupportcoredevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameterYNoneimplicitvkGetDescriptorSetLayoutSupportcorepCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure
VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameterYNoneimplicitvkGetDescriptorSetLayoutSupportcorepSupport must be a valid pointer to a VkDescriptorSetLayoutSupport structure
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-accelerationStructure-08928YNoneexplicitvkGetDeviceAccelerationStructureCompatibilityKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHRcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pCompatibility-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHRcorepCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pVersionInfo-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHRcorepVersionInfo must be a valid pointer to a valid VkAccelerationStructureVersionInfoKHR structure
VUID-vkGetDeviceBufferMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirementscorepInfo must be a valid pointer to a valid VkDeviceBufferMemoryRequirements structure
VUID-vkGetDeviceBufferMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirementscorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetDeviceFaultInfoEXT-device-07336NNoneexplicitvkGetDeviceFaultInfoEXTcoredevice must be in the lost state
VUID-vkGetDeviceFaultInfoEXT-device-parameterYNoneimplicitvkGetDeviceFaultInfoEXTcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07337NNoneexplicitvkGetDeviceFaultInfoEXTcoreIf the value referenced by pFaultCounts->addressInfoCount is not 0, and pFaultInfo->pAddressInfos is not NULL, pFaultInfo->pAddressInfos must be a valid pointer to an array of pFaultCounts->addressInfoCount VkDeviceFaultAddressInfoEXT structures
VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07338NNoneexplicitvkGetDeviceFaultInfoEXTcoreIf the value referenced by pFaultCounts->vendorInfoCount is not 0, and pFaultInfo->pVendorInfos is not NULL, pFaultInfo->pVendorInfos must be a valid pointer to an array of pFaultCounts->vendorInfoCount VkDeviceFaultVendorInfoEXT structures
VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07339NNoneexplicitvkGetDeviceFaultInfoEXTcoreIf the value referenced by pFaultCounts->vendorBinarySize is not 0, and pFaultInfo->pVendorBinaryData is not NULL, pFaultInfo->pVendorBinaryData must be a valid pointer to an array of pFaultCounts->vendorBinarySize bytes
VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-parameterYNoneimplicitvkGetDeviceFaultInfoEXTcorepFaultCounts must be a valid pointer to a VkDeviceFaultCountsEXT structure
VUID-vkGetDeviceFaultInfoEXT-pFaultInfo-parameterYNoneimplicitvkGetDeviceFaultInfoEXTcoreIf pFaultInfo is not NULL, pFaultInfo must be a valid pointer to a VkDeviceFaultInfoEXT structure
VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameterYNoneimplicitvkGetDeviceGroupPeerMemoryFeaturescoredevice must be a valid VkDevice handle
VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691NNoneexplicitvkGetDeviceGroupPeerMemoryFeaturescoreheapIndex must be less than memoryHeapCount
VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692NNoneexplicitvkGetDeviceGroupPeerMemoryFeaturescorelocalDeviceIndex must be a valid device index
VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694NNoneexplicitvkGetDeviceGroupPeerMemoryFeaturescorelocalDeviceIndex must not equal remoteDeviceIndex
VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameterYNoneimplicitvkGetDeviceGroupPeerMemoryFeaturescorepPeerMemoryFeatures must be a valid pointer to a VkPeerMemoryFeatureFlags value
VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693NNoneexplicitvkGetDeviceGroupPeerMemoryFeaturescoreremoteDeviceIndex must be a valid device index
VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameterYNoneimplicitvkGetDeviceGroupPresentCapabilitiesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameterYNoneimplicitvkGetDeviceGroupPresentCapabilitiesKHRcorepDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structure
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXTcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pModes-parameterNNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXTcorepModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-06213YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetDeviceGroupSurfacePresentModes2EXTcorepSurfaceInfo->surface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXTcorepSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparentYNegativeParent.Instance_DeviceAndSurfaceimplicitvkGetDeviceGroupSurfacePresentModesKHRcoreBoth of device, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameterNNoneimplicitvkGetDeviceGroupSurfacePresentModesKHRcorepModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value
VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-06212YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetDeviceGroupSurfacePresentModesKHRcoresurface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModesKHRcoresurface must be a valid VkSurfaceKHR handle
VUID-vkGetDeviceImageMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceImageMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceImageMemoryRequirementscorepInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure
VUID-vkGetDeviceImageMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetDeviceImageMemoryRequirementscorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirementscorepInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure
VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameterNNoneimplicitvkGetDeviceImageSparseMemoryRequirementscorepSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirementscoreIf the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures
VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameterYNoneimplicitvkGetDeviceImageSubresourceLayoutKHRcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceImageSubresourceLayoutKHR-pInfo-parameterYNoneimplicitvkGetDeviceImageSubresourceLayoutKHRcorepInfo must be a valid pointer to a valid VkDeviceImageSubresourceInfoKHR structure
VUID-vkGetDeviceImageSubresourceLayoutKHR-pLayout-parameterYNoneimplicitvkGetDeviceImageSubresourceLayoutKHRcorepLayout must be a valid pointer to a VkSubresourceLayout2KHR structure
VUID-vkGetDeviceMemoryCommitment-device-parameterYNoneimplicitvkGetDeviceMemoryCommitmentcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceMemoryCommitment-memory-00690YNegativeMemory.QueryMemoryCommitmentWithoutLazyPropertyexplicitvkGetDeviceMemoryCommitmentcorememory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
VUID-vkGetDeviceMemoryCommitment-memory-parameterYNoneimplicitvkGetDeviceMemoryCommitmentcorememory must be a valid VkDeviceMemory handle
VUID-vkGetDeviceMemoryCommitment-memory-parentYNoneimplicitvkGetDeviceMemoryCommitmentcorememory must have been created, allocated, or retrieved from device
VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameterYNoneimplicitvkGetDeviceMemoryCommitmentcorepCommittedMemoryInBytes must be a valid pointer to a VkDeviceSize value
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334YNegativeMemory.BufferDeviceAddressKHRDisabledexplicitvkGetDeviceMemoryOpaqueCaptureAddresscoreThe bufferDeviceAddress feature must be enabled
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335YNoneexplicitvkGetDeviceMemoryOpaqueCaptureAddresscoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameterYNoneimplicitvkGetDeviceMemoryOpaqueCaptureAddresscoredevice must be a valid VkDevice handle
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameterYNoneimplicitvkGetDeviceMemoryOpaqueCaptureAddresscorepInfo must be a valid pointer to a valid VkDeviceMemoryOpaqueCaptureAddressInfo structure
VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXTcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceMicromapCompatibilityEXT-micromap-07551NNoneexplicitvkGetDeviceMicromapCompatibilityEXTcoreThe micromap feature must be enabled
VUID-vkGetDeviceMicromapCompatibilityEXT-pCompatibility-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXTcorepCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value
VUID-vkGetDeviceMicromapCompatibilityEXT-pVersionInfo-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXTcorepVersionInfo must be a valid pointer to a valid VkMicromapVersionInfoEXT structure
VUID-vkGetDeviceProcAddr-device-parameterYNoneimplicitvkGetDeviceProcAddrcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceProcAddr-pName-parameterNNoneimplicitvkGetDeviceProcAddrcorepName must be a null-terminated UTF-8 string
VUID-vkGetDeviceQueue-device-parameterYNoneimplicitvkGetDeviceQueuecoredevice must be a valid VkDevice handle
VUID-vkGetDeviceQueue-flags-01841YNegativeProtectedMemory.GetDeviceQueueexplicitvkGetDeviceQueuecoreVkDeviceQueueCreateInfo::flags must have been set to zero when device was created
VUID-vkGetDeviceQueue-pQueue-parameterYNoneimplicitvkGetDeviceQueuecorepQueue must be a valid pointer to a VkQueue handle
VUID-vkGetDeviceQueue-queueFamilyIndex-00384YNegativeProtectedMemory.GetDeviceQueueexplicitvkGetDeviceQueuecorequeueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure
VUID-vkGetDeviceQueue-queueIndex-00385YNegativeProtectedMemory.GetDeviceQueueexplicitvkGetDeviceQueuecorequeueIndex must be less than the value of VkDeviceQueueCreateInfo::queueCount for the queue family indicated by queueFamilyIndex when device was created
VUID-vkGetDeviceQueue2-device-parameterYNoneimplicitvkGetDeviceQueue2coredevice must be a valid VkDevice handle
VUID-vkGetDeviceQueue2-pQueue-parameterYNoneimplicitvkGetDeviceQueue2corepQueue must be a valid pointer to a VkQueue handle
VUID-vkGetDeviceQueue2-pQueueInfo-parameterYNoneimplicitvkGetDeviceQueue2corepQueueInfo must be a valid pointer to a valid VkDeviceQueueInfo2 structure
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-pMaxWorkgroupSize-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIcorepMaxWorkgroupSize must be a valid pointer to a VkExtent2D structure
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIcorerenderpass must be a valid VkRenderPass handle
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parentYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIcorerenderpass must have been created, allocated, or retrieved from device
VUID-vkGetDisplayModeProperties2KHR-display-parameterYNoneimplicitvkGetDisplayModeProperties2KHRcoredisplay must be a valid VkDisplayKHR handle
VUID-vkGetDisplayModeProperties2KHR-display-parentYNoneimplicitvkGetDisplayModeProperties2KHRcoredisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkGetDisplayModeProperties2KHR-pProperties-parameterYNoneimplicitvkGetDisplayModeProperties2KHRcoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModeProperties2KHR structures
VUID-vkGetDisplayModeProperties2KHR-pPropertyCount-parameterNNoneimplicitvkGetDisplayModeProperties2KHRcorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetDisplayModeProperties2KHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayModePropertiesKHR-display-parameterYNoneimplicitvkGetDisplayModePropertiesKHRcoredisplay must be a valid VkDisplayKHR handle
VUID-vkGetDisplayModePropertiesKHR-display-parentYNegativeParent.PhysicalDevice_DisplayimplicitvkGetDisplayModePropertiesKHRcoredisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkGetDisplayModePropertiesKHR-pProperties-parameterYNoneimplicitvkGetDisplayModePropertiesKHRcoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModePropertiesKHR structures
VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameterNNoneimplicitvkGetDisplayModePropertiesKHRcorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetDisplayModePropertiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHRcorepCapabilities must be a valid pointer to a VkDisplayPlaneCapabilities2KHR structure
VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHRcorepDisplayPlaneInfo must be a valid pointer to a valid VkDisplayPlaneInfo2KHR structure
VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHRcoremode must be a valid VkDisplayModeKHR handle
VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parentYNegativeParent.PhysicalDevice_DisplayModeimplicitvkGetDisplayPlaneCapabilitiesKHRcoremode must have been created, allocated, or retrieved from physicalDevice
VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHRcorepCapabilities must be a valid pointer to a VkDisplayPlaneCapabilitiesKHR structure
VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameterNNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHRcorepDisplayCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameterYNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHRcoreIf the value referenced by pDisplayCount is not 0, and pDisplays is not NULL, pDisplays must be a valid pointer to an array of pDisplayCount VkDisplayKHR handles
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameterYNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249YNegativeWsi.DisplayPlaneSurfaceexplicitvkGetDisplayPlaneSupportedDisplaysKHRcoreplaneIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR
VUID-vkGetDrmDisplayEXT-display-parameterYNoneimplicitvkGetDrmDisplayEXTcoredisplay must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetDrmDisplayEXT-physicalDevice-parameterYNoneimplicitvkGetDrmDisplayEXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOMcoredevice must be a valid VkDevice handle
VUID-vkGetDynamicRenderingTilePropertiesQCOM-pProperties-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOMcorepProperties must be a valid pointer to a VkTilePropertiesQCOM structure
VUID-vkGetDynamicRenderingTilePropertiesQCOM-pRenderingInfo-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOMcorepRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure
VUID-vkGetEncodedVideoSessionParametersKHR-device-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRcoredevice must be a valid VkDevice handle
VUID-vkGetEncodedVideoSessionParametersKHR-pData-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRcoreIf the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes
VUID-vkGetEncodedVideoSessionParametersKHR-pDataSize-parameterNNoneimplicitvkGetEncodedVideoSessionParametersKHRcorepDataSize must be a valid pointer to a size_t value
VUID-vkGetEncodedVideoSessionParametersKHR-pFeedbackInfo-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRcoreIf pFeedbackInfo is not NULL, pFeedbackInfo must be a valid pointer to a VkVideoEncodeSessionParametersFeedbackInfoKHR structure
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08262YNegativeVideo.GetEncodedSessionParamsMissingCodecInfoexplicitvkGetEncodedVideoSessionParametersKHRcoreIf pVideoSessionParametersInfo->videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the pNext chain of pVideoSessionParametersInfo must include a VkVideoEncodeH264SessionParametersGetInfoKHR structure
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08263YNegativeVideo.GetEncodedSessionParamsH264explicitvkGetEncodedVideoSessionParametersKHRcoreIf pVideoSessionParametersInfo->videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then for the VkVideoEncodeH264SessionParametersGetInfoKHR structure included in the pNext chain of pVideoSessionParametersInfo, if its writeStdSPS member is VK_TRUE, then pVideoSessionParametersInfo->videoSessionParameters must contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching VkVideoEncodeH264SessionParametersGetInfoKHR::stdSPSId
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08264YNegativeVideo.GetEncodedSessionParamsH264explicitvkGetEncodedVideoSessionParametersKHRcoreIf pVideoSessionParametersInfo->videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then for the VkVideoEncodeH264SessionParametersGetInfoKHR structure included in the pNext chain of pVideoSessionParametersInfo, if its writeStdPPS member is VK_TRUE, then pVideoSessionParametersInfo->videoSessionParameters must contain a StdVideoH264PictureParameterSet entry with seq_parameter_set_id and pic_parameter_set_id matching VkVideoEncodeH264SessionParametersGetInfoKHR::stdSPSId and VkVideoEncodeH264SessionParametersGetInfoKHR::stdPPSId, respectively
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08265YNegativeVideo.GetEncodedSessionParamsMissingCodecInfoexplicitvkGetEncodedVideoSessionParametersKHRcoreIf pVideoSessionParametersInfo->videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext chain of pVideoSessionParametersInfo must include a VkVideoEncodeH265SessionParametersGetInfoKHR structure
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08266YNegativeVideo.GetEncodedSessionParamsH265explicitvkGetEncodedVideoSessionParametersKHRcoreIf pVideoSessionParametersInfo->videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then for the VkVideoEncodeH265SessionParametersGetInfoKHR structure included in the pNext chain of pVideoSessionParametersInfo, if its writeStdVPS member is VK_TRUE, then pVideoSessionParametersInfo->videoSessionParameters must contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching VkVideoEncodeH265SessionParametersGetInfoKHR::stdVPSId
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08267YNegativeVideo.GetEncodedSessionParamsH265explicitvkGetEncodedVideoSessionParametersKHRcoreIf pVideoSessionParametersInfo->videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then for the VkVideoEncodeH265SessionParametersGetInfoKHR structure included in the pNext chain of pVideoSessionParametersInfo, if its writeStdSPS member is VK_TRUE, then pVideoSessionParametersInfo->videoSessionParameters must contain a StdVideoH265SequenceParameterSet entry with sps_video_parameter_set_id and sps_seq_parameter_set_id matching VkVideoEncodeH265SessionParametersGetInfoKHR::stdVPSId and VkVideoEncodeH265SessionParametersGetInfoKHR::stdSPSId, respectively
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08268YNegativeVideo.GetEncodedSessionParamsH265explicitvkGetEncodedVideoSessionParametersKHRcoreIf pVideoSessionParametersInfo->videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then for the VkVideoEncodeH265SessionParametersGetInfoKHR structure included in the pNext chain of pVideoSessionParametersInfo, if its writeStdPPS member is VK_TRUE, then pVideoSessionParametersInfo->videoSessionParameters must contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id matching VkVideoEncodeH265SessionParametersGetInfoKHR::stdVPSId, VkVideoEncodeH265SessionParametersGetInfoKHR::stdSPSId, and VkVideoEncodeH265SessionParametersGetInfoKHR::stdPPSId, respectively
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08359YNegativeVideo.GetEncodedSessionParamsRequiresEncodeProfileexplicitvkGetEncodedVideoSessionParametersKHRcorepVideoSessionParametersInfo->videoSessionParameters must have been created with an encode operation
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRcorepVideoSessionParametersInfo must be a valid pointer to a valid VkVideoEncodeSessionParametersGetInfoKHR structure
VUID-vkGetEventStatus-device-parameterYNoneimplicitvkGetEventStatuscoredevice must be a valid VkDevice handle
VUID-vkGetEventStatus-event-03940YNoneexplicitvkGetEventStatuscoreevent must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkGetEventStatus-event-parameterYNoneimplicitvkGetEventStatuscoreevent must be a valid VkEvent handle
VUID-vkGetEventStatus-event-parentYNoneimplicitvkGetEventStatuscoreevent must have been created, allocated, or retrieved from device
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameterYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXcoredevice must be a valid VkDevice handle
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-09142NNoneexplicitvkGetExecutionGraphPipelineNodeIndexAMDXcoreThere must be a node in executionGraph with a shader name and index equal to pNodeInfo->pName and pNodeInfo->index
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parameterYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXcoreexecutionGraph must be a valid VkPipeline handle
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parentYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXcoreexecutionGraph must have been created, allocated, or retrieved from device
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeIndex-parameterYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXcorepNodeIndex must be a valid pointer to a uint32_t value
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09140NNoneexplicitvkGetExecutionGraphPipelineNodeIndexAMDXcorepNodeInfo->pName must not be NULL
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09141NNoneexplicitvkGetExecutionGraphPipelineNodeIndexAMDXcorepNodeInfo->index must not be VK_SHADER_INDEX_UNUSED_AMDX
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-parameterYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXcorepNodeInfo must be a valid pointer to a valid VkPipelineShaderStageNodeCreateInfoAMDX structure
VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameterYNoneimplicitvkGetExecutionGraphPipelineScratchSizeAMDXcoredevice must be a valid VkDevice handle
VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parameterYNoneimplicitvkGetExecutionGraphPipelineScratchSizeAMDXcoreexecutionGraph must be a valid VkPipeline handle
VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parentYNoneimplicitvkGetExecutionGraphPipelineScratchSizeAMDXcoreexecutionGraph must have been created, allocated, or retrieved from device
VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-pSizeInfo-parameterYNoneimplicitvkGetExecutionGraphPipelineScratchSizeAMDXcorepSizeInfo must be a valid pointer to a VkExecutionGraphPipelineScratchSizeAMDX structure
VUID-vkGetFenceFdKHR-device-parameterYNoneimplicitvkGetFenceFdKHRcoredevice must be a valid VkDevice handle
VUID-vkGetFenceFdKHR-pFd-parameterYNoneimplicitvkGetFenceFdKHRcorepFd must be a valid pointer to an int value
VUID-vkGetFenceFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetFenceFdKHRcorepGetFdInfo must be a valid pointer to a valid VkFenceGetFdInfoKHR structure
VUID-vkGetFenceStatus-device-parameterYNoneimplicitvkGetFenceStatuscoredevice must be a valid VkDevice handle
VUID-vkGetFenceStatus-fence-parameterYNoneimplicitvkGetFenceStatuscorefence must be a valid VkFence handle
VUID-vkGetFenceStatus-fence-parentYNoneimplicitvkGetFenceStatuscorefence must have been created, allocated, or retrieved from device
VUID-vkGetFenceWin32HandleKHR-device-parameterYNoneimplicitvkGetFenceWin32HandleKHRcoredevice must be a valid VkDevice handle
VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetFenceWin32HandleKHRcorepGetWin32HandleInfo must be a valid pointer to a valid VkFenceGetWin32HandleInfoKHR structure
VUID-vkGetFenceWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetFenceWin32HandleKHRcorepHandle must be a valid pointer to a HANDLE value
VUID-vkGetFramebufferTilePropertiesQCOM-device-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOMcoredevice must be a valid VkDevice handle
VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOMcoreframebuffer must be a valid VkFramebuffer handle
VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parentYNoneimplicitvkGetFramebufferTilePropertiesQCOMcoreframebuffer must have been created, allocated, or retrieved from device
VUID-vkGetFramebufferTilePropertiesQCOM-pProperties-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOMcoreIf the value referenced by pPropertiesCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertiesCount VkTilePropertiesQCOM structures
VUID-vkGetFramebufferTilePropertiesQCOM-pPropertiesCount-parameterNNoneimplicitvkGetFramebufferTilePropertiesQCOMcorepPropertiesCount must be a valid pointer to a uint32_t value
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNVcoredevice must be a valid VkDevice handle
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906NNoneexplicitvkGetGeneratedCommandsMemoryRequirementsNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-09074NNoneexplicitvkGetGeneratedCommandsMemoryRequirementsNVcoreIf pInfo->pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNVcorepInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoNV structure
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNVcorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameterYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXTcoredevice must be a valid VkDevice handle
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272YNegativeImageDrm.GetImageDrmFormatModifierPropertiesexplicitvkGetImageDrmFormatModifierPropertiesEXTcoreimage must have been created with tiling equal to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameterYNegativeImageDrm.GetImageDrmFormatModifierPropertiesimplicitvkGetImageDrmFormatModifierPropertiesEXTcoreimage must be a valid VkImage handle
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parentYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXTcoreimage must have been created, allocated, or retrieved from device
VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameterYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXTcorepProperties must be a valid pointer to a VkImageDrmFormatModifierPropertiesEXT structure
VUID-vkGetImageMemoryRequirements-device-parameterYNoneimplicitvkGetImageMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetImageMemoryRequirements-image-01588YNegativeMemory.MemoryRequirementsexplicitvkGetImageMemoryRequirementscoreimage must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT flag set
VUID-vkGetImageMemoryRequirements-image-04004YNegativeAndroidHardwareBuffer.CreateImageViewexplicitvkGetImageMemoryRequirementscoreIf image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory
VUID-vkGetImageMemoryRequirements-image-08960NNoneexplicitvkGetImageMemoryRequirementscoreIf image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX external memory handle type, then image must be bound to memory
VUID-vkGetImageMemoryRequirements-image-parameterYNegativeImage.UnknownObjectimplicitvkGetImageMemoryRequirementscoreimage must be a valid VkImage handle
VUID-vkGetImageMemoryRequirements-image-parentYNegativeParent.BindImageimplicitvkGetImageMemoryRequirementscoreimage must have been created, allocated, or retrieved from device
VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetImageMemoryRequirementscorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure
VUID-vkGetImageMemoryRequirements2-device-parameterYNoneimplicitvkGetImageMemoryRequirements2coredevice must be a valid VkDevice handle
VUID-vkGetImageMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetImageMemoryRequirements2corepInfo must be a valid pointer to a valid VkImageMemoryRequirementsInfo2 structure
VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameterYNoneimplicitvkGetImageMemoryRequirements2corepMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076YNegativeDescriptorBuffer.NotEnabledexplicitvkGetImageOpaqueCaptureDescriptorDataEXTcoreThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-08078YNoneexplicitvkGetImageOpaqueCaptureDescriptorDataEXTcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXTcoredevice must be a valid VkDevice handle
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-08077NNoneexplicitvkGetImageOpaqueCaptureDescriptorDataEXTcorepData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXTcorepData must be a pointer value
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXTcorepInfo must be a valid pointer to a valid VkImageCaptureDescriptorDataInfoEXT structure
VUID-vkGetImageSparseMemoryRequirements-device-parameterYNoneimplicitvkGetImageSparseMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetImageSparseMemoryRequirements-image-parameterYNoneimplicitvkGetImageSparseMemoryRequirementscoreimage must be a valid VkImage handle
VUID-vkGetImageSparseMemoryRequirements-image-parentYNoneimplicitvkGetImageSparseMemoryRequirementscoreimage must have been created, allocated, or retrieved from device
VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameterNNoneimplicitvkGetImageSparseMemoryRequirementscorepSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameterYNoneimplicitvkGetImageSparseMemoryRequirementscoreIf the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements structures
VUID-vkGetImageSparseMemoryRequirements2-device-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2coredevice must be a valid VkDevice handle
VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2corepInfo must be a valid pointer to a valid VkImageSparseMemoryRequirementsInfo2 structure
VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameterNNoneimplicitvkGetImageSparseMemoryRequirements2corepSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2coreIf the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures
VUID-vkGetImageSubresourceLayout-arrayLayer-01717YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreThe arrayLayer member of pSubresource must be less than the arrayLayers specified in image
VUID-vkGetImageSubresourceLayout-aspectMask-00997YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreThe aspectMask member of pSubresource must only have a single bit set
VUID-vkGetImageSubresourceLayout-device-parameterYNoneimplicitvkGetImageSubresourceLayoutcoredevice must be a valid VkDevice handle
VUID-vkGetImageSubresourceLayout-format-04462YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreIf format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkGetImageSubresourceLayout-format-04463YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreIf format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkGetImageSubresourceLayout-format-04464YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreIf format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkGetImageSubresourceLayout-format-08886YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreIf format of the image is a color format that is not a multi-planar image format, and tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkGetImageSubresourceLayout-image-07790YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreimage must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-vkGetImageSubresourceLayout-image-09432YNegativeAndroidHardwareBuffer.FetchUnboundImageInfoexplicitvkGetImageSubresourceLayoutcoreIf image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory
VUID-vkGetImageSubresourceLayout-image-parameterYNoneimplicitvkGetImageSubresourceLayoutcoreimage must be a valid VkImage handle
VUID-vkGetImageSubresourceLayout-image-parentYNoneimplicitvkGetImageSubresourceLayoutcoreimage must have been created, allocated, or retrieved from device
VUID-vkGetImageSubresourceLayout-mipLevel-01716YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreThe mipLevel member of pSubresource must be less than the mipLevels specified in image
VUID-vkGetImageSubresourceLayout-pLayout-parameterYNoneimplicitvkGetImageSubresourceLayoutcorepLayout must be a valid pointer to a VkSubresourceLayout structure
VUID-vkGetImageSubresourceLayout-pSubresource-parameterYNoneimplicitvkGetImageSubresourceLayoutcorepSubresource must be a valid pointer to a valid VkImageSubresource structure
VUID-vkGetImageSubresourceLayout-tiling-08717YNegativeYcbcr.MultiplaneImageLayoutAspectFlagsexplicitvkGetImageSubresourceLayoutcoreIf the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask bit
VUID-vkGetImageSubresourceLayout-tiling-09433YNegativeImageDrm.GetImageSubresourceLayoutPlaneexplicitvkGetImageSubresourceLayoutcoreIf the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier
VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717YNegativeImage.GetImageSubresourceLayout2Maintenance5, NegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRcoreThe arrayLayer member of pSubresource must be less than the arrayLayers specified in image
VUID-vkGetImageSubresourceLayout2KHR-aspectMask-00997YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRcoreThe aspectMask member of pSubresource must only have a single bit set
VUID-vkGetImageSubresourceLayout2KHR-device-parameterYNoneimplicitvkGetImageSubresourceLayout2KHRcoredevice must be a valid VkDevice handle
VUID-vkGetImageSubresourceLayout2KHR-format-04462YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRcoreIf format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkGetImageSubresourceLayout2KHR-format-04463YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRcoreIf format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkGetImageSubresourceLayout2KHR-format-04464YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRcoreIf format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkGetImageSubresourceLayout2KHR-format-08886YNegativeImage.GetImageSubresourceLayout2Maintenance5, NegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRcoreIf format of the image is a color format that is not a multi-planar image format, and tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkGetImageSubresourceLayout2KHR-image-09434YNoneexplicitvkGetImageSubresourceLayout2KHRcoreIf image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory
VUID-vkGetImageSubresourceLayout2KHR-image-parameterYNoneimplicitvkGetImageSubresourceLayout2KHRcoreimage must be a valid VkImage handle
VUID-vkGetImageSubresourceLayout2KHR-image-parentYNoneimplicitvkGetImageSubresourceLayout2KHRcoreimage must have been created, allocated, or retrieved from device
VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716YNegativeImage.GetImageSubresourceLayout2Maintenance5, NegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRcoreThe mipLevel member of pSubresource must be less than the mipLevels specified in image
VUID-vkGetImageSubresourceLayout2KHR-pLayout-parameterYNoneimplicitvkGetImageSubresourceLayout2KHRcorepLayout must be a valid pointer to a VkSubresourceLayout2KHR structure
VUID-vkGetImageSubresourceLayout2KHR-pSubresource-parameterYNoneimplicitvkGetImageSubresourceLayout2KHRcorepSubresource must be a valid pointer to a valid VkImageSubresource2KHR structure
VUID-vkGetImageSubresourceLayout2KHR-tiling-08717YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRcoreIf the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask bit
VUID-vkGetImageSubresourceLayout2KHR-tiling-09435YNoneexplicitvkGetImageSubresourceLayout2KHRcoreIf the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier
VUID-vkGetImageViewAddressNVX-device-parameterYNoneimplicitvkGetImageViewAddressNVXcoredevice must be a valid VkDevice handle
VUID-vkGetImageViewAddressNVX-imageView-parameterYNoneimplicitvkGetImageViewAddressNVXcoreimageView must be a valid VkImageView handle
VUID-vkGetImageViewAddressNVX-imageView-parentYNoneimplicitvkGetImageViewAddressNVXcoreimageView must have been created, allocated, or retrieved from device
VUID-vkGetImageViewAddressNVX-pProperties-parameterYNoneimplicitvkGetImageViewAddressNVXcorepProperties must be a valid pointer to a VkImageViewAddressPropertiesNVX structure
VUID-vkGetImageViewHandleNVX-device-parameterYNoneimplicitvkGetImageViewHandleNVXcoredevice must be a valid VkDevice handle
VUID-vkGetImageViewHandleNVX-pInfo-parameterYNoneimplicitvkGetImageViewHandleNVXcorepInfo must be a valid pointer to a valid VkImageViewHandleInfoNVX structure
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080YNegativeDescriptorBuffer.NotEnabledexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTcoreThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-08082YNoneexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTcoredevice must be a valid VkDevice handle
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-08081NNoneexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTcorepData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageViewCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTcorepData must be a pointer value
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTcorepInfo must be a valid pointer to a valid VkImageViewCaptureDescriptorDataInfoEXT structure
VUID-vkGetInstanceProcAddr-instance-parameterYNoneimplicitvkGetInstanceProcAddrcoreIf instance is not NULL, instance must be a valid VkInstance handle
VUID-vkGetInstanceProcAddr-pName-parameterNNoneimplicitvkGetInstanceProcAddrcorepName must be a null-terminated UTF-8 string
VUID-vkGetLatencyTimingsNV-device-parameterYNoneimplicitvkGetLatencyTimingsNVcoredevice must be a valid VkDevice handle
VUID-vkGetLatencyTimingsNV-pLatencyMarkerInfo-parameterYNoneimplicitvkGetLatencyTimingsNVcorepLatencyMarkerInfo must be a valid pointer to a VkGetLatencyMarkerInfoNV structure
VUID-vkGetLatencyTimingsNV-swapchain-parameterYNoneimplicitvkGetLatencyTimingsNVcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetLatencyTimingsNV-swapchain-parentYNoneimplicitvkGetLatencyTimingsNVcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROIDcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROIDcorepBuffer must be a valid pointer to a valid pointer to an AHardwareBuffer value
VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROIDcorepInfo must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure
VUID-vkGetMemoryFdKHR-device-parameterYNoneimplicitvkGetMemoryFdKHRcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryFdKHR-pFd-parameterYNoneimplicitvkGetMemoryFdKHRcorepFd must be a valid pointer to an int value
VUID-vkGetMemoryFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetMemoryFdKHRcorepGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure
VUID-vkGetMemoryFdPropertiesKHR-device-parameterYNoneimplicitvkGetMemoryFdPropertiesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryFdPropertiesKHR-fd-00673YNegativeExternalMemorySync.FdMemoryHandlePropertiesexplicitvkGetMemoryFdPropertiesKHRcorefd must point to a valid POSIX file descriptor memory handle
VUID-vkGetMemoryFdPropertiesKHR-handleType-00674YNegativeExternalMemorySync.FdMemoryHandlePropertiesexplicitvkGetMemoryFdPropertiesKHRcorehandleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT
VUID-vkGetMemoryFdPropertiesKHR-handleType-parameterYNoneimplicitvkGetMemoryFdPropertiesKHRcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameterYNoneimplicitvkGetMemoryFdPropertiesKHRcorepMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure
VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXTcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752YNegativeExternalMemorySync.GetMemoryHostHandleTypeexplicitvkGetMemoryHostPointerPropertiesEXTcorehandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01754NNoneexplicitvkGetMemoryHostPointerPropertiesEXTcoreIf handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to host memory
VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755NNoneexplicitvkGetMemoryHostPointerPropertiesEXTcoreIf handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to host mapped foreign memory
VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXTcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753YNegativeExternalMemorySync.GetMemoryHostAlignmentexplicitvkGetMemoryHostPointerPropertiesEXTcorepHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment
VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXTcorepHostPointer must be a pointer value
VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXTcorepMemoryHostPointerProperties must be a valid pointer to a VkMemoryHostPointerPropertiesEXT structure
VUID-vkGetMemoryRemoteAddressNV-device-parameterYNoneimplicitvkGetMemoryRemoteAddressNVcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryRemoteAddressNV-pAddress-parameterYNoneimplicitvkGetMemoryRemoteAddressNVcorepAddress must be a valid pointer to a VkRemoteAddressNV value
VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameterYNoneimplicitvkGetMemoryRemoteAddressNVcorepMemoryGetRemoteAddressInfo must be a valid pointer to a valid VkMemoryGetRemoteAddressInfoNV structure
VUID-vkGetMemoryWin32HandleKHR-device-parameterYNoneimplicitvkGetMemoryWin32HandleKHRcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetMemoryWin32HandleKHRcorepGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure
VUID-vkGetMemoryWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetMemoryWin32HandleKHRcorepHandle must be a valid pointer to a HANDLE value
VUID-vkGetMemoryWin32HandleNV-device-parameterYNoneimplicitvkGetMemoryWin32HandleNVcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandleNV-handleType-01326NNoneexplicitvkGetMemoryWin32HandleNVcorehandleType must be a flag specified in VkExportMemoryAllocateInfoNV::handleTypes when allocating memory
VUID-vkGetMemoryWin32HandleNV-handleType-parameterYNoneimplicitvkGetMemoryWin32HandleNVcorehandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmaskYNoneimplicitvkGetMemoryWin32HandleNVcorehandleType must not be 0
VUID-vkGetMemoryWin32HandleNV-memory-parameterYNoneimplicitvkGetMemoryWin32HandleNVcorememory must be a valid VkDeviceMemory handle
VUID-vkGetMemoryWin32HandleNV-memory-parentYNoneimplicitvkGetMemoryWin32HandleNVcorememory must have been created, allocated, or retrieved from device
VUID-vkGetMemoryWin32HandleNV-pHandle-parameterYNoneimplicitvkGetMemoryWin32HandleNVcorepHandle must be a valid pointer to a HANDLE value
VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665YNegativeExternalMemorySync.Win32MemoryHandlePropertiesexplicitvkGetMemoryWin32HandlePropertiesKHRcorehandle must point to a valid Windows memory handle
VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666YNegativeExternalMemorySync.Win32MemoryHandlePropertiesexplicitvkGetMemoryWin32HandlePropertiesKHRcorehandleType must not be one of the handle types defined as opaque
VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHRcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHRcorepMemoryWin32HandleProperties must be a valid pointer to a VkMemoryWin32HandlePropertiesKHR structure
VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryZirconHandleFUCHSIA-pGetZirconHandleInfo-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIAcorepGetZirconHandleInfo must be a valid pointer to a valid VkMemoryGetZirconHandleInfoFUCHSIA structure
VUID-vkGetMemoryZirconHandleFUCHSIA-pZirconHandle-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIAcorepZirconHandle must be a valid pointer to a zx_handle_t value
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773NNoneexplicitvkGetMemoryZirconHandlePropertiesFUCHSIAcorehandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIAcorehandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-pMemoryZirconHandleProperties-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIAcorepMemoryZirconHandleProperties must be a valid pointer to a VkMemoryZirconHandlePropertiesFUCHSIA structure
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774NNoneexplicitvkGetMemoryZirconHandlePropertiesFUCHSIAcorezirconHandle must reference a valid VMO
VUID-vkGetMicromapBuildSizesEXT-buildType-parameterYNoneimplicitvkGetMicromapBuildSizesEXTcorebuildType must be a valid VkAccelerationStructureBuildTypeKHR value
VUID-vkGetMicromapBuildSizesEXT-device-07440NNoneexplicitvkGetMicromapBuildSizesEXTcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetMicromapBuildSizesEXT-device-parameterYNoneimplicitvkGetMicromapBuildSizesEXTcoredevice must be a valid VkDevice handle
VUID-vkGetMicromapBuildSizesEXT-dstMicromap-09180NNoneexplicitvkGetMicromapBuildSizesEXTcoreVkMicromapBuildInfoEXT::dstMicromap must have been created from device
VUID-vkGetMicromapBuildSizesEXT-micromap-07439NNoneexplicitvkGetMicromapBuildSizesEXTcoreThe micromap feature must be enabled
VUID-vkGetMicromapBuildSizesEXT-pBuildInfo-parameterYNoneimplicitvkGetMicromapBuildSizesEXTcorepBuildInfo must be a valid pointer to a valid VkMicromapBuildInfoEXT structure
VUID-vkGetMicromapBuildSizesEXT-pSizeInfo-parameterYNoneimplicitvkGetMicromapBuildSizesEXTcorepSizeInfo must be a valid pointer to a VkMicromapBuildSizesInfoEXT structure
VUID-vkGetPastPresentationTimingGOOGLE-device-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLEcoredevice must be a valid VkDevice handle
VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameterNNoneimplicitvkGetPastPresentationTimingGOOGLEcorepPresentationTimingCount must be a valid pointer to a uint32_t value
VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLEcoreIf the value referenced by pPresentationTimingCount is not 0, and pPresentationTimings is not NULL, pPresentationTimings must be a valid pointer to an array of pPresentationTimingCount VkPastPresentationTimingGOOGLE structures
VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLEcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parentYNoneimplicitvkGetPastPresentationTimingGOOGLEcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkGetPerformanceParameterINTEL-device-parameterYNoneimplicitvkGetPerformanceParameterINTELcoredevice must be a valid VkDevice handle
VUID-vkGetPerformanceParameterINTEL-pValue-parameterYNoneimplicitvkGetPerformanceParameterINTELcorepValue must be a valid pointer to a VkPerformanceValueINTEL structure
VUID-vkGetPerformanceParameterINTEL-parameter-parameterYNoneimplicitvkGetPerformanceParameterINTELcoreparameter must be a valid VkPerformanceParameterTypeINTEL value
VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomainCount-parameterNNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsKHRcorepTimeDomainCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomains-parameterYNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsKHRcoreIf the value referenced by pTimeDomainCount is not 0, and pTimeDomains is not NULL, pTimeDomains must be a valid pointer to an array of pTimeDomainCount VkTimeDomainKHR values
VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesKHRcoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesKHR structures
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesKHRcorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNVcoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesNV structures
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNVcorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNVcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameterYNoneimplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXTcoredfb must be a valid pointer to an IDirectFB value
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119NNoneexplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXTcorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHRcoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlaneProperties2KHR structures
VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHRcorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHRcoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlanePropertiesKHR structures
VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHRcorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHRcoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayProperties2KHR structures
VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHRcorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPropertiesKHRcoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPropertiesKHR structures
VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceDisplayPropertiesKHRcorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPropertiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferPropertiescorepExternalBufferInfo must be a valid pointer to a valid VkPhysicalDeviceExternalBufferInfo structure
VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferPropertiescorepExternalBufferProperties must be a valid pointer to a VkExternalBufferProperties structure
VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalFencePropertiescorepExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure
VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalFencePropertiescorepExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure
VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalFencePropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-07721NNoneexplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcoreexternalHandleType must not have more than one bit set
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcoreexternalHandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcoreflags must be a valid combination of VkImageCreateFlagBits values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcoreformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-pExternalImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcorepExternalImageFormatProperties must be a valid pointer to a VkExternalImageFormatPropertiesNV structure
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-tiling-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcoretiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-type-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcoretype must be a valid VkImageType value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmaskYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVcoreusage must not be 0
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphorePropertiescorepExternalSemaphoreInfo must be a valid pointer to a valid VkPhysicalDeviceExternalSemaphoreInfo structure
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphorePropertiescorepExternalSemaphoreProperties must be a valid pointer to a VkExternalSemaphoreProperties structure
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphorePropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameterYVkLayerTest.RequiredParameterimplicitvkGetPhysicalDeviceFeaturescorepFeatures must be a valid pointer to a VkPhysicalDeviceFeatures structure
VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFeaturescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFeatures2-pFeatures-parameterYNoneimplicitvkGetPhysicalDeviceFeatures2corepFeatures must be a valid pointer to a VkPhysicalDeviceFeatures2 structure
VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFeatures2corephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFormatProperties-format-parameterYNoneimplicitvkGetPhysicalDeviceFormatPropertiescoreformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceFormatPropertiescorepFormatProperties must be a valid pointer to a VkFormatProperties structure
VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFormatPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFormatProperties2-format-parameterYNoneimplicitvkGetPhysicalDeviceFormatProperties2coreformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceFormatProperties2-pFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceFormatProperties2corepFormatProperties must be a valid pointer to a VkFormatProperties2 structure
VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFormatProperties2corephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRateCount-parameterNNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHRcorepFragmentShadingRateCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRates-parameterYNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHRcoreIf the value referenced by pFragmentShadingRateCount is not 0, and pFragmentShadingRates is not NULL, pFragmentShadingRates must be a valid pointer to an array of pFragmentShadingRateCount VkPhysicalDeviceFragmentShadingRateKHR structures
VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameterYVkLayerTest.GetPhysicalDeviceImageFormatPropertiesFlagsimplicitvkGetPhysicalDeviceImageFormatPropertiescoreflags must be a valid combination of VkImageCreateFlagBits values
VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoreformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescorepImageFormatProperties must be a valid pointer to a VkImageFormatProperties structure
VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248YNegativeImageDrm.BasicexplicitvkGetPhysicalDeviceImageFormatPropertiescoretiling must not be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. (Use vkGetPhysicalDeviceImageFormatProperties2 instead)
VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoretiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoretype must be a valid VkImageType value
VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmaskYVkLayerTest.GetPhysicalDeviceImageFormatPropertiesFlagsimplicitvkGetPhysicalDeviceImageFormatPropertiescoreusage must not be 0
VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2corepImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure
VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2corepImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure
VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868YNegativeAndroidHardwareBuffer.PhysDevImageFormatProp2explicitvkGetPhysicalDeviceImageFormatProperties2coreIf the pNext chain of pImageFormatProperties includes a VkAndroidHardwareBufferUsageANDROID structure, the pNext chain of pImageFormatInfo must include a VkPhysicalDeviceExternalImageFormatInfo structure with handleType set to VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-09004YNoneexplicitvkGetPhysicalDeviceImageFormatProperties2coreIf the pNext chain of pImageFormatProperties includes a VkHostImageCopyDevicePerformanceQueryEXT structure, pImageFormatInfo->usage must contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2corephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameterYNoneimplicitvkGetPhysicalDeviceMemoryPropertiescorepMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure
VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMemoryPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameterYNoneimplicitvkGetPhysicalDeviceMemoryProperties2corepMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties2 structure
VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMemoryProperties2corephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-pMultisampleProperties-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXTcorepMultisampleProperties must be a valid pointer to a VkMultisamplePropertiesEXT structure
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXTcoresamples must be a valid VkSampleCountFlagBits value
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pFormatCount-parameterNNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNVcorepFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNVcoreIf the value referenced by pFormatCount is not 0, and pImageFormatProperties is not NULL, pImageFormatProperties must be a valid pointer to an array of pFormatCount VkOpticalFlowImageFormatPropertiesNV structures
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pOpticalFlowImageFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNVcorepOpticalFlowImageFormatInfo must be a valid pointer to a valid VkOpticalFlowImageFormatInfoNV structure
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNVcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparentYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRcoreBoth of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameterNNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRcorepRectCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRcoreIf the value referenced by pRectCount is not 0, and pRects is not NULL, pRects must be a valid pointer to an array of pRectCount VkRect2D structures
VUID-vkGetPhysicalDevicePresentRectanglesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06211YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDevicePresentRectanglesKHRcoresurface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06523NNoneexplicitvkGetPhysicalDevicePresentRectanglesKHRcoresurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRcoresurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceProperties-pProperties-parameterYNoneimplicitvkGetPhysicalDevicePropertiescorepProperties must be a valid pointer to a VkPhysicalDeviceProperties structure
VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDevicePropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceProperties2-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceProperties2corepProperties must be a valid pointer to a VkPhysicalDeviceProperties2 structure
VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceProperties2corephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pNumPasses-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRcorepNumPasses must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRcorepPerformanceQueryCreateInfo must be a valid pointer to a valid VkQueryPoolPerformanceCreateInfoKHR structure
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPropertiescoreIf the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties structures
VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceQueueFamilyPropertiescorepQueueFamilyPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2coreIf the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties2 structures
VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2corepQueueFamilyPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2corephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceScreenPresentationSupportQNXcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743YNoneexplicitvkGetPhysicalDeviceScreenPresentationSupportQNXcorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameterYNoneimplicitvkGetPhysicalDeviceScreenPresentationSupportQNXcorewindow must be a valid pointer to a _screen_window value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoreformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties structures
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094NNoneexplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoresamples must be a valid VkSampleCountFlagBits value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoresamples must be a valid VkSampleCountFlagBits value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoretiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoretype must be a valid VkImageType value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmaskYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoreusage must not be 0
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2corepFormatInfo must be a valid pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2 structure
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2coreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties2 structures
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2corepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2corephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameterNNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVcorepCombinationCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameterYNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVcoreIf the value referenced by pCombinationCount is not 0, and pCombinations is not NULL, pCombinations must be a valid pointer to an array of pCombinationCount VkFramebufferMixedSamplesCombinationNV structures
VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparentYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTcoreBoth of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTcorepSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2EXT structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06211YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTcoresurface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06523NNoneexplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTcoresurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTcoresurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671YNegativeWsi.PhysicalDeviceSurfaceCapabilitiesexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcoreIf a VkSurfaceCapabilitiesFullScreenExclusiveEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain of pSurfaceInfo
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07776YNegativeWsi.SwapchainMaintenance1ExtensionCapsexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcoreIf a VkSurfacePresentModeCompatibilityEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfacePresentModeEXT structure must be included in the pNext chain of pSurfaceInfo
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07777YNegativeWsi.SwapchainMaintenance1ExtensionCapsexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcoreIf a VkSurfacePresentScalingCapabilitiesEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfacePresentModeEXT structure must be included in the pNext chain of pSurfaceInfo
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07778YNegativeWsi.SwapchainMaintenance1ExtensionCapsexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcoreIf a VkSurfacePresentModeCompatibilityEXT structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07779YNegativeWsi.SwapchainMaintenance1ExtensionCapsexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcoreIf a VkSurfacePresentScalingCapabilitiesEXT structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcorepSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2KHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06521YNoneexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcoreIf the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06522YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcoreIf pSurfaceInfo->surface is not VK_NULL_HANDLE, pSurfaceInfo->surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcorepSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparentYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRcoreBoth of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRcorepSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06211YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRcoresurface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06523NNoneexplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRcoresurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRcoresurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameterNNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHRcorepSurfaceFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHRcoreIf the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormat2KHR structures
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06521YNoneexplicitvkGetPhysicalDeviceSurfaceFormats2KHRcoreIf the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceFormats2KHRcoreIf pSurfaceInfo->surface is not VK_NULL_HANDLE, pSurfaceInfo->surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHRcorepSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparentYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRcoreBoth of physicalDevice, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormatCount-parameterNNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRcorepSurfaceFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRcoreIf the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormatKHR structures
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06524YNoneexplicitvkGetPhysicalDeviceSurfaceFormatsKHRcoreIf the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06525YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceFormatsKHRcoreIf surface is not VK_NULL_HANDLE, surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRcoreIf surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameterNNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXTcorepPresentModeCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXTcoreIf the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06521YNoneexplicitvkGetPhysicalDeviceSurfacePresentModes2EXTcoreIf the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522YNoneexplicitvkGetPhysicalDeviceSurfacePresentModes2EXTcoreIf pSurfaceInfo->surface is not VK_NULL_HANDLE, pSurfaceInfo->surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXTcorepSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparentYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRcoreBoth of physicalDevice, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModeCount-parameterNNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRcorepPresentModeCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRcoreIf the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06524YNoneexplicitvkGetPhysicalDeviceSurfacePresentModesKHRcoreIf the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525YNoneexplicitvkGetPhysicalDeviceSurfacePresentModesKHRcoreIf surface is not VK_NULL_HANDLE, surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRcoreIf surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparentYNegativeParent.Instance_PhysicalDeviceAndSurfaceimplicitvkGetPhysicalDeviceSurfaceSupportKHRcoreBoth of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHRcorepSupported must be a valid pointer to a VkBool32 value
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269YNoneexplicitvkGetPhysicalDeviceSurfaceSupportKHRcorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHRcoresurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameterNNoneimplicitvkGetPhysicalDeviceToolPropertiescorepToolCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameterYNoneimplicitvkGetPhysicalDeviceToolPropertiescoreIf the value referenced by pToolCount is not 0, and pToolProperties is not NULL, pToolProperties must be a valid pointer to an array of pToolCount VkPhysicalDeviceToolProperties structures
VUID-vkGetPhysicalDeviceToolProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceToolPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcorepCapabilities must be a valid pointer to a VkVideoCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07183YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcoreIf pVideoProfile->videoCodecOperation specifies a decode operation, then the pNext chain of pCapabilities must include a VkVideoDecodeCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07184YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcoreIf pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeH264CapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07185YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcoreIf pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeH265CapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07186YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcoreIf pVideoProfile->videoCodecOperation specifies an encode operation, then the pNext chain of pCapabilities must include a VkVideoEncodeCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07187YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcoreIf pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoEncodeH264CapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07188YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcoreIf pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoEncodeH265CapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcorepVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-08257YNegativeVideo.EncodeQualityLevelPropsMissingChainexplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRcoreIf pQualityLevelInfo->pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the pNext chain of pQualityLevelProperties must include a VkVideoEncodeH264QualityLevelPropertiesKHR structure
VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-08258YNegativeVideo.EncodeQualityLevelPropsMissingChainexplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRcoreIf pQualityLevelInfo->pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext chain of pQualityLevelProperties must include a VkVideoEncodeH265QualityLevelPropertiesKHR structure
VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-parameterYNoneimplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRcorepQualityLevelInfo must be a valid pointer to a valid VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR structure
VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelProperties-parameterYNoneimplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRcorepQualityLevelProperties must be a valid pointer to a VkVideoEncodeQualityLevelPropertiesKHR structure
VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pNext-06812YNegativeVideo.VideoFormatQueryMissingProfileexplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRcoreThe pNext chain of pVideoFormatInfo must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRcorepVideoFormatInfo must be a valid pointer to a valid VkPhysicalDeviceVideoFormatInfoKHR structure
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRcoreIf the value referenced by pVideoFormatPropertyCount is not 0, and pVideoFormatProperties is not NULL, pVideoFormatProperties must be a valid pointer to an array of pVideoFormatPropertyCount VkVideoFormatPropertiesKHR structures
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRcorepVideoFormatPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameterYNoneimplicitvkGetPhysicalDeviceWaylandPresentationSupportKHRcoredisplay must be a valid pointer to a wl_display value
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceWaylandPresentationSupportKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306YNoneexplicitvkGetPhysicalDeviceWaylandPresentationSupportKHRcorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceWin32PresentationSupportKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309YNoneexplicitvkGetPhysicalDeviceWin32PresentationSupportKHRcorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameterYNoneimplicitvkGetPhysicalDeviceXcbPresentationSupportKHRcoreconnection must be a valid pointer to an xcb_connection_t value
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceXcbPresentationSupportKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312YNoneexplicitvkGetPhysicalDeviceXcbPresentationSupportKHRcorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameterYNoneimplicitvkGetPhysicalDeviceXlibPresentationSupportKHRcoredpy must be a valid pointer to a Display value
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceXlibPresentationSupportKHRcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315YNoneexplicitvkGetPhysicalDeviceXlibPresentationSupportKHRcorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPipelineCacheData-device-parameterYNoneimplicitvkGetPipelineCacheDatacoredevice must be a valid VkDevice handle
VUID-vkGetPipelineCacheData-pData-parameterYNoneimplicitvkGetPipelineCacheDatacoreIf the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes
VUID-vkGetPipelineCacheData-pDataSize-parameterNNoneimplicitvkGetPipelineCacheDatacorepDataSize must be a valid pointer to a size_t value
VUID-vkGetPipelineCacheData-pipelineCache-parameterYNoneimplicitvkGetPipelineCacheDatacorepipelineCache must be a valid VkPipelineCache handle
VUID-vkGetPipelineCacheData-pipelineCache-parentYNoneimplicitvkGetPipelineCacheDatacorepipelineCache must have been created, allocated, or retrieved from device
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHRcoredevice must be a valid VkDevice handle
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHRcorepExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameterNNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHRcorepInternalRepresentationCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHRcoreIf the value referenced by pInternalRepresentationCount is not 0, and pInternalRepresentations is not NULL, pInternalRepresentations must be a valid pointer to an array of pInternalRepresentationCount VkPipelineExecutableInternalRepresentationKHR structures
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277YNegativeParent.PipelineExecutableInfoexplicitvkGetPipelineExecutableInternalRepresentationsKHRcoreThe pipeline member of pExecutableInfo must have been created with device
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableInternalRepresentationsKHRcoreThe pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableInternalRepresentationsKHRcoreThe pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelineExecutablePropertiesKHR-device-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameterNNoneimplicitvkGetPipelineExecutablePropertiesKHRcorepExecutableCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHRcorepPipelineInfo must be a valid pointer to a valid VkPipelineInfoKHR structure
VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHRcoreIf the value referenced by pExecutableCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pExecutableCount VkPipelineExecutablePropertiesKHR structures
VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271YNegativeParent.PipelineExecutableInfoexplicitvkGetPipelineExecutablePropertiesKHRcoreThe pipeline member of pPipelineInfo must have been created with device
VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutablePropertiesKHRcoreThe pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelineExecutableStatisticsKHR-device-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHRcoredevice must be a valid VkDevice handle
VUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHRcorepExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure
VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameterNNoneimplicitvkGetPipelineExecutableStatisticsKHRcorepStatisticCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHRcoreIf the value referenced by pStatisticCount is not 0, and pStatistics is not NULL, pStatistics must be a valid pointer to an array of pStatisticCount VkPipelineExecutableStatisticKHR structures
VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273YNegativeParent.PipelineExecutableInfoexplicitvkGetPipelineExecutableStatisticsKHRcoreThe pipeline member of pExecutableInfo must have been created with device
VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableStatisticsKHRcoreThe pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableStatisticsKHRcoreThe pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameterYNoneimplicitvkGetPipelineIndirectDeviceAddressNVcoredevice must be a valid VkDevice handle
VUID-vkGetPipelineIndirectDeviceAddressNV-deviceGeneratedComputePipelines-09078NNoneexplicitvkGetPipelineIndirectDeviceAddressNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameterYNoneimplicitvkGetPipelineIndirectDeviceAddressNVcorepInfo must be a valid pointer to a valid VkPipelineIndirectDeviceAddressInfoNV structure
VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameterYNoneimplicitvkGetPipelineIndirectMemoryRequirementsNVcoredevice must be a valid VkDevice handle
VUID-vkGetPipelineIndirectMemoryRequirementsNV-deviceGeneratedComputePipelines-09082NNoneexplicitvkGetPipelineIndirectMemoryRequirementsNVcoreThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-09083NNoneexplicitvkGetPipelineIndirectMemoryRequirementsNVcorepCreateInfo->flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-parameterYNoneimplicitvkGetPipelineIndirectMemoryRequirementsNVcorepCreateInfo must be a valid pointer to a valid VkComputePipelineCreateInfo structure
VUID-vkGetPipelineIndirectMemoryRequirementsNV-pMemoryRequirements-parameterYNoneimplicitvkGetPipelineIndirectMemoryRequirementsNVcorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetPipelinePropertiesEXT-None-06766NNoneexplicitvkGetPipelinePropertiesEXTcoreThe pipelinePropertiesIdentifier feature must be enabled
VUID-vkGetPipelinePropertiesEXT-device-parameterYNoneimplicitvkGetPipelinePropertiesEXTcoredevice must be a valid VkDevice handle
VUID-vkGetPipelinePropertiesEXT-pPipelineInfo-parameterYNoneimplicitvkGetPipelinePropertiesEXTcorepPipelineInfo must be a valid pointer to a valid VkPipelineInfoEXT structure
VUID-vkGetPipelinePropertiesEXT-pPipelineProperties-06739NNoneexplicitvkGetPipelinePropertiesEXTcorepPipelineProperties must be a valid pointer to a VkPipelinePropertiesIdentifierEXT structure
VUID-vkGetPipelinePropertiesEXT-pipeline-06738NNoneexplicitvkGetPipelinePropertiesEXTcoreThe pipeline member of pPipelineInfo must have been created with device
VUID-vkGetPrivateData-device-parameterNNoneimplicitvkGetPrivateDatacoredevice must be a valid VkDevice handle
VUID-vkGetPrivateData-objectHandle-09498YNegativeTooling.PrivateDataGetBadHandle, NegativeTooling.PrivateDataGetDestroyedHandleexplicitvkGetPrivateDatacoreobjectHandle must be a valid handle to an object of type objectType
VUID-vkGetPrivateData-objectType-04018YNegativeTooling.PrivateDataGetNonDeviceexplicitvkGetPrivateDatacoreobjectHandle must be device or a child of device
VUID-vkGetPrivateData-objectType-parameterYNoneimplicitvkGetPrivateDatacoreobjectType must be a valid VkObjectType value
VUID-vkGetPrivateData-pData-parameterYNoneimplicitvkGetPrivateDatacorepData must be a valid pointer to a uint64_t value
VUID-vkGetPrivateData-privateDataSlot-parameterYNoneimplicitvkGetPrivateDatacoreprivateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkGetPrivateData-privateDataSlot-parentYNoneimplicitvkGetPrivateDatacoreprivateDataSlot must have been created, allocated, or retrieved from device
VUID-vkGetQueryPoolResults-None-09401YNegativeQuery.GetQueryPoolResultsWithoutReset, NegativeVideo.GetQueryPoolResultsVideoQueryDataSizeexplicitvkGetQueryPoolResultscoreAll queries used by the command must not be uninitialized
VUID-vkGetQueryPoolResults-dataSize-00817YNegativeQuery.PreciseBit, NegativeVideo.GetQueryPoolResultsVideoQueryDataSizeexplicitvkGetQueryPoolResultscoredataSize must be large enough to contain the result of each query, as described here
VUID-vkGetQueryPoolResults-dataSize-arraylengthYNoneimplicitvkGetQueryPoolResultscoredataSize must be greater than 0
VUID-vkGetQueryPoolResults-device-parameterYNoneimplicitvkGetQueryPoolResultscoredevice must be a valid VkDevice handle
VUID-vkGetQueryPoolResults-firstQuery-09436YNegativeQuery.SizesexplicitvkGetQueryPoolResultscorefirstQuery must be less than the number of queries in queryPool
VUID-vkGetQueryPoolResults-firstQuery-09437YNegativeQuery.SizesexplicitvkGetQueryPoolResultscoreThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkGetQueryPoolResults-flags-00815YNegativeQuery.StrideexplicitvkGetQueryPoolResultscoreIf VK_QUERY_RESULT_64_BIT is set in flags then pData and stride must be multiples of 8
VUID-vkGetQueryPoolResults-flags-02828YNegativeQuery.Stride, NegativeQuery.TestGetQueryPoolResultsDataAndStrideexplicitvkGetQueryPoolResultscoreIf VK_QUERY_RESULT_64_BIT is not set in flags and the queryType used to create queryPool was not VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of 4
VUID-vkGetQueryPoolResults-flags-09443YNegativeQuery.GetResultsFlags, NegativeVideo.GetQueryPoolResultsStatusBitexplicitvkGetQueryPoolResultscoreIf flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
VUID-vkGetQueryPoolResults-flags-parameterYNoneimplicitvkGetQueryPoolResultscoreflags must be a valid combination of VkQueryResultFlagBits values
VUID-vkGetQueryPoolResults-pData-parameterYNoneimplicitvkGetQueryPoolResultscorepData must be a valid pointer to an array of dataSize bytes
VUID-vkGetQueryPoolResults-queryCount-09438YNegativeQuery.GetResultsStrideexplicitvkGetQueryPoolResultscoreIf queryCount is greater than 1, stride must not be zero
VUID-vkGetQueryPoolResults-queryPool-parameterYNegativeQuery.GetQueryPoolResultsWithoutQueryPoolimplicitvkGetQueryPoolResultscorequeryPool must be a valid VkQueryPool handle
VUID-vkGetQueryPoolResults-queryPool-parentYNoneimplicitvkGetQueryPoolResultscorequeryPool must have been created, allocated, or retrieved from device
VUID-vkGetQueryPoolResults-queryType-03229YNegativeQuery.PerformanceIncompletePassesexplicitvkGetQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of the size of VkPerformanceCounterResultKHR
VUID-vkGetQueryPoolResults-queryType-04519YNegativeQuery.PerformanceIncompletePassesexplicitvkGetQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then stride must be large enough to contain the VkQueryPoolPerformanceCreateInfoKHR::counterIndexCount used to create queryPool times the size of VkPerformanceCounterResultKHR
VUID-vkGetQueryPoolResults-queryType-09439YNegativeQuery.PoolPartialTimestampexplicitvkGetQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT
VUID-vkGetQueryPoolResults-queryType-09440YNegativeQuery.PerformanceIncompletePassesexplicitvkGetQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, VK_QUERY_RESULT_PARTIAL_BIT, or VK_QUERY_RESULT_64_BIT
VUID-vkGetQueryPoolResults-queryType-09441YNegativeQuery.PerformanceIncompletePassesexplicitvkGetQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been recorded once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
VUID-vkGetQueryPoolResults-queryType-09442YNegativeQuery.ResultStatusOnly, NegativeVideo.GetQueryPoolResultsStatusBitexplicitvkGetQueryPoolResultscoreIf 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-vkGetQueryPoolResults-stride-08993NNoneexplicitvkGetQueryPoolResultscoreIf VK_QUERY_RESULT_WITH_AVAILABILITY_BIT is set, stride must be large enough to contain the unsigned integer representing availability or status in addition to the query result.
VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameterYNoneimplicitvkGetQueueCheckpointData2NVcoreIf the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointData2NV structures
VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameterNNoneimplicitvkGetQueueCheckpointData2NVcorepCheckpointDataCount must be a valid pointer to a uint32_t value
VUID-vkGetQueueCheckpointData2NV-queue-03892NNoneexplicitvkGetQueueCheckpointData2NVcoreThe device that queue belongs to must be in the lost state
VUID-vkGetQueueCheckpointData2NV-queue-parameterYNoneimplicitvkGetQueueCheckpointData2NVcorequeue must be a valid VkQueue handle
VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameterYNoneimplicitvkGetQueueCheckpointDataNVcoreIf the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointDataNV structures
VUID-vkGetQueueCheckpointDataNV-pCheckpointDataCount-parameterNNoneimplicitvkGetQueueCheckpointDataNVcorepCheckpointDataCount must be a valid pointer to a uint32_t value
VUID-vkGetQueueCheckpointDataNV-queue-02025NNoneexplicitvkGetQueueCheckpointDataNVcoreThe device that queue belongs to must be in the lost state
VUID-vkGetQueueCheckpointDataNV-queue-parameterYNoneimplicitvkGetQueueCheckpointDataNVcorequeue must be a valid VkQueue handle
VUID-vkGetRandROutputDisplayEXT-dpy-parameterYNoneimplicitvkGetRandROutputDisplayEXTcoredpy must be a valid pointer to a Display value
VUID-vkGetRandROutputDisplayEXT-pDisplay-parameterYNoneimplicitvkGetRandROutputDisplayEXTcorepDisplay must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameterYNoneimplicitvkGetRandROutputDisplayEXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484YNegativeRayTracingPipeline.GetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcoredataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleCaptureReplaySize × groupCount
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylengthYNegativeRayTracingPipeline.GetCaptureReplayShaderGroupHandlesKHRimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcoredataSize must be greater than 0
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483YNegativeRayTracingPipeline.GetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcoreThe sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051YNegativeRayTracingPipeline.GetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcorefirstGroup must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcorepData must be a valid pointer to an array of dataSize bytes
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-03607YNoneexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcorepipeline must have been created with a flags that included VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-04620YNegativeRayTracingPipeline.PipelineTypeCaptureReplayexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcorepipeline must be a ray tracing pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-07829YNegativeRayTracingPipeline.LibraryGroupHandlesEXTexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcoreIf the pipelineLibraryGroupHandles feature is not enabled, pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcorepipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parentYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcorepipeline must have been created, allocated, or retrieved from device
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03606YNoneexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRcoreVkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled to call this function
VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420YNoneexplicitvkGetRayTracingShaderGroupHandlesKHRcoredataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleSize × groupCount
VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylengthYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRcoredataSize must be greater than 0
VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-02419YNoneexplicitvkGetRayTracingShaderGroupHandlesKHRcoreThe sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050YNoneexplicitvkGetRayTracingShaderGroupHandlesKHRcorefirstGroup must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-pData-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRcorepData must be a valid pointer to an array of dataSize bytes
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-04619YNegativeRayTracingPipeline.PipelineTypeGroupHandlesexplicitvkGetRayTracingShaderGroupHandlesKHRcorepipeline must be a ray tracing pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-07828YNegativeRayTracingPipeline.LibraryGroupHandlesEXTexplicitvkGetRayTracingShaderGroupHandlesKHRcoreIf the pipelineLibraryGroupHandles feature is not enabled, pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRcorepipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parentYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRcorepipeline must have been created, allocated, or retrieved from device
VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHRcoredevice must be a valid VkDevice handle
VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608YNoneexplicitvkGetRayTracingShaderGroupStackSizeKHRcoreThe value of group must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609NNoneexplicitvkGetRayTracingShaderGroupStackSizeKHRcoreThe shader identified by groupShader in group must not be VK_SHADER_UNUSED_KHR
VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHRcoregroupShader must be a valid VkShaderGroupShaderKHR value
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622YNegativeRayTracingPipeline.PipelineTypeGroupStackSizeexplicitvkGetRayTracingShaderGroupStackSizeKHRcorepipeline must be a ray tracing pipeline
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHRcorepipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parentYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHRcorepipeline must have been created, allocated, or retrieved from device
VUID-vkGetRefreshCycleDurationGOOGLE-device-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLEcoredevice must be a valid VkDevice handle
VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLEcorepDisplayTimingProperties must be a valid pointer to a VkRefreshCycleDurationGOOGLE structure
VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLEcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parentYNoneimplicitvkGetRefreshCycleDurationGOOGLEcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkGetRenderAreaGranularity-device-parameterYNoneimplicitvkGetRenderAreaGranularitycoredevice must be a valid VkDevice handle
VUID-vkGetRenderAreaGranularity-pGranularity-parameterYNoneimplicitvkGetRenderAreaGranularitycorepGranularity must be a valid pointer to a VkExtent2D structure
VUID-vkGetRenderAreaGranularity-renderPass-parameterYNoneimplicitvkGetRenderAreaGranularitycorerenderPass must be a valid VkRenderPass handle
VUID-vkGetRenderAreaGranularity-renderPass-parentYNoneimplicitvkGetRenderAreaGranularitycorerenderPass must have been created, allocated, or retrieved from device
VUID-vkGetRenderingAreaGranularityKHR-device-parameterYNoneimplicitvkGetRenderingAreaGranularityKHRcoredevice must be a valid VkDevice handle
VUID-vkGetRenderingAreaGranularityKHR-pGranularity-parameterYNoneimplicitvkGetRenderingAreaGranularityKHRcorepGranularity must be a valid pointer to a VkExtent2D structure
VUID-vkGetRenderingAreaGranularityKHR-pRenderingAreaInfo-parameterYNoneimplicitvkGetRenderingAreaGranularityKHRcorepRenderingAreaInfo must be a valid pointer to a valid VkRenderingAreaInfoKHR structure
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084YNegativeDescriptorBuffer.NotEnabledexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTcoreThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-08086YNoneexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTcoreIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTcoredevice must be a valid VkDevice handle
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-08085NNoneexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTcorepData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTcorepData must be a pointer value
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTcorepInfo must be a valid pointer to a valid VkSamplerCaptureDescriptorDataInfoEXT structure
VUID-vkGetScreenBufferPropertiesQNX-buffer-08968NNoneexplicitvkGetScreenBufferPropertiesQNXcorebuffer must be a valid QNX Screen buffer
VUID-vkGetScreenBufferPropertiesQNX-buffer-parameterYNoneimplicitvkGetScreenBufferPropertiesQNXcorebuffer must be a valid pointer to a valid _screen_buffer value
VUID-vkGetScreenBufferPropertiesQNX-device-parameterYNoneimplicitvkGetScreenBufferPropertiesQNXcoredevice must be a valid VkDevice handle
VUID-vkGetScreenBufferPropertiesQNX-pProperties-parameterYNoneimplicitvkGetScreenBufferPropertiesQNXcorepProperties must be a valid pointer to a VkScreenBufferPropertiesQNX structure
VUID-vkGetSemaphoreCounterValue-device-parameterYNoneimplicitvkGetSemaphoreCounterValuecoredevice must be a valid VkDevice handle
VUID-vkGetSemaphoreCounterValue-pValue-parameterYNoneimplicitvkGetSemaphoreCounterValuecorepValue must be a valid pointer to a uint64_t value
VUID-vkGetSemaphoreCounterValue-semaphore-03255YNegativeSyncObject.SemaphoreCounterTypeexplicitvkGetSemaphoreCounterValuecoresemaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-vkGetSemaphoreCounterValue-semaphore-parameterYNoneimplicitvkGetSemaphoreCounterValuecoresemaphore must be a valid VkSemaphore handle
VUID-vkGetSemaphoreCounterValue-semaphore-parentYNoneimplicitvkGetSemaphoreCounterValuecoresemaphore must have been created, allocated, or retrieved from device
VUID-vkGetSemaphoreFdKHR-device-parameterYNoneimplicitvkGetSemaphoreFdKHRcoredevice must be a valid VkDevice handle
VUID-vkGetSemaphoreFdKHR-pFd-parameterYNoneimplicitvkGetSemaphoreFdKHRcorepFd must be a valid pointer to an int value
VUID-vkGetSemaphoreFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetSemaphoreFdKHRcorepGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure
VUID-vkGetSemaphoreWin32HandleKHR-device-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHRcoredevice must be a valid VkDevice handle
VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHRcorepGetWin32HandleInfo must be a valid pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure
VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHRcorepHandle must be a valid pointer to a HANDLE value
VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIAcorepGetZirconHandleInfo must be a valid pointer to a valid VkSemaphoreGetZirconHandleInfoFUCHSIA structure
VUID-vkGetSemaphoreZirconHandleFUCHSIA-pZirconHandle-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIAcorepZirconHandle must be a valid pointer to a zx_handle_t value
VUID-vkGetShaderBinaryDataEXT-None-08461YNoneexplicitvkGetShaderBinaryDataEXTcoreThe shaderObject feature must be enabled
VUID-vkGetShaderBinaryDataEXT-None-08499YNegativeShaderObject.GetShaderBinaryDataInvalidPointerexplicitvkGetShaderBinaryDataEXTcoreIf pData is not NULL, it must be aligned to 16 bytes
VUID-vkGetShaderBinaryDataEXT-device-parameterYNoneimplicitvkGetShaderBinaryDataEXTcoredevice must be a valid VkDevice handle
VUID-vkGetShaderBinaryDataEXT-pData-parameterYNoneimplicitvkGetShaderBinaryDataEXTcoreIf the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes
VUID-vkGetShaderBinaryDataEXT-pDataSize-parameterNNoneimplicitvkGetShaderBinaryDataEXTcorepDataSize must be a valid pointer to a size_t value
VUID-vkGetShaderBinaryDataEXT-shader-parameterYNoneimplicitvkGetShaderBinaryDataEXTcoreshader must be a valid VkShaderEXT handle
VUID-vkGetShaderBinaryDataEXT-shader-parentYNoneimplicitvkGetShaderBinaryDataEXTcoreshader must have been created, allocated, or retrieved from device
VUID-vkGetShaderInfoAMD-device-parameterYNoneimplicitvkGetShaderInfoAMDcoredevice must be a valid VkDevice handle
VUID-vkGetShaderInfoAMD-infoType-parameterYNoneimplicitvkGetShaderInfoAMDcoreinfoType must be a valid VkShaderInfoTypeAMD value
VUID-vkGetShaderInfoAMD-pInfo-parameterYNoneimplicitvkGetShaderInfoAMDcoreIf the value referenced by pInfoSize is not 0, and pInfo is not NULL, pInfo must be a valid pointer to an array of pInfoSize bytes
VUID-vkGetShaderInfoAMD-pInfoSize-parameterNNoneimplicitvkGetShaderInfoAMDcorepInfoSize must be a valid pointer to a size_t value
VUID-vkGetShaderInfoAMD-pipeline-parameterYNoneimplicitvkGetShaderInfoAMDcorepipeline must be a valid VkPipeline handle
VUID-vkGetShaderInfoAMD-pipeline-parentYNoneimplicitvkGetShaderInfoAMDcorepipeline must have been created, allocated, or retrieved from device
VUID-vkGetShaderInfoAMD-shaderStage-parameterYNoneimplicitvkGetShaderInfoAMDcoreshaderStage must be a valid VkShaderStageFlagBits value
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXTcoredevice must be a valid VkDevice handle
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pCreateInfo-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXTcorepCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pIdentifier-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXTcorepIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-shaderModuleIdentifier-06885YNegativeGraphicsLibrary.ShaderModuleIdentifierFeaturesexplicitvkGetShaderModuleCreateInfoIdentifierEXTcoreshaderModuleIdentifier feature must be enabled
VUID-vkGetShaderModuleIdentifierEXT-device-parameterYNoneimplicitvkGetShaderModuleIdentifierEXTcoredevice must be a valid VkDevice handle
VUID-vkGetShaderModuleIdentifierEXT-pIdentifier-parameterYNoneimplicitvkGetShaderModuleIdentifierEXTcorepIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure
VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parameterYNoneimplicitvkGetShaderModuleIdentifierEXTcoreshaderModule must be a valid VkShaderModule handle
VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parentYNoneimplicitvkGetShaderModuleIdentifierEXTcoreshaderModule must have been created, allocated, or retrieved from device
VUID-vkGetShaderModuleIdentifierEXT-shaderModuleIdentifier-06884YNegativeGraphicsLibrary.ShaderModuleIdentifierFeaturesexplicitvkGetShaderModuleIdentifierEXTcoreshaderModuleIdentifier feature must be enabled
VUID-vkGetSwapchainCounterEXT-counter-parameterYNoneimplicitvkGetSwapchainCounterEXTcorecounter must be a valid VkSurfaceCounterFlagBitsEXT value
VUID-vkGetSwapchainCounterEXT-device-parameterYNoneimplicitvkGetSwapchainCounterEXTcoredevice must be a valid VkDevice handle
VUID-vkGetSwapchainCounterEXT-pCounterValue-parameterYNoneimplicitvkGetSwapchainCounterEXTcorepCounterValue must be a valid pointer to a uint64_t value
VUID-vkGetSwapchainCounterEXT-swapchain-01245NNoneexplicitvkGetSwapchainCounterEXTcoreOne or more present commands on swapchain must have been processed by the presentation engine
VUID-vkGetSwapchainCounterEXT-swapchain-parameterYNoneimplicitvkGetSwapchainCounterEXTcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainCounterEXT-swapchain-parentYNoneimplicitvkGetSwapchainCounterEXTcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkGetSwapchainImagesKHR-device-parameterYNoneimplicitvkGetSwapchainImagesKHRcoredevice must be a valid VkDevice handle
VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameterNNoneimplicitvkGetSwapchainImagesKHRcorepSwapchainImageCount must be a valid pointer to a uint32_t value
VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameterYNoneimplicitvkGetSwapchainImagesKHRcoreIf the value referenced by pSwapchainImageCount is not 0, and pSwapchainImages is not NULL, pSwapchainImages must be a valid pointer to an array of pSwapchainImageCount VkImage handles
VUID-vkGetSwapchainImagesKHR-swapchain-parameterYNoneimplicitvkGetSwapchainImagesKHRcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainImagesKHR-swapchain-parentYNoneimplicitvkGetSwapchainImagesKHRcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkGetSwapchainStatusKHR-device-parameterYNoneimplicitvkGetSwapchainStatusKHRcoredevice must be a valid VkDevice handle
VUID-vkGetSwapchainStatusKHR-swapchain-parameterYNoneimplicitvkGetSwapchainStatusKHRcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainStatusKHR-swapchain-parentYNoneimplicitvkGetSwapchainStatusKHRcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkGetValidationCacheDataEXT-device-parameterYNoneimplicitvkGetValidationCacheDataEXTcoredevice must be a valid VkDevice handle
VUID-vkGetValidationCacheDataEXT-pData-parameterYNoneimplicitvkGetValidationCacheDataEXTcoreIf the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes
VUID-vkGetValidationCacheDataEXT-pDataSize-parameterNNoneimplicitvkGetValidationCacheDataEXTcorepDataSize must be a valid pointer to a size_t value
VUID-vkGetValidationCacheDataEXT-validationCache-parameterYNoneimplicitvkGetValidationCacheDataEXTcorevalidationCache must be a valid VkValidationCacheEXT handle
VUID-vkGetValidationCacheDataEXT-validationCache-parentYNoneimplicitvkGetValidationCacheDataEXTcorevalidationCache must have been created, allocated, or retrieved from device
VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRcoredevice must be a valid VkDevice handle
VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirements-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRcoreIf the value referenced by pMemoryRequirementsCount is not 0, and pMemoryRequirements is not NULL, pMemoryRequirements must be a valid pointer to an array of pMemoryRequirementsCount VkVideoSessionMemoryRequirementsKHR structures
VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirementsCount-parameterNNoneimplicitvkGetVideoSessionMemoryRequirementsKHRcorepMemoryRequirementsCount must be a valid pointer to a uint32_t value
VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRcorevideoSession must be a valid VkVideoSessionKHR handle
VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parentYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRcorevideoSession must have been created, allocated, or retrieved from device
VUID-vkGetWinrtDisplayNV-pDisplay-parameterYNoneimplicitvkGetWinrtDisplayNVcorepDisplay must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetWinrtDisplayNV-physicalDevice-parameterYNoneimplicitvkGetWinrtDisplayNVcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkImportFenceFdKHR-device-parameterYNoneimplicitvkImportFenceFdKHRcoredevice must be a valid VkDevice handle
VUID-vkImportFenceFdKHR-fence-01463YNoneexplicitvkImportFenceFdKHRcorefence must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameterYNoneimplicitvkImportFenceFdKHRcorepImportFenceFdInfo must be a valid pointer to a valid VkImportFenceFdInfoKHR structure
VUID-vkImportFenceWin32HandleKHR-device-parameterYNoneimplicitvkImportFenceWin32HandleKHRcoredevice must be a valid VkDevice handle
VUID-vkImportFenceWin32HandleKHR-fence-04448YNoneexplicitvkImportFenceWin32HandleKHRcorefence must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameterYNoneimplicitvkImportFenceWin32HandleKHRcorepImportFenceWin32HandleInfo must be a valid pointer to a valid VkImportFenceWin32HandleInfoKHR structure
VUID-vkImportSemaphoreFdKHR-device-parameterYNoneimplicitvkImportSemaphoreFdKHRcoredevice must be a valid VkDevice handle
VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameterYNoneimplicitvkImportSemaphoreFdKHRcorepImportSemaphoreFdInfo must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure
VUID-vkImportSemaphoreFdKHR-semaphore-01142YNegativeObjectLifetime.ImportFdSemaphoreInUseexplicitvkImportSemaphoreFdKHRcoresemaphore must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportSemaphoreWin32HandleKHR-device-parameterYNoneimplicitvkImportSemaphoreWin32HandleKHRcoredevice must be a valid VkDevice handle
VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameterYNoneimplicitvkImportSemaphoreWin32HandleKHRcorepImportSemaphoreWin32HandleInfo must be a valid pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure
VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameterYNoneimplicitvkImportSemaphoreZirconHandleFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameterYNoneimplicitvkImportSemaphoreZirconHandleFUCHSIAcorepImportSemaphoreZirconHandleInfo must be a valid pointer to a valid VkImportSemaphoreZirconHandleInfoFUCHSIA structure
VUID-vkImportSemaphoreZirconHandleFUCHSIA-semaphore-04764YNoneexplicitvkImportSemaphoreZirconHandleFUCHSIAcoresemaphore must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkInitializePerformanceApiINTEL-device-parameterYNoneimplicitvkInitializePerformanceApiINTELcoredevice must be a valid VkDevice handle
VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameterYNoneimplicitvkInitializePerformanceApiINTELcorepInitializeInfo must be a valid pointer to a valid VkInitializePerformanceApiInfoINTEL structure
VUID-vkInvalidateMappedMemoryRanges-device-parameterYNoneimplicitvkInvalidateMappedMemoryRangescoredevice must be a valid VkDevice handle
VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylengthYNoneimplicitvkInvalidateMappedMemoryRangescorememoryRangeCount must be greater than 0
VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameterYNoneimplicitvkInvalidateMappedMemoryRangescorepMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures
VUID-vkLatencySleepNV-device-parameterYNoneimplicitvkLatencySleepNVcoredevice must be a valid VkDevice handle
VUID-vkLatencySleepNV-pSleepInfo-parameterYNoneimplicitvkLatencySleepNVcorepSleepInfo must be a valid pointer to a valid VkLatencySleepInfoNV structure
VUID-vkLatencySleepNV-swapchain-parameterYNoneimplicitvkLatencySleepNVcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkLatencySleepNV-swapchain-parentYNoneimplicitvkLatencySleepNVcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkMapMemory-device-parameterYNoneimplicitvkMapMemorycoredevice must be a valid VkDevice handle
VUID-vkMapMemory-flags-zerobitmaskYNoneimplicitvkMapMemorycoreflags must be 0
VUID-vkMapMemory-memory-00678YNegativeMemory.MapMemoryexplicitvkMapMemorycorememory must not be currently host mapped
VUID-vkMapMemory-memory-00682YNegativeMemory.MapMemWithoutHostVisibleBitexplicitvkMapMemorycorememory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VUID-vkMapMemory-memory-00683YNegativeMemory.MapMemWithoutHostVisibleBit, NegativeWsi.DeviceMaskexplicitvkMapMemorycorememory must not have been allocated with multiple instances
VUID-vkMapMemory-memory-parameterYNoneimplicitvkMapMemorycorememory must be a valid VkDeviceMemory handle
VUID-vkMapMemory-memory-parentYNoneimplicitvkMapMemorycorememory must have been created, allocated, or retrieved from device
VUID-vkMapMemory-offset-00679YNegativeMemory.MapMemoryexplicitvkMapMemorycoreoffset must be less than the size of memory
VUID-vkMapMemory-ppData-parameterNNoneimplicitvkMapMemorycoreppData must be a valid pointer to a pointer value
VUID-vkMapMemory-size-00680YNegativeMemory.MapMemoryexplicitvkMapMemorycoreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-vkMapMemory-size-00681YNegativeMemory.MapMemoryexplicitvkMapMemorycoreIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset
VUID-vkMapMemory2KHR-device-parameterYNoneimplicitvkMapMemory2KHRcoredevice must be a valid VkDevice handle
VUID-vkMapMemory2KHR-pMemoryMapInfo-parameterYNoneimplicitvkMapMemory2KHRcorepMemoryMapInfo must be a valid pointer to a valid VkMemoryMapInfoKHR structure
VUID-vkMapMemory2KHR-ppData-parameterNNoneimplicitvkMapMemory2KHRcoreppData must be a valid pointer to a pointer value
VUID-vkMergePipelineCaches-device-parameterYNoneimplicitvkMergePipelineCachescoredevice must be a valid VkDevice handle
VUID-vkMergePipelineCaches-dstCache-00770YNegativePipeline.MergePipelineCachesInvalidDstexplicitvkMergePipelineCachescoredstCache must not appear in the list of source caches
VUID-vkMergePipelineCaches-dstCache-parameterYNoneimplicitvkMergePipelineCachescoredstCache must be a valid VkPipelineCache handle
VUID-vkMergePipelineCaches-dstCache-parentYNoneimplicitvkMergePipelineCachescoredstCache must have been created, allocated, or retrieved from device
VUID-vkMergePipelineCaches-pSrcCaches-parameterYNoneimplicitvkMergePipelineCachescorepSrcCaches must be a valid pointer to an array of srcCacheCount valid VkPipelineCache handles
VUID-vkMergePipelineCaches-pSrcCaches-parentYNoneimplicitvkMergePipelineCachescoreEach element of pSrcCaches must have been created, allocated, or retrieved from device
VUID-vkMergePipelineCaches-srcCacheCount-arraylengthYNoneimplicitvkMergePipelineCachescoresrcCacheCount must be greater than 0
VUID-vkMergeValidationCachesEXT-device-parameterYNoneimplicitvkMergeValidationCachesEXTcoredevice must be a valid VkDevice handle
VUID-vkMergeValidationCachesEXT-dstCache-01536YVkLayerTest.ValidationCacheTestBadMergeexplicitvkMergeValidationCachesEXTcoredstCache must not appear in the list of source caches
VUID-vkMergeValidationCachesEXT-dstCache-parameterYNoneimplicitvkMergeValidationCachesEXTcoredstCache must be a valid VkValidationCacheEXT handle
VUID-vkMergeValidationCachesEXT-dstCache-parentYNoneimplicitvkMergeValidationCachesEXTcoredstCache must have been created, allocated, or retrieved from device
VUID-vkMergeValidationCachesEXT-pSrcCaches-parameterYNoneimplicitvkMergeValidationCachesEXTcorepSrcCaches must be a valid pointer to an array of srcCacheCount valid VkValidationCacheEXT handles
VUID-vkMergeValidationCachesEXT-pSrcCaches-parentYNoneimplicitvkMergeValidationCachesEXTcoreEach element of pSrcCaches must have been created, allocated, or retrieved from device
VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylengthYNoneimplicitvkMergeValidationCachesEXTcoresrcCacheCount must be greater than 0
VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkQueueBeginDebugUtilsLabelEXTcorepLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueBeginDebugUtilsLabelEXTcorequeue must be a valid VkQueue handle
VUID-vkQueueBindSparse-commonparentYNoneimplicitvkQueueBindSparsecoreBoth of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkQueueBindSparse-fence-01113YNoneexplicitvkQueueBindSparsecoreIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueBindSparse-fence-01114YNoneexplicitvkQueueBindSparsecoreIf fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue
VUID-vkQueueBindSparse-fence-parameterYNoneimplicitvkQueueBindSparsecoreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueBindSparse-pBindInfo-parameterYNoneimplicitvkQueueBindSparsecoreIf bindInfoCount is not 0, pBindInfo must be a valid pointer to an array of bindInfoCount valid VkBindSparseInfo structures
VUID-vkQueueBindSparse-pSignalSemaphores-01115YNoneexplicitvkQueueBindSparsecoreEach element of the pSignalSemaphores member of each element of pBindInfo must be unsignaled when the semaphore signal operation it defines is executed on the device
VUID-vkQueueBindSparse-pWaitSemaphores-01116YNegativeSyncObject.QueueSubmitWaitingSameSemaphoreexplicitvkQueueBindSparsecoreWhen a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pBindInfo executes on queue, there must be no other queues waiting on the same semaphore
VUID-vkQueueBindSparse-pWaitSemaphores-03245YNegativeExternalMemorySync.TemporarySemaphore, NegativeSyncObject.QueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueBindSparsecoreAll elements of the pWaitSemaphores member of all elements of pBindInfo referring to a semaphore created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution
VUID-vkQueueBindSparse-queue-parameterYNoneimplicitvkQueueBindSparsecorequeue must be a valid VkQueue handle
VUID-vkQueueBindSparse-queuetypeYNoneimplicitvkQueueBindSparsecoreThe queue must support sparse binding operations
VUID-vkQueueEndDebugUtilsLabelEXT-None-01911NNoneexplicitvkQueueEndDebugUtilsLabelEXTcoreThere must be an outstanding vkQueueBeginDebugUtilsLabelEXT command prior to the vkQueueEndDebugUtilsLabelEXT on the queue
VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueEndDebugUtilsLabelEXTcorequeue must be a valid VkQueue handle
VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkQueueInsertDebugUtilsLabelEXTcorepLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueInsertDebugUtilsLabelEXTcorequeue must be a valid VkQueue handle
VUID-vkQueueNotifyOutOfBandNV-pQueueTypeInfo-parameterYNoneimplicitvkQueueNotifyOutOfBandNVcorepQueueTypeInfo must be a valid pointer to a valid VkOutOfBandQueueTypeInfoNV structure
VUID-vkQueueNotifyOutOfBandNV-queue-parameterYNoneimplicitvkQueueNotifyOutOfBandNVcorequeue must be a valid VkQueue handle
VUID-vkQueuePresentKHR-pPresentInfo-parameterYNoneimplicitvkQueuePresentKHRcorepPresentInfo must be a valid pointer to a valid VkPresentInfoKHR structure
VUID-vkQueuePresentKHR-pSwapchains-01292YNoneexplicitvkQueuePresentKHRcoreEach element of pSwapchains member of pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue as determined using a call to vkGetPhysicalDeviceSurfaceSupportKHR
VUID-vkQueuePresentKHR-pSwapchains-01293NNoneexplicitvkQueuePresentKHRcoreIf more than one member of pSwapchains was created from a display surface, all display surfaces referenced that refer to the same display must use the same display mode
VUID-vkQueuePresentKHR-pWaitSemaphores-01294YNegativeWsi.QueuePresentWaitingSameSemaphoreexplicitvkQueuePresentKHRcoreWhen a semaphore wait operation referring to a binary semaphore defined by the elements of the pWaitSemaphores member of pPresentInfo executes on queue, there must be no other queues waiting on the same semaphore
VUID-vkQueuePresentKHR-pWaitSemaphores-03267YNoneexplicitvkQueuePresentKHRcoreAll elements of the pWaitSemaphores member of pPresentInfo must be created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-vkQueuePresentKHR-pWaitSemaphores-03268YNegativeWsi.QueuePresentBinarySemaphoreNotSignaledexplicitvkQueuePresentKHRcoreAll elements of the pWaitSemaphores member of pPresentInfo must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution
VUID-vkQueuePresentKHR-queue-parameterYNoneimplicitvkQueuePresentKHRcorequeue must be a valid VkQueue handle
VUID-vkQueueSetPerformanceConfigurationINTEL-commonparentYNoneimplicitvkQueueSetPerformanceConfigurationINTELcoreBoth of configuration, and queue must have been created, allocated, or retrieved from the same VkDevice
VUID-vkQueueSetPerformanceConfigurationINTEL-configuration-parameterYNoneimplicitvkQueueSetPerformanceConfigurationINTELcoreconfiguration must be a valid VkPerformanceConfigurationINTEL handle
VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameterYNoneimplicitvkQueueSetPerformanceConfigurationINTELcorequeue must be a valid VkQueue handle
VUID-vkQueueSubmit-commonparentYNoneimplicitvkQueueSubmitcoreBoth of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkQueueSubmit-fence-00063YNegativeExternalMemorySync.TemporaryFence, NegativeSyncObject.SubmitSignaledFenceexplicitvkQueueSubmitcoreIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueSubmit-fence-00064YNegativeExternalMemorySync.TemporaryFenceexplicitvkQueueSubmitcoreIf fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue
VUID-vkQueueSubmit-fence-parameterYNoneimplicitvkQueueSubmitcoreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueSubmit-pCommandBuffers-00065NNoneexplicitvkQueueSubmitcoreAny calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state
VUID-vkQueueSubmit-pCommandBuffers-00070YNegativeCommand.CascadedInvalidation, NegativeDescriptors.CmdBufferDescriptorSetBufferDestroyed, NegativeDescriptors.CmdBufferDescriptorSetImageSamplerDestroyed, NegativeDescriptors.WriteDescriptorSetConsecutiveUpdates, NegativeObjectLifetime.CmdBufferBufferDestroyed, NegativeObjectLifetime.CmdBufferBufferViewDestroyed, NegativeObjectLifetime.CmdBufferEventDestroyed, NegativeObjectLifetime.CmdBufferFramebufferImageDestroyed, NegativeObjectLifetime.CmdBufferImageDestroyed, NegativeObjectLifetime.EventInUseDestroyedSignaled, NegativeObjectLifetime.Sync2CmdBarrierBufferDestroyed, NegativeObjectLifetime.Sync2CmdBarrierImageDestroyed, NegativePipeline.CmdBufferPipelineDestroyed, NegativeQuery.CmdBufferQueryPoolDestroyed, VkLayerTest.ExecuteUnrecordedCBexplicitvkQueueSubmitcoreEach element of the pCommandBuffers member of each element of pSubmits must be in the pending or executable state
VUID-vkQueueSubmit-pCommandBuffers-00071YNegativeCommand.SimultaneousUseOneShotexplicitvkQueueSubmitcoreIf any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state
VUID-vkQueueSubmit-pCommandBuffers-00072YNoneexplicitvkQueueSubmitcoreAny secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits must be in the pending or executable state
VUID-vkQueueSubmit-pCommandBuffers-00073YNoneexplicitvkQueueSubmitcoreIf any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state
VUID-vkQueueSubmit-pCommandBuffers-00074YNegativeDeviceQueue.MismatchedQueueFamiliesOnSubmitexplicitvkQueueSubmitcoreEach element of the pCommandBuffers member of each element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to
VUID-vkQueueSubmit-pCommandBuffers-03220YNegativeQuery.PerformanceReleaseProfileLockBeforeSubmitexplicitvkQueueSubmitcoreIf a command recorded into any element of pCommandBuffers was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers
VUID-vkQueueSubmit-pSignalSemaphores-00067YNoneexplicitvkQueueSubmitcoreEach binary semaphore element of the pSignalSemaphores member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device
VUID-vkQueueSubmit-pSubmits-02207NNoneexplicitvkQueueSubmitcoreIf any element of pSubmits->pCommandBuffers includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens-before the acquire operation
VUID-vkQueueSubmit-pSubmits-02808NNoneexplicitvkQueueSubmitcoreAny resource created with VK_SHARING_MODE_EXCLUSIVE that is read by an operation specified by pSubmits must not be owned by any queue family other than the one which queue belongs to, at the time it is executed
VUID-vkQueueSubmit-pSubmits-04626YNegativeDeviceQueue.FamilyIndexUsage, NegativeSyncObject.BarrierQueueFamilyexplicitvkQueueSubmitcoreAny resource created with VK_SHARING_MODE_CONCURRENT that is accessed by an operation specified by pSubmits must have included the queue family of queue at resource creation time
VUID-vkQueueSubmit-pSubmits-parameterYNoneimplicitvkQueueSubmitcoreIf submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo structures
VUID-vkQueueSubmit-pWaitDstStageMask-00066YNoneexplicitvkQueueSubmitcoreAny stage flag included in any element of the pWaitDstStageMask member of any element of pSubmits must be a pipeline stage supported by one of the capabilities of queue, as specified in the table of supported pipeline stages
VUID-vkQueueSubmit-pWaitSemaphores-00068YNegativeSyncObject.QueueSubmitWaitingSameSemaphoreexplicitvkQueueSubmitcoreWhen a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pSubmits executes on queue, there must be no other queues waiting on the same semaphore
VUID-vkQueueSubmit-pWaitSemaphores-03238YNegativeExternalMemorySync.TemporarySemaphore, NegativeSyncObject.QueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueSubmitcoreAll elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution
VUID-vkQueueSubmit-queue-06448YNegativeProtectedMemory.MixingProtectedResources, NegativeProtectedMemory.SubmitexplicitvkQueueSubmitcoreIf queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, there must be no element of pSubmits that includes an VkProtectedSubmitInfo structure in its pNext chain with protectedSubmit equal to VK_TRUE
VUID-vkQueueSubmit-queue-parameterYNoneimplicitvkQueueSubmitcorequeue must be a valid VkQueue handle
VUID-vkQueueSubmit2-commandBuffer-03867NNoneexplicitvkQueueSubmit2coreIf a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits referenced an VkEvent, that event must not be referenced by a command that has been submitted to another queue and is still in the pending state
VUID-vkQueueSubmit2-commandBuffer-03874YNoneexplicitvkQueueSubmit2coreThe commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must be in the pending or executable state
VUID-vkQueueSubmit2-commandBuffer-03875YNoneexplicitvkQueueSubmit2coreIf a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state
VUID-vkQueueSubmit2-commandBuffer-03876YNoneexplicitvkQueueSubmit2coreAny secondary command buffers recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must be in the pending or executable state
VUID-vkQueueSubmit2-commandBuffer-03877YNoneexplicitvkQueueSubmit2coreIf any secondary command buffers recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state
VUID-vkQueueSubmit2-commandBuffer-03878YNoneexplicitvkQueueSubmit2coreThe commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to
VUID-vkQueueSubmit2-commandBuffer-03879NNoneexplicitvkQueueSubmit2coreIf a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation
VUID-vkQueueSubmit2-commandBuffer-03880NNoneexplicitvkQueueSubmit2coreIf a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers
VUID-vkQueueSubmit2-commonparentYNoneimplicitvkQueueSubmit2coreBoth of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkQueueSubmit2-fence-04894YNoneexplicitvkQueueSubmit2coreIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueSubmit2-fence-04895YNoneexplicitvkQueueSubmit2coreIf fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue
VUID-vkQueueSubmit2-fence-parameterYNoneimplicitvkQueueSubmit2coreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueSubmit2-pSubmits-parameterYNoneimplicitvkQueueSubmit2coreIf submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo2 structures
VUID-vkQueueSubmit2-queue-06447YNoneexplicitvkQueueSubmit2coreIf queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, the flags member of any element of pSubmits must not include VK_SUBMIT_PROTECTED_BIT_KHR
VUID-vkQueueSubmit2-queue-parameterYNoneimplicitvkQueueSubmit2corequeue must be a valid VkQueue handle
VUID-vkQueueSubmit2-semaphore-03868YNoneexplicitvkQueueSubmit2coreThe semaphore member of any binary semaphore element of the pSignalSemaphoreInfos member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device
VUID-vkQueueSubmit2-semaphore-03871YNegativeSyncObject.QueueSubmitWaitingSameSemaphoreexplicitvkQueueSubmit2coreWhen a semaphore wait operation for a binary semaphore is executed, as defined by the semaphore member of any element of the pWaitSemaphoreInfos member of any element of pSubmits, there must be no other queues waiting on the same semaphore
VUID-vkQueueSubmit2-semaphore-03873YNegativeSyncObject.QueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueSubmit2coreThe semaphore member of any element of the pWaitSemaphoreInfos member of any element of pSubmits that was created with a VkSemaphoreTypeKHR of VK_SEMAPHORE_TYPE_BINARY_KHR must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends must have also been submitted for execution
VUID-vkQueueSubmit2-stageMask-03869YNoneexplicitvkQueueSubmit2coreThe stageMask member of any element of the pSignalSemaphoreInfos member of any element of pSubmits must only include pipeline stages that are supported by the queue family which queue belongs to
VUID-vkQueueSubmit2-stageMask-03870YNoneexplicitvkQueueSubmit2coreThe stageMask member of any element of the pWaitSemaphoreInfos member of any element of pSubmits must only include pipeline stages that are supported by the queue family which queue belongs to
VUID-vkQueueSubmit2-synchronization2-03866YNegativeSyncObject.QueueSubmit2KHRUsedButSynchronizaion2DisabledexplicitvkQueueSubmit2coreThe synchronization2 feature must be enabled
VUID-vkQueueWaitIdle-queue-parameterYNoneimplicitvkQueueWaitIdlecorequeue must be a valid VkQueue handle
VUID-vkRegisterDeviceEventEXT-device-parameterYNoneimplicitvkRegisterDeviceEventEXTcoredevice must be a valid VkDevice handle
VUID-vkRegisterDeviceEventEXT-pAllocator-parameterNNoneimplicitvkRegisterDeviceEventEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameterYNoneimplicitvkRegisterDeviceEventEXTcorepDeviceEventInfo must be a valid pointer to a valid VkDeviceEventInfoEXT structure
VUID-vkRegisterDeviceEventEXT-pFence-parameterYNoneimplicitvkRegisterDeviceEventEXTcorepFence must be a valid pointer to a VkFence handle
VUID-vkRegisterDisplayEventEXT-commonparentYNegativeParent.PhysicalDevice_RegisterDisplayEventimplicitvkRegisterDisplayEventEXTcoreBoth of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice
VUID-vkRegisterDisplayEventEXT-device-parameterYNoneimplicitvkRegisterDisplayEventEXTcoredevice must be a valid VkDevice handle
VUID-vkRegisterDisplayEventEXT-display-parameterYNoneimplicitvkRegisterDisplayEventEXTcoredisplay must be a valid VkDisplayKHR handle
VUID-vkRegisterDisplayEventEXT-pAllocator-parameterNNoneimplicitvkRegisterDisplayEventEXTcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameterYNoneimplicitvkRegisterDisplayEventEXTcorepDisplayEventInfo must be a valid pointer to a valid VkDisplayEventInfoEXT structure
VUID-vkRegisterDisplayEventEXT-pFence-parameterYNoneimplicitvkRegisterDisplayEventEXTcorepFence must be a valid pointer to a VkFence handle
VUID-vkReleaseDisplayEXT-display-parameterYNoneimplicitvkReleaseDisplayEXTcoredisplay must be a valid VkDisplayKHR handle
VUID-vkReleaseDisplayEXT-display-parentYNoneimplicitvkReleaseDisplayEXTcoredisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkReleaseDisplayEXT-physicalDevice-parameterYNoneimplicitvkReleaseDisplayEXTcorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02677YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkReleaseFullScreenExclusiveModeEXTcoreswapchain must not be in the retired state
VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02678YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkReleaseFullScreenExclusiveModeEXTcoreswapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737NNoneexplicitvkReleasePerformanceConfigurationINTELcoreconfiguration must not be released before all command buffers submitted while the configuration was set are in pending state
VUID-vkReleasePerformanceConfigurationINTEL-configuration-parameterYNoneimplicitvkReleasePerformanceConfigurationINTELcoreIf configuration is not VK_NULL_HANDLE, configuration must be a valid VkPerformanceConfigurationINTEL handle
VUID-vkReleasePerformanceConfigurationINTEL-configuration-parentYNoneimplicitvkReleasePerformanceConfigurationINTELcoreIf configuration is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkReleasePerformanceConfigurationINTEL-device-parameterYNoneimplicitvkReleasePerformanceConfigurationINTELcoredevice must be a valid VkDevice handle
VUID-vkReleaseProfilingLockKHR-device-03235YNoneexplicitvkReleaseProfilingLockKHRcoreThe profiling lock of device must have been held via a previous successful call to vkAcquireProfilingLockKHR
VUID-vkReleaseProfilingLockKHR-device-parameterYNoneimplicitvkReleaseProfilingLockKHRcoredevice must be a valid VkDevice handle
VUID-vkReleaseSwapchainImagesEXT-device-parameterYNoneimplicitvkReleaseSwapchainImagesEXTcoredevice must be a valid VkDevice handle
VUID-vkReleaseSwapchainImagesEXT-pReleaseInfo-parameterYNoneimplicitvkReleaseSwapchainImagesEXTcorepReleaseInfo must be a valid pointer to a valid VkReleaseSwapchainImagesInfoEXT structure
VUID-vkResetCommandBuffer-commandBuffer-00045YNoneexplicitvkResetCommandBuffercorecommandBuffer must not be in the pending state
VUID-vkResetCommandBuffer-commandBuffer-00046YNegativeCommand.CommandBufferResetexplicitvkResetCommandBuffercorecommandBuffer must have been allocated from a pool that was created with the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
VUID-vkResetCommandBuffer-commandBuffer-parameterYNoneimplicitvkResetCommandBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkResetCommandBuffer-flags-parameterYNoneimplicitvkResetCommandBuffercoreflags must be a valid combination of VkCommandBufferResetFlagBits values
VUID-vkResetCommandPool-commandPool-00040YNoneexplicitvkResetCommandPoolcoreAll VkCommandBuffer objects allocated from commandPool must not be in the pending state
VUID-vkResetCommandPool-commandPool-parameterYNoneimplicitvkResetCommandPoolcorecommandPool must be a valid VkCommandPool handle
VUID-vkResetCommandPool-commandPool-parentYNoneimplicitvkResetCommandPoolcorecommandPool must have been created, allocated, or retrieved from device
VUID-vkResetCommandPool-device-parameterYNoneimplicitvkResetCommandPoolcoredevice must be a valid VkDevice handle
VUID-vkResetCommandPool-flags-parameterYNoneimplicitvkResetCommandPoolcoreflags must be a valid combination of VkCommandPoolResetFlagBits values
VUID-vkResetDescriptorPool-descriptorPool-00313YNegativeDescriptors.DescriptorPoolInUseResetSignaledexplicitvkResetDescriptorPoolcoreAll uses of descriptorPool (via any allocated descriptor sets) must have completed execution
VUID-vkResetDescriptorPool-descriptorPool-parameterYNegativeDescriptors.DescriptorPoolimplicitvkResetDescriptorPoolcoredescriptorPool must be a valid VkDescriptorPool handle
VUID-vkResetDescriptorPool-descriptorPool-parentYNoneimplicitvkResetDescriptorPoolcoredescriptorPool must have been created, allocated, or retrieved from device
VUID-vkResetDescriptorPool-device-parameterYNoneimplicitvkResetDescriptorPoolcoredevice must be a valid VkDevice handle
VUID-vkResetDescriptorPool-flags-zerobitmaskYNoneimplicitvkResetDescriptorPoolcoreflags must be 0
VUID-vkResetEvent-device-parameterYNoneimplicitvkResetEventcoredevice must be a valid VkDevice handle
VUID-vkResetEvent-event-03821NNoneexplicitvkResetEventcoreThere must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkResetEvent-event-03822NNoneexplicitvkResetEventcoreThere must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkResetEvent-event-03823YNegativeSyncObject.InvalidDeviceOnlyEventexplicitvkResetEventcoreevent must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkResetEvent-event-parameterYNoneimplicitvkResetEventcoreevent must be a valid VkEvent handle
VUID-vkResetEvent-event-parentYNoneimplicitvkResetEventcoreevent must have been created, allocated, or retrieved from device
VUID-vkResetFences-device-parameterYNoneimplicitvkResetFencescoredevice must be a valid VkDevice handle
VUID-vkResetFences-fenceCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkResetFencescorefenceCount must be greater than 0
VUID-vkResetFences-pFences-01123YNoneexplicitvkResetFencescoreEach element of pFences must not be currently associated with any queue command that has not yet completed execution on that queue
VUID-vkResetFences-pFences-parameterYNoneimplicitvkResetFencescorepFences must be a valid pointer to an array of fenceCount valid VkFence handles
VUID-vkResetFences-pFences-parentYNoneimplicitvkResetFencescoreEach element of pFences must have been created, allocated, or retrieved from device
VUID-vkResetQueryPool-None-02665YNegativeQuery.HostResetNotEnabledexplicitvkResetQueryPoolcoreThe hostQueryReset feature must be enabled
VUID-vkResetQueryPool-device-parameterYNoneimplicitvkResetQueryPoolcoredevice must be a valid VkDevice handle
VUID-vkResetQueryPool-firstQuery-02741NNoneexplicitvkResetQueryPoolcoreSubmitted commands that refer to the range specified by firstQuery and queryCount in queryPool must have completed execution
VUID-vkResetQueryPool-firstQuery-02742NNoneexplicitvkResetQueryPoolcoreThe range of queries specified by firstQuery and queryCount in queryPool must not be in use by calls to vkGetQueryPoolResults or vkResetQueryPool in other threads
VUID-vkResetQueryPool-firstQuery-09436YNegativeQuery.HostResetFirstQueryexplicitvkResetQueryPoolcorefirstQuery must be less than the number of queries in queryPool
VUID-vkResetQueryPool-firstQuery-09437YNegativeQuery.HostResetBadRangeexplicitvkResetQueryPoolcoreThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkResetQueryPool-queryPool-parameterYNegativeQuery.HostResetQueryPool, NegativeQuery.ResetQueryPoolWithoutQueryPoolimplicitvkResetQueryPoolcorequeryPool must be a valid VkQueryPool handle
VUID-vkResetQueryPool-queryPool-parentYNegativeQuery.HostResetDeviceimplicitvkResetQueryPoolcorequeryPool must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-06403NNoneexplicitvkSetBufferCollectionBufferConstraintsFUCHSIAcorevkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIAcorecollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parentYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIAcorecollection must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-pBufferConstraintsInfo-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIAcorepBufferConstraintsInfo must be a valid pointer to a valid VkBufferConstraintsInfoFUCHSIA structure
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-06394NNoneexplicitvkSetBufferCollectionImageConstraintsFUCHSIAcorevkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIAcorecollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parentYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIAcorecollection must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIAcoredevice must be a valid VkDevice handle
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-pImageConstraintsInfo-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIAcorepImageConstraintsInfo must be a valid pointer to a valid VkImageConstraintsInfoFUCHSIA structure
VUID-vkSetDebugUtilsObjectNameEXT-device-parameterYNoneimplicitvkSetDebugUtilsObjectNameEXTcoredevice must be a valid VkDevice handle
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587YNegativeDebugExtensions.DebugUtilsNameexplicitvkSetDebugUtilsObjectNameEXTcorepNameInfo->objectType must not be VK_OBJECT_TYPE_UNKNOWN
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588YNegativeDebugExtensions.DebugUtilsNameexplicitvkSetDebugUtilsObjectNameEXTcorepNameInfo->objectHandle must not be VK_NULL_HANDLE
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07872YNoneexplicitvkSetDebugUtilsObjectNameEXTcoreIf pNameInfo->objectHandle is the valid handle of an instance-level object, the VkDevice identified by device must be a descendent of the same VkInstance as the object identified by pNameInfo->objectHandle
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07873YNoneexplicitvkSetDebugUtilsObjectNameEXTcoreIf pNameInfo->objectHandle is the valid handle of a physical-device-level object, the VkDevice identified by device must be a descendant of the same VkPhysicalDevice as the object identified by pNameInfo->objectHandle
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07874YNegativeDebugExtensions.SetDebugUtilsObjectSecondDeviceexplicitvkSetDebugUtilsObjectNameEXTcoreIf pNameInfo->objectHandle is the valid handle of a device-level object, that object must be a descendent of the VkDevice identified by device
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-parameterYNoneimplicitvkSetDebugUtilsObjectNameEXTcorepNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure
VUID-vkSetDebugUtilsObjectTagEXT-device-parameterYNoneimplicitvkSetDebugUtilsObjectTagEXTcoredevice must be a valid VkDevice handle
VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07875YNoneexplicitvkSetDebugUtilsObjectTagEXTcoreIf pNameInfo->objectHandle is the valid handle of an instance-level object, the VkDevice identified by device must be a descendent of the same VkInstance as the object identified by pNameInfo->objectHandle
VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07876YNoneexplicitvkSetDebugUtilsObjectTagEXTcoreIf pNameInfo->objectHandle is the valid handle of a physical-device-level object, the VkDevice identified by device must be a descendant of the same VkPhysicalDevice as the object identified by pNameInfo->objectHandle
VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07877YNoneexplicitvkSetDebugUtilsObjectTagEXTcoreIf pNameInfo->objectHandle is the valid handle of a device-level object, that object must be a descendent of the VkDevice identified by device
VUID-vkSetDebugUtilsObjectTagEXT-pTagInfo-parameterYNoneimplicitvkSetDebugUtilsObjectTagEXTcorepTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure
VUID-vkSetDeviceMemoryPriorityEXT-device-parameterYNoneimplicitvkSetDeviceMemoryPriorityEXTcoredevice must be a valid VkDevice handle
VUID-vkSetDeviceMemoryPriorityEXT-memory-parameterYNoneimplicitvkSetDeviceMemoryPriorityEXTcorememory must be a valid VkDeviceMemory handle
VUID-vkSetDeviceMemoryPriorityEXT-memory-parentYNoneimplicitvkSetDeviceMemoryPriorityEXTcorememory must have been created, allocated, or retrieved from device
VUID-vkSetDeviceMemoryPriorityEXT-priority-06258YNegativeMemory.SetDeviceMemoryPriorityexplicitvkSetDeviceMemoryPriorityEXTcorepriority must be between 0 and 1, inclusive
VUID-vkSetEvent-device-parameterYNoneimplicitvkSetEventcoredevice must be a valid VkDevice handle
VUID-vkSetEvent-event-03941YNegativeSyncObject.InvalidDeviceOnlyEventexplicitvkSetEventcoreevent must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkSetEvent-event-parameterYNoneimplicitvkSetEventcoreevent must be a valid VkEvent handle
VUID-vkSetEvent-event-parentYNoneimplicitvkSetEventcoreevent must have been created, allocated, or retrieved from device
VUID-vkSetHdrMetadataEXT-device-parameterYNoneimplicitvkSetHdrMetadataEXTcoredevice must be a valid VkDevice handle
VUID-vkSetHdrMetadataEXT-pMetadata-parameterYNoneimplicitvkSetHdrMetadataEXTcorepMetadata must be a valid pointer to an array of swapchainCount valid VkHdrMetadataEXT structures
VUID-vkSetHdrMetadataEXT-pSwapchains-parameterYNoneimplicitvkSetHdrMetadataEXTcorepSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles
VUID-vkSetHdrMetadataEXT-pSwapchains-parentYNoneimplicitvkSetHdrMetadataEXTcoreEach element of pSwapchains must have been created, allocated, or retrieved from device
VUID-vkSetHdrMetadataEXT-swapchainCount-arraylengthYNoneimplicitvkSetHdrMetadataEXTcoreswapchainCount must be greater than 0
VUID-vkSetLatencyMarkerNV-device-parameterYNoneimplicitvkSetLatencyMarkerNVcoredevice must be a valid VkDevice handle
VUID-vkSetLatencyMarkerNV-pLatencyMarkerInfo-parameterYNoneimplicitvkSetLatencyMarkerNVcorepLatencyMarkerInfo must be a valid pointer to a valid VkSetLatencyMarkerInfoNV structure
VUID-vkSetLatencyMarkerNV-swapchain-parameterYNoneimplicitvkSetLatencyMarkerNVcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkSetLatencyMarkerNV-swapchain-parentYNoneimplicitvkSetLatencyMarkerNVcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkSetLatencySleepModeNV-device-parameterYNoneimplicitvkSetLatencySleepModeNVcoredevice must be a valid VkDevice handle
VUID-vkSetLatencySleepModeNV-pSleepModeInfo-parameterYNoneimplicitvkSetLatencySleepModeNVcorepSleepModeInfo must be a valid pointer to a valid VkLatencySleepModeInfoNV structure
VUID-vkSetLatencySleepModeNV-swapchain-parameterYNoneimplicitvkSetLatencySleepModeNVcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkSetLatencySleepModeNV-swapchain-parentYNoneimplicitvkSetLatencySleepModeNVcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkSetLocalDimmingAMD-device-parameterYNoneimplicitvkSetLocalDimmingAMDcoredevice must be a valid VkDevice handle
VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618NNoneexplicitvkSetLocalDimmingAMDcoreVkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport must be supported
VUID-vkSetLocalDimmingAMD-swapChain-parameterYNoneimplicitvkSetLocalDimmingAMDcoreswapChain must be a valid VkSwapchainKHR handle
VUID-vkSetLocalDimmingAMD-swapChain-parentYNoneimplicitvkSetLocalDimmingAMDcoreswapChain must have been created, allocated, or retrieved from device
VUID-vkSetPrivateData-device-parameterNNoneimplicitvkSetPrivateDatacoredevice must be a valid VkDevice handle
VUID-vkSetPrivateData-objectHandle-04016YNegativeTooling.PrivateDataSetNonDevice, NegativeTooling.PrivateDataSetSecondDeviceexplicitvkSetPrivateDatacoreobjectHandle must be device or a child of device
VUID-vkSetPrivateData-objectHandle-04017YNegativeTooling.PrivateDataSetBadHandleexplicitvkSetPrivateDatacoreobjectHandle must be a valid handle to an object of type objectType
VUID-vkSetPrivateData-objectType-parameterYNoneimplicitvkSetPrivateDatacoreobjectType must be a valid VkObjectType value
VUID-vkSetPrivateData-privateDataSlot-parameterYNoneimplicitvkSetPrivateDatacoreprivateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkSetPrivateData-privateDataSlot-parentYNoneimplicitvkSetPrivateDatacoreprivateDataSlot must have been created, allocated, or retrieved from device
VUID-vkSignalSemaphore-device-parameterYNoneimplicitvkSignalSemaphorecoredevice must be a valid VkDevice handle
VUID-vkSignalSemaphore-pSignalInfo-parameterYNoneimplicitvkSignalSemaphorecorepSignalInfo must be a valid pointer to a valid VkSemaphoreSignalInfo structure
VUID-vkSubmitDebugUtilsMessageEXT-instance-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXTcoreinstance must be a valid VkInstance handle
VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXTcoremessageSeverity must be a valid VkDebugUtilsMessageSeverityFlagBitsEXT value
VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXTcoremessageTypes must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values
VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmaskYNoneimplicitvkSubmitDebugUtilsMessageEXTcoremessageTypes must not be 0
VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591NNoneexplicitvkSubmitDebugUtilsMessageEXTcoreThe objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN
VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXTcorepCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure
VUID-vkTransitionImageLayoutEXT-device-parameterYNoneimplicitvkTransitionImageLayoutEXTcoredevice must be a valid VkDevice handle
VUID-vkTransitionImageLayoutEXT-pTransitions-parameterYNoneimplicitvkTransitionImageLayoutEXTcorepTransitions must be a valid pointer to an array of transitionCount valid VkHostImageLayoutTransitionInfoEXT structures
VUID-vkTransitionImageLayoutEXT-transitionCount-arraylengthYNoneimplicitvkTransitionImageLayoutEXTcoretransitionCount must be greater than 0
VUID-vkTrimCommandPool-commandPool-parameterYNoneimplicitvkTrimCommandPoolcorecommandPool must be a valid VkCommandPool handle
VUID-vkTrimCommandPool-commandPool-parentYNoneimplicitvkTrimCommandPoolcorecommandPool must have been created, allocated, or retrieved from device
VUID-vkTrimCommandPool-device-parameterYNoneimplicitvkTrimCommandPoolcoredevice must be a valid VkDevice handle
VUID-vkTrimCommandPool-flags-zerobitmaskYNoneimplicitvkTrimCommandPoolcoreflags must be 0
VUID-vkUninitializePerformanceApiINTEL-device-parameterYNoneimplicitvkUninitializePerformanceApiINTELcoredevice must be a valid VkDevice handle
VUID-vkUnmapMemory-device-parameterYNoneimplicitvkUnmapMemorycoredevice must be a valid VkDevice handle
VUID-vkUnmapMemory-memory-00689YNegativeMemory.MapMemoryexplicitvkUnmapMemorycorememory must be currently host mapped
VUID-vkUnmapMemory-memory-parameterYNoneimplicitvkUnmapMemorycorememory must be a valid VkDeviceMemory handle
VUID-vkUnmapMemory-memory-parentYNoneimplicitvkUnmapMemorycorememory must have been created, allocated, or retrieved from device
VUID-vkUnmapMemory2KHR-device-parameterYNoneimplicitvkUnmapMemory2KHRcoredevice must be a valid VkDevice handle
VUID-vkUnmapMemory2KHR-pMemoryUnmapInfo-parameterYNoneimplicitvkUnmapMemory2KHRcorepMemoryUnmapInfo must be a valid pointer to a valid VkMemoryUnmapInfoKHR structure
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06995NNoneexplicitvkUpdateDescriptorSetWithTemplatecoreHost access to descriptorSet must be externally synchronized unless explicitly denoted otherwise for specific flags
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplatecoredescriptorSet must be a valid VkDescriptorSet handle
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parentYNoneimplicitvkUpdateDescriptorSetWithTemplatecoredescriptorSet must have been created, allocated, or retrieved from device
VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplatecoredescriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parentYNoneimplicitvkUpdateDescriptorSetWithTemplatecoredescriptorUpdateTemplate must have been created, allocated, or retrieved from device
VUID-vkUpdateDescriptorSetWithTemplate-device-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplatecoredevice must be a valid VkDevice handle
VUID-vkUpdateDescriptorSetWithTemplate-pData-01685NNoneexplicitvkUpdateDescriptorSetWithTemplatecorepData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate
VUID-vkUpdateDescriptorSets-None-03047YNegativeDescriptors.CmdBufferDescriptorSetImageSamplerDestroyedexplicitvkUpdateDescriptorSetscoreThe dstSet member of each element of pDescriptorWrites or pDescriptorCopies for bindings which were created without the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT or VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT bits set must not be used by any command that was recorded to a command buffer which is in the pending state
VUID-vkUpdateDescriptorSets-device-parameterYNoneimplicitvkUpdateDescriptorSetscoredevice must be a valid VkDevice handle
VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameterYNoneimplicitvkUpdateDescriptorSetscoreIf descriptorCopyCount is not 0, pDescriptorCopies must be a valid pointer to an array of descriptorCopyCount valid VkCopyDescriptorSet structures
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06236YNoneexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, elements of the pTexelBufferView member of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06237YNegativeParent.UpdateDescriptorSetsBufferexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of any element of the pBufferInfo member of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06238NNoneexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of any element of the pImageInfo member of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06239YNegativeParent.UpdateDescriptorSetsImageexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageView member of any element of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06240YNoneexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, elements of the pAccelerationStructures member of a VkWriteDescriptorSetAccelerationStructureKHR structure in the pNext chain of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06241YNoneexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, elements of the pAccelerationStructures member of a VkWriteDescriptorSetAccelerationStructureNV structure in the pNext chain of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06493YNegativeDescriptors.InvalidDescriptorWriteImageInfoexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06940NNoneexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM or VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, the imageView member of any element of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06941NNoneexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM or VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, pDescriptorWrites[i].pImageInfo must be a valid pointer to an array of pDescriptorWrites[i].descriptorCount valid VkDescriptorImageInfo structures
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06993NNoneexplicitvkUpdateDescriptorSetscoreHost access to pDescriptorWrites[i].dstSet and pDescriptorCopies[i].dstSet must be externally synchronized unless explicitly denoted otherwise for specific flags
VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameterYNoneimplicitvkUpdateDescriptorSetscoreIf descriptorWriteCount is not 0, pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures
VUID-vkUpdateVideoSessionParametersKHR-device-parameterYNoneimplicitvkUpdateVideoSessionParametersKHRcoredevice must be a valid VkDevice handle
VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-07215YNegativeVideo.UpdateSessionParamsIncorrectSequenceCountexplicitvkUpdateVideoSessionParametersKHRcorepUpdateInfo->updateSequenceCount must equal the current update sequence counter of videoSessionParameters plus one
VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-parameterYNoneimplicitvkUpdateVideoSessionParametersKHRcorepUpdateInfo must be a valid pointer to a valid VkVideoSessionParametersUpdateInfoKHR structure
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06441YNegativeVideo.UpdateSessionParamsEncodeH264ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the number of StdVideoH264SequenceParameterSet entries already stored in it plus the value of the stdSPSCount member of the VkVideoEncodeH264SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoEncodeH264SessionParametersCreateInfoKHR::maxStdSPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06442YNegativeVideo.UpdateSessionParamsEncodeH264ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the number of StdVideoH264PictureParameterSet entries already stored in it plus the value of the stdPPSCount member of the VkVideoEncodeH264SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoEncodeH264SessionParametersCreateInfoKHR::maxStdPPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06443YNegativeVideo.UpdateSessionParamsEncodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of StdVideoH265VideoParameterSet entries already stored in it plus the value of the stdVPSCount member of the VkVideoEncodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoEncodeH265SessionParametersCreateInfoKHR::maxStdVPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06444YNegativeVideo.UpdateSessionParamsEncodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of StdVideoH265SequenceParameterSet entries already stored in it plus the value of the stdSPSCount member of the VkVideoEncodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoEncodeH265SessionParametersCreateInfoKHR::maxStdSPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06445YNegativeVideo.UpdateSessionParamsEncodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of StdVideoH265PictureParameterSet entries already stored in it plus the value of the stdPPSCount member of the VkVideoEncodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoEncodeH265SessionParametersCreateInfoKHR::maxStdPPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07216YNegativeVideo.UpdateSessionParamsDecodeH264ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH264SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching any of the elements of VkVideoDecodeH264SessionParametersAddInfoKHR::pStdSPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07217YNegativeVideo.UpdateSessionParamsDecodeH264ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of StdVideoH264SequenceParameterSet entries already stored in it plus the value of the stdSPSCount member of the VkVideoDecodeH264SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH264SessionParametersCreateInfoKHR::maxStdSPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07218YNegativeVideo.UpdateSessionParamsDecodeH264ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH264SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH264PictureParameterSet entry with both seq_parameter_set_id and pic_parameter_set_id matching any of the elements of VkVideoDecodeH264SessionParametersAddInfoKHR::pStdPPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07219YNegativeVideo.UpdateSessionParamsDecodeH264ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of StdVideoH264PictureParameterSet entries already stored in it plus the value of the stdPPSCount member of the VkVideoDecodeH264SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH264SessionParametersCreateInfoKHR::maxStdPPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07220YNegativeVideo.UpdateSessionParamsDecodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdVPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07221YNegativeVideo.UpdateSessionParamsDecodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265VideoParameterSet entries already stored in it plus the value of the stdVPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdVPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07222YNegativeVideo.UpdateSessionParamsDecodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265SequenceParameterSet entry with both sps_video_parameter_set_id and sps_seq_parameter_set_id matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdSPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07223YNegativeVideo.UpdateSessionParamsDecodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265SequenceParameterSet entries already stored in it plus the value of the stdSPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdSPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07224YNegativeVideo.UpdateSessionParamsDecodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoDecodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id all matching any of the elements of VkVideoDecodeH265SessionParametersAddInfoKHR::pStdPPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07225YNegativeVideo.UpdateSessionParamsDecodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of StdVideoH265PictureParameterSet entries already stored in it plus the value of the stdPPSCount member of the VkVideoDecodeH265SessionParametersAddInfoKHR structure included in the pUpdateInfo->pNext chain must be less than or equal to the VkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdPPSCount videoSessionParameters was created with
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07226YNegativeVideo.UpdateSessionParamsEncodeH264ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoEncodeH264SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH264SequenceParameterSet entry with seq_parameter_set_id matching any of the elements of VkVideoEncodeH264SessionParametersAddInfoKHR::pStdSPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07227YNegativeVideo.UpdateSessionParamsEncodeH264ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoEncodeH264SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH264PictureParameterSet entry with both seq_parameter_set_id and pic_parameter_set_id matching any of the elements of VkVideoEncodeH264SessionParametersAddInfoKHR::pStdPPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07228YNegativeVideo.UpdateSessionParamsEncodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265VideoParameterSet entry with vps_video_parameter_set_id matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoKHR::pStdVPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07229YNegativeVideo.UpdateSessionParamsEncodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265SequenceParameterSet entry with both sps_video_parameter_set_id and sps_seq_parameter_set_id matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoKHR::pStdSPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-07230YNegativeVideo.UpdateSessionParamsEncodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoKHR structure, then videoSessionParameters must not already contain a StdVideoH265PictureParameterSet entry with sps_video_parameter_set_id, pps_seq_parameter_set_id, and pps_pic_parameter_set_id all matching any of the elements of VkVideoEncodeH265SessionParametersAddInfoKHR::pStdPPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-08321YNegativeVideo.CreateUpdateSessionParamsEncodeH265InvalidTileColumnsRowsexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoKHR structure, then num_tile_columns_minus1 must be less than VkVideoEncodeH265CapabilitiesKHR::maxTiles.width, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile videoSessionParameters was created with, for each element of VkVideoEncodeH265SessionParametersAddInfoKHR::pStdPPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-08322YNegativeVideo.CreateUpdateSessionParamsEncodeH265InvalidTileColumnsRowsexplicitvkUpdateVideoSessionParametersKHRcoreIf videoSessionParameters was created with the video codec operation VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR and the pNext chain of pUpdateInfo includes a VkVideoEncodeH265SessionParametersAddInfoKHR structure, then num_tile_rows_minus1 must be less than VkVideoEncodeH265CapabilitiesKHR::maxTiles.height, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile videoSessionParameters was created with, for each element of VkVideoEncodeH265SessionParametersAddInfoKHR::pStdPPSs
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parameterYNoneimplicitvkUpdateVideoSessionParametersKHRcorevideoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parentYNoneimplicitvkUpdateVideoSessionParametersKHRcorevideoSessionParameters must have been created, allocated, or retrieved from device
VUID-vkWaitForFences-device-parameterYNoneimplicitvkWaitForFencescoredevice must be a valid VkDevice handle
VUID-vkWaitForFences-fenceCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkWaitForFencescorefenceCount must be greater than 0
VUID-vkWaitForFences-pFences-parameterYNoneimplicitvkWaitForFencescorepFences must be a valid pointer to an array of fenceCount valid VkFence handles
VUID-vkWaitForFences-pFences-parentYNoneimplicitvkWaitForFencescoreEach element of pFences must have been created, allocated, or retrieved from device
VUID-vkWaitForPresentKHR-device-parameterYNoneimplicitvkWaitForPresentKHRcoredevice must be a valid VkDevice handle
VUID-vkWaitForPresentKHR-presentWait-06234YNegativeWsi.PresentIdWaitFeaturesexplicitvkWaitForPresentKHRcoreThe presentWait feature must be enabled
VUID-vkWaitForPresentKHR-swapchain-04997YNegativeWsi.PresentIdWaitexplicitvkWaitForPresentKHRcoreswapchain must not be in the retired state
VUID-vkWaitForPresentKHR-swapchain-parameterYNoneimplicitvkWaitForPresentKHRcoreswapchain must be a valid VkSwapchainKHR handle
VUID-vkWaitForPresentKHR-swapchain-parentYNoneimplicitvkWaitForPresentKHRcoreswapchain must have been created, allocated, or retrieved from device
VUID-vkWaitSemaphores-device-parameterYNoneimplicitvkWaitSemaphorescoredevice must be a valid VkDevice handle
VUID-vkWaitSemaphores-pWaitInfo-parameterYNoneimplicitvkWaitSemaphorescorepWaitInfo must be a valid pointer to a valid VkSemaphoreWaitInfo structure
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylengthYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRcoreaccelerationStructureCount must be greater than 0
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585YNoneexplicitvkWriteAccelerationStructuresPropertiesKHRcoreThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431YNegativeRayTracing.WriteAccelerationStructuresPropertiesMaintenance1HostexplicitvkWriteAccelerationStructuresPropertiesKHRcoreAll acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR
VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03733YNegativeRayTracing.WriteAccelerationStructureMemoryexplicitvkWriteAccelerationStructuresPropertiesKHRcoreThe buffer used to create each acceleration structure in pAccelerationStructures must be bound to host-visible device memory
VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784NNoneexplicitvkWriteAccelerationStructuresPropertiesKHRcoreThe buffer used to create each acceleration structure in pAccelerationStructures must be bound to memory that was not allocated with multiple instances
VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452YNoneexplicitvkWriteAccelerationStructuresPropertiesKHRcoredataSize must be greater than or equal to accelerationStructureCount*stride
VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylengthYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRcoredataSize must be greater than 0
VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRcoredevice must be a valid VkDevice handle
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964NNoneexplicitvkWriteAccelerationStructuresPropertiesKHRcoreAll acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRcorepAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parentYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRcoreEach element of pAccelerationStructures must have been created, allocated, or retrieved from device
VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRcorepData must be a valid pointer to an array of dataSize bytes
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448YNegativeRayTracing.WriteAccelerationStructuresPropertiesMaintenance1HostexplicitvkWriteAccelerationStructuresPropertiesKHRcoreIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449NNoneexplicitvkWriteAccelerationStructuresPropertiesKHRcoreIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450YNegativeRayTracing.WriteAccelerationStructuresPropertiesMaintenance1HostexplicitvkWriteAccelerationStructuresPropertiesKHRcoreIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451NNoneexplicitvkWriteAccelerationStructuresPropertiesKHRcoreIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06731YNegativeRayTracing.WriteAccelerationStructuresPropertiesHostexplicitvkWriteAccelerationStructuresPropertiesKHRcoreIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06732NNoneexplicitvkWriteAccelerationStructuresPropertiesKHRcoreIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06733YNegativeRayTracing.WriteAccelerationStructuresPropertiesHostexplicitvkWriteAccelerationStructuresPropertiesKHRcoreIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06734NNoneexplicitvkWriteAccelerationStructuresPropertiesKHRcoreIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06742YNegativeRayTracing.WriteAccelerationStructuresPropertiesHost, NegativeRayTracing.WriteAccelerationStructuresPropertiesMaintenance1HostexplicitvkWriteAccelerationStructuresPropertiesKHRcorequeryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRcorequeryType must be a valid VkQueryType value
VUID-vkWriteMicromapsPropertiesEXT-buffer-07577NNoneexplicitvkWriteMicromapsPropertiesEXTcoreThe buffer used to create each micromap in pMicromaps must be bound to host-visible device memory
VUID-vkWriteMicromapsPropertiesEXT-buffer-07579NNoneexplicitvkWriteMicromapsPropertiesEXTcoreThe buffer used to create each micromap in pMicromaps must be bound to memory that was not allocated with multiple instances
VUID-vkWriteMicromapsPropertiesEXT-dataSize-07576NNoneexplicitvkWriteMicromapsPropertiesEXTcoredataSize must be greater than or equal to micromapCount*stride
VUID-vkWriteMicromapsPropertiesEXT-dataSize-arraylengthYNoneimplicitvkWriteMicromapsPropertiesEXTcoredataSize must be greater than 0
VUID-vkWriteMicromapsPropertiesEXT-device-parameterYNoneimplicitvkWriteMicromapsPropertiesEXTcoredevice must be a valid VkDevice handle
VUID-vkWriteMicromapsPropertiesEXT-micromapCount-arraylengthYNoneimplicitvkWriteMicromapsPropertiesEXTcoremicromapCount must be greater than 0
VUID-vkWriteMicromapsPropertiesEXT-micromapHostCommands-07578NNoneexplicitvkWriteMicromapsPropertiesEXTcoreThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkWriteMicromapsPropertiesEXT-pData-parameterYNoneimplicitvkWriteMicromapsPropertiesEXTcorepData must be a valid pointer to an array of dataSize bytes
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07501NNoneexplicitvkWriteMicromapsPropertiesEXTcoreAll micromaps in pMicromaps must have been constructed prior to the execution of this command
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07502NNoneexplicitvkWriteMicromapsPropertiesEXTcoreAll micromaps in pMicromaps must have been constructed with VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT if queryType is VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parameterYNoneimplicitvkWriteMicromapsPropertiesEXTcorepMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parentYNoneimplicitvkWriteMicromapsPropertiesEXTcoreEach element of pMicromaps must have been created, allocated, or retrieved from device
VUID-vkWriteMicromapsPropertiesEXT-queryType-07503NNoneexplicitvkWriteMicromapsPropertiesEXTcorequeryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT
VUID-vkWriteMicromapsPropertiesEXT-queryType-07573NNoneexplicitvkWriteMicromapsPropertiesEXTcoreIf queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteMicromapsPropertiesEXT-queryType-07574NNoneexplicitvkWriteMicromapsPropertiesEXTcoreIf queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT, then pData must point to a VkDeviceSize
VUID-vkWriteMicromapsPropertiesEXT-queryType-07575NNoneexplicitvkWriteMicromapsPropertiesEXTcoreIf queryType is
VUID-vkWriteMicromapsPropertiesEXT-queryType-parameterYNoneimplicitvkWriteMicromapsPropertiesEXTcorequeryType must be a valid VkQueryType value