Valid Usage Database (1.3.296)

VUID NAMECHECKEDSPIRV-TOOLTESTTYPEAPI/STRUCTVUID TEXT
VUID-BaryCoordKHR-BaryCoordKHR-04154YYValidateBuiltIns.TargetIsVariable, VkLayerTest.VuidHashStabilityexplicitBaryCoordKHRThe BaryCoordKHR decoration must be used only within the Fragment Execution Model
VUID-BaryCoordKHR-BaryCoordKHR-04155YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordKHRThe variable decorated with BaryCoordKHR must be declared using the Input Storage Class
VUID-BaryCoordKHR-BaryCoordKHR-04156YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordKHRThe variable decorated with BaryCoordKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157NNoneexplicitBaryCoordNoPerspAMDThe BaryCoordNoPerspAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158NNoneexplicitBaryCoordNoPerspAMDThe variable decorated with BaryCoordNoPerspAMD must be declared using the Input Storage Class
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159NNoneexplicitBaryCoordNoPerspAMDThe variable decorated with BaryCoordNoPerspAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04163NNoneexplicitBaryCoordNoPerspCentroidAMDThe BaryCoordNoPerspCentroidAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164NNoneexplicitBaryCoordNoPerspCentroidAMDThe variable decorated with BaryCoordNoPerspCentroidAMD must be declared using the Input Storage Class
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165NNoneexplicitBaryCoordNoPerspCentroidAMDThe variable decorated with BaryCoordNoPerspCentroidAMD must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04160YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordNoPerspKHRThe BaryCoordNoPerspKHR decoration must be used only within the Fragment Execution Model
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04161YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordNoPerspKHRThe variable decorated with BaryCoordNoPerspKHR must be declared using the Input Storage Class
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04162YYValidateBuiltIns.TargetIsVariableexplicitBaryCoordNoPerspKHRThe variable decorated with BaryCoordNoPerspKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166NNoneexplicitBaryCoordNoPerspSampleAMDThe BaryCoordNoPerspSampleAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167NNoneexplicitBaryCoordNoPerspSampleAMDThe variable decorated with BaryCoordNoPerspSampleAMD must be declared using the Input Storage Class
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168NNoneexplicitBaryCoordNoPerspSampleAMDThe variable decorated with BaryCoordNoPerspSampleAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04169NNoneexplicitBaryCoordPullModelAMDThe BaryCoordPullModelAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170NNoneexplicitBaryCoordPullModelAMDThe variable decorated with BaryCoordPullModelAMD must be declared using the Input Storage Class
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171NNoneexplicitBaryCoordPullModelAMDThe variable decorated with BaryCoordPullModelAMD must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04172NNoneexplicitBaryCoordSmoothAMDThe BaryCoordSmoothAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173NNoneexplicitBaryCoordSmoothAMDThe variable decorated with BaryCoordSmoothAMD must be declared using the Input Storage Class
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174NNoneexplicitBaryCoordSmoothAMDThe variable decorated with BaryCoordSmoothAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04175NNoneexplicitBaryCoordSmoothCentroidAMDThe BaryCoordSmoothCentroidAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176NNoneexplicitBaryCoordSmoothCentroidAMDThe variable decorated with BaryCoordSmoothCentroidAMD must be declared using the Input Storage Class
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177NNoneexplicitBaryCoordSmoothCentroidAMDThe variable decorated with BaryCoordSmoothCentroidAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04178NNoneexplicitBaryCoordSmoothSampleAMDThe BaryCoordSmoothSampleAMD decoration must be used only within the Fragment Execution Model
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179NNoneexplicitBaryCoordSmoothSampleAMDThe variable decorated with BaryCoordSmoothSampleAMD must be declared using the Input Storage Class
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180NNoneexplicitBaryCoordSmoothSampleAMDThe variable decorated with BaryCoordSmoothSampleAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaseInstance-BaseInstance-04181YYValidateLiterals.LiteralsKernelGoodexplicitBaseInstanceThe BaseInstance decoration must be used only within the Vertex Execution Model
VUID-BaseInstance-BaseInstance-04182YYValidateLiterals.LiteralsKernelGoodexplicitBaseInstanceThe variable decorated with BaseInstance must be declared using the Input Storage Class
VUID-BaseInstance-BaseInstance-04183YYValidateLiterals.LiteralsKernelGoodexplicitBaseInstanceThe variable decorated with BaseInstance must be declared as a scalar 32-bit integer value
VUID-BaseVertex-BaseVertex-04184YYValidateLiterals.LiteralsKernelGoodexplicitBaseVertexThe BaseVertex decoration must be used only within the Vertex Execution Model
VUID-BaseVertex-BaseVertex-04185YYValidateLiterals.LiteralsKernelGoodexplicitBaseVertexThe variable decorated with BaseVertex must be declared using the Input Storage Class
VUID-BaseVertex-BaseVertex-04186YYValidateLiterals.LiteralsKernelGoodexplicitBaseVertexThe variable decorated with BaseVertex must be declared as a scalar 32-bit integer value
VUID-ClipDistance-ClipDistance-04187YYValidateLiterals.LiteralsKernelGoodexplicitClipDistanceThe ClipDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-ClipDistance-ClipDistance-04188YYValidateLiterals.LiteralsKernelGoodexplicitClipDistanceThe variable decorated with ClipDistance within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class
VUID-ClipDistance-ClipDistance-04189YYValidateLiterals.LiteralsKernelGoodexplicitClipDistanceThe variable decorated with ClipDistance within the Fragment Execution Model must be declared using the Input Storage Class
VUID-ClipDistance-ClipDistance-04190YYValidateLiterals.LiteralsKernelGoodexplicitClipDistanceThe 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.LiteralsKernelGoodexplicitClipDistanceThe variable decorated with ClipDistance must be declared as an array of 32-bit floating-point values
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04192NNoneexplicitClipDistancePerViewNVThe ClipDistancePerViewNV decoration must be used only within the MeshNV Execution Model
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04193NNoneexplicitClipDistancePerViewNVThe variable decorated with ClipDistancePerViewNV must be declared using the Output Storage Class
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04194NNoneexplicitClipDistancePerViewNVThe variable decorated with ClipDistancePerViewNV must also be decorated with the PerViewNV decoration
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195NNoneexplicitClipDistancePerViewNVThe variable decorated with ClipDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values
VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07797NNoneexplicitClusterIDHUAWEIThe ClusterIDHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07798NNoneexplicitClusterIDHUAWEIThe variable decorated with ClusterIDHUAWEI must be declared as a scalar 32-bit integer value
VUID-ClusterShadingRateHUAWEI-ClusterShadingRateHUAWEI-09448NNoneexplicitClusterShadingRateHUAWEIThe ClusterShadingRateHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-ClusterShadingRateHUAWEI-ClusterShadingRateHUAWEI-09449NNoneexplicitClusterShadingRateHUAWEIThe variable decorated with ClusterShadingRateHUAWEI must be declared as a scalar 32-bit integer value
VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09172NNoneexplicitCoalescedInputCountAMDXThe variable decorated with CoalescedInputCountAMDX must be declared using the Input Storage Class
VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09173NNoneexplicitCoalescedInputCountAMDXIf a variable is decorated with CoalescedInputCountAMDX, the CoalescingAMDX execution mode must be declared
VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09174NNoneexplicitCoalescedInputCountAMDXThe variable decorated with CoalescedInputCountAMDX must be declared as a scalar 32-bit integer value
VUID-CoreCountARM-CoreCountARM-07595NNoneexplicitCoreCountARMThe variable decorated with CoreCountARM must be declared using the Input Storage Class
VUID-CoreCountARM-CoreCountARM-07596NNoneexplicitCoreCountARMThe variable decorated with CoreCountARM must be declared as a scalar 32-bit integer value
VUID-CoreIDARM-CoreIDARM-07599NNoneexplicitCoreIDARMThe variable decorated with CoreIDARM must be declared using the Input Storage Class
VUID-CoreIDARM-CoreIDARM-07600NNoneexplicitCoreIDARMThe variable decorated with CoreIDARM must be declared as a scalar 32-bit integer value
VUID-CoreMaxIDARM-CoreMaxIDARM-07597NNoneexplicitCoreMaxIDARMThe variable decorated with CoreMaxIDARM must be declared using the Input Storage Class
VUID-CoreMaxIDARM-CoreMaxIDARM-07598NNoneexplicitCoreMaxIDARMThe variable decorated with CoreMaxIDARM must be declared as a scalar 32-bit integer value
VUID-CullDistance-CullDistance-04196YYValidateLiterals.LiteralsKernelGoodexplicitCullDistanceThe CullDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-CullDistance-CullDistance-04197YYValidateLiterals.LiteralsKernelGoodexplicitCullDistanceThe variable decorated with CullDistance within the MeshEXT, MeshNV or Vertex Execution Model must be declared using the Output Storage Class
VUID-CullDistance-CullDistance-04198YYValidateLiterals.LiteralsKernelGoodexplicitCullDistanceThe variable decorated with CullDistance within the Fragment Execution Model must be declared using the Input Storage Class
VUID-CullDistance-CullDistance-04199YYValidateLiterals.LiteralsKernelGoodexplicitCullDistanceThe 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.LiteralsKernelGoodexplicitCullDistanceThe variable decorated with CullDistance must be declared as an array of 32-bit floating-point values
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04201NNoneexplicitCullDistancePerViewNVThe CullDistancePerViewNV decoration must be used only within the MeshNV Execution Model
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04202NNoneexplicitCullDistancePerViewNVThe variable decorated with CullDistancePerViewNV must be declared using the Output Storage Class
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04203NNoneexplicitCullDistancePerViewNVThe variable decorated with CullDistancePerViewNV must also be decorated with the PerViewNV decoration
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04204NNoneexplicitCullDistancePerViewNVThe variable decorated with CullDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values
VUID-CullMaskKHR-CullMaskKHR-06735YYValidateLiterals.LiteralsKernelGoodexplicitCullMaskKHRThe CullMaskKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-CullMaskKHR-CullMaskKHR-06736YYValidateLiterals.LiteralsKernelGoodexplicitCullMaskKHRThe variable decorated with CullMaskKHR must be declared using the Input Storage Class
VUID-CullMaskKHR-CullMaskKHR-06737YYValidateLiterals.LiteralsKernelGoodexplicitCullMaskKHRThe variable decorated with CullMaskKHR must be declared as a scalar 32-bit integer value
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07034NNoneexplicitCullPrimitiveEXTThe CullPrimitiveEXT decoration must be used only within the MeshEXT Execution Model
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07035NNoneexplicitCullPrimitiveEXTThe variable decorated with CullPrimitiveEXT must be declared using the Output Storage Class
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07036NNoneexplicitCullPrimitiveEXTThe variable decorated with CullPrimitiveEXT must be declared as an array of boolean values
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07037NNoneexplicitCullPrimitiveEXTThe size of the array decorated with CullPrimitiveEXT must match the value specified by OutputPrimitivesEXT
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07038NNoneexplicitCullPrimitiveEXTThe variable decorated with CullPrimitiveEXT within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04942NNoneexplicitCurrentRayTimeNVThe CurrentRayTimeNV decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04943NNoneexplicitCurrentRayTimeNVThe variable decorated with CurrentRayTimeNV must be declared using the Input Storage Class
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04944NNoneexplicitCurrentRayTimeNVThe variable decorated with CurrentRayTimeNV must be declared as a scalar 32-bit floating-point value
VUID-DeviceIndex-DeviceIndex-04205YYValidateLiterals.LiteralsKernelGoodexplicitDeviceIndexThe variable decorated with DeviceIndex must be declared using the Input Storage Class
VUID-DeviceIndex-DeviceIndex-04206YYValidateLiterals.LiteralsKernelGoodexplicitDeviceIndexThe variable decorated with DeviceIndex must be declared as a scalar 32-bit integer value
VUID-DrawIndex-DrawIndex-04207YYValidateLiterals.LiteralsKernelGoodexplicitDrawIndexThe DrawIndex decoration must be used only within the Vertex, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-DrawIndex-DrawIndex-04208YYValidateLiterals.LiteralsKernelGoodexplicitDrawIndexThe variable decorated with DrawIndex must be declared using the Input Storage Class
VUID-DrawIndex-DrawIndex-04209YYValidateLiterals.LiteralsKernelGoodexplicitDrawIndexThe variable decorated with DrawIndex must be declared as a scalar 32-bit integer value
VUID-FirstIndexHUAWEI-FirstIndexHUAWEI-07799NNoneexplicitFirstIndexHUAWEIThe FirstIndexHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-FirstIndexHUAWEI-FirstIndexHUAWEI-07800NNoneexplicitFirstIndexHUAWEIThe variable decorated with FirstIndexHUAWEI must be declared as a scalar 32-bit integer value
VUID-FirstInstanceHUAWEI-FirstInstanceHUAWEI-07801NNoneexplicitFirstInstanceHUAWEIThe FirstInstanceHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-FirstInstanceHUAWEI-FirstInstanceHUAWEI-07802NNoneexplicitFirstInstanceHUAWEIThe variable decorated with FirstInstanceHUAWEI must be declared as a scalar 32-bit integer value
VUID-FirstVertexHUAWEI-FirstVertexHUAWEI-07803NNoneexplicitFirstVertexHUAWEIThe FirstVertexHUAWEI decoration must be used only within the FirstVertexHUAWEI Execution Model
VUID-FirstVertexHUAWEI-FirstVertexHUAWEI-07804NNoneexplicitFirstVertexHUAWEIThe variable decorated with FirstVertexHUAWEI must be declared as a scalar 32-bit integer value
VUID-FragCoord-FragCoord-04210YYValidateLiterals.LiteralsKernelGoodexplicitFragCoordThe FragCoord decoration must be used only within the Fragment Execution Model
VUID-FragCoord-FragCoord-04211YYValidateLiterals.LiteralsKernelGoodexplicitFragCoordThe variable decorated with FragCoord must be declared using the Input Storage Class
VUID-FragCoord-FragCoord-04212YYValidateLiterals.LiteralsKernelGoodexplicitFragCoordThe variable decorated with FragCoord must be declared as a four-component vector of 32-bit floating-point values
VUID-FragDepth-FragDepth-04213YYValidateLiterals.LiteralsKernelGood, VkLayerTest.VuidHashStabilityexplicitFragDepthThe FragDepth decoration must be used only within the Fragment Execution Model
VUID-FragDepth-FragDepth-04214YYValidateLiterals.LiteralsKernelGoodexplicitFragDepthThe variable decorated with FragDepth must be declared using the Output Storage Class
VUID-FragDepth-FragDepth-04215YYValidateLiterals.LiteralsKernelGoodexplicitFragDepthThe variable decorated with FragDepth must be declared as a scalar 32-bit floating-point value
VUID-FragDepth-FragDepth-04216YY, ValidateBuiltIns.VulkanFragmentFragDepthNoDepthReplacingexplicitFragDepthIf the shader dynamically writes to the variable decorated with FragDepth, the DepthReplacing Execution Mode must be declared
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04217YYValidateBuiltIns.TargetIsVariableexplicitFragInvocationCountEXTThe FragInvocationCountEXT decoration must be used only within the Fragment Execution Model
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04218YYValidateBuiltIns.TargetIsVariableexplicitFragInvocationCountEXTThe variable decorated with FragInvocationCountEXT must be declared using the Input Storage Class
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04219YYValidateBuiltIns.TargetIsVariableexplicitFragInvocationCountEXTThe variable decorated with FragInvocationCountEXT must be declared as a scalar 32-bit integer value
VUID-FragSizeEXT-FragSizeEXT-04220YYValidateBuiltIns.TargetIsVariableexplicitFragSizeEXTThe FragSizeEXT decoration must be used only within the Fragment Execution Model
VUID-FragSizeEXT-FragSizeEXT-04221YYValidateBuiltIns.TargetIsVariableexplicitFragSizeEXTThe variable decorated with FragSizeEXT must be declared using the Input Storage Class
VUID-FragSizeEXT-FragSizeEXT-04222YYValidateBuiltIns.TargetIsVariableexplicitFragSizeEXTThe variable decorated with FragSizeEXT must be declared as a two-component vector of 32-bit integer values
VUID-FragStencilRefEXT-FragStencilRefEXT-04223YYValidateBuiltIns.TargetIsVariableexplicitFragStencilRefEXTThe FragStencilRefEXT decoration must be used only within the Fragment Execution Model
VUID-FragStencilRefEXT-FragStencilRefEXT-04224YYValidateBuiltIns.TargetIsVariableexplicitFragStencilRefEXTThe variable decorated with FragStencilRefEXT must be declared using the Output Storage Class
VUID-FragStencilRefEXT-FragStencilRefEXT-04225YYValidateBuiltIns.TargetIsVariableexplicitFragStencilRefEXTThe variable decorated with FragStencilRefEXT must be declared as a scalar integer value
VUID-FragmentSizeNV-FragmentSizeNV-04226NNoneexplicitFragmentSizeNVThe FragmentSizeNV decoration must be used only within the Fragment Execution Model
VUID-FragmentSizeNV-FragmentSizeNV-04227NNoneexplicitFragmentSizeNVThe variable decorated with FragmentSizeNV must be declared using the Input Storage Class
VUID-FragmentSizeNV-FragmentSizeNV-04228NNoneexplicitFragmentSizeNVThe variable decorated with FragmentSizeNV must be declared as a two-component vector of 32-bit integer values
VUID-FrontFacing-FrontFacing-04229YYValidateLiterals.LiteralsKernelGoodexplicitFrontFacingThe FrontFacing decoration must be used only within the Fragment Execution Model
VUID-FrontFacing-FrontFacing-04230YYValidateLiterals.LiteralsKernelGoodexplicitFrontFacingThe variable decorated with FrontFacing must be declared using the Input Storage Class
VUID-FrontFacing-FrontFacing-04231YYValidateLiterals.LiteralsKernelGoodexplicitFrontFacingThe variable decorated with FrontFacing must be declared as a boolean value
VUID-FullyCoveredEXT-FullyCoveredEXT-04232YYValidateBuiltIns.TargetIsVariableexplicitFullyCoveredEXTThe FullyCoveredEXT decoration must be used only within the Fragment Execution Model
VUID-FullyCoveredEXT-FullyCoveredEXT-04233YYValidateBuiltIns.TargetIsVariableexplicitFullyCoveredEXTThe variable decorated with FullyCoveredEXT must be declared using the Input Storage Class
VUID-FullyCoveredEXT-FullyCoveredEXT-04234YYValidateBuiltIns.TargetIsVariableexplicitFullyCoveredEXTThe variable decorated with FullyCoveredEXT must be declared as a boolean value
VUID-FullyCoveredEXT-conservativeRasterizationPostDepthCoverage-04235YNegativeShaderObject.ConservativeRasterizationPostDepthCoverage, NegativeShaderSpirv.ConservativeRasterizationPostDepthCoverageexplicitFullyCoveredEXTIf 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.LiteralsKernelGoodexplicitGlobalInvocationIdThe GlobalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-GlobalInvocationId-GlobalInvocationId-04237YYValidateLiterals.LiteralsKernelGoodexplicitGlobalInvocationIdThe variable decorated with GlobalInvocationId must be declared using the Input Storage Class
VUID-GlobalInvocationId-GlobalInvocationId-04238YYValidateLiterals.LiteralsKernelGoodexplicitGlobalInvocationIdThe variable decorated with GlobalInvocationId must be declared as a three-component vector of 32-bit integer values
VUID-HelperInvocation-HelperInvocation-04239YYValidateLiterals.LiteralsKernelGoodexplicitHelperInvocationThe HelperInvocation decoration must be used only within the Fragment Execution Model
VUID-HelperInvocation-HelperInvocation-04240YYValidateLiterals.LiteralsKernelGoodexplicitHelperInvocationThe variable decorated with HelperInvocation must be declared using the Input Storage Class
VUID-HelperInvocation-HelperInvocation-04241YYValidateLiterals.LiteralsKernelGoodexplicitHelperInvocationThe variable decorated with HelperInvocation must be declared as a boolean value
VUID-HitKindKHR-HitKindKHR-04242YYValidateLiterals.LiteralsKernelGoodexplicitHitKindKHRThe HitKindKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR Execution Model
VUID-HitKindKHR-HitKindKHR-04243YYValidateLiterals.LiteralsKernelGoodexplicitHitKindKHRThe variable decorated with HitKindKHR must be declared using the Input Storage Class
VUID-HitKindKHR-HitKindKHR-04244YYValidateLiterals.LiteralsKernelGoodexplicitHitKindKHRThe variable decorated with HitKindKHR must be declared as a scalar 32-bit integer value
VUID-HitTNV-HitTNV-04245YYValidateLiterals.LiteralsKernelGoodexplicitHitTNVThe HitTNV decoration must be used only within the AnyHitNV or ClosestHitNV Execution Model
VUID-HitTNV-HitTNV-04246YYValidateLiterals.LiteralsKernelGoodexplicitHitTNVThe variable decorated with HitTNV must be declared using the Input Storage Class
VUID-HitTNV-HitTNV-04247YYValidateLiterals.LiteralsKernelGoodexplicitHitTNVThe variable decorated with HitTNV must be declared as a scalar 32-bit floating-point value
VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08747NNoneexplicitHitTriangleVertexPositionsKHRThe HitTriangleVertexPositionsKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR Execution Model
VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08748NNoneexplicitHitTriangleVertexPositionsKHRThe variable decorated with HitTriangleVertexPositionsKHR must be declared using the Input Storage Class
VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08749NNoneexplicitHitTriangleVertexPositionsKHRThe variable decorated with HitTriangleVertexPositionsKHR must be declared as an array of three vectors of three 32-bit float values
VUID-HitTriangleVertexPositionsKHR-HitTriangleVertexPositionsKHR-08750NNoneexplicitHitTriangleVertexPositionsKHRThe variable decorated with HitTriangleVertexPositionsKHR must be used only if the value of HitKindKHR is HitKindFrontFacingTriangleKHR or HitKindBackFacingTriangleKHR
VUID-HitTriangleVertexPositionsKHR-None-08751NNoneexplicitHitTriangleVertexPositionsKHRThe acceleration structure corresponding to the current intersection must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04248YYValidateLiterals.LiteralsKernelGoodexplicitIncomingRayFlagsKHRThe IncomingRayFlagsKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04249YYValidateLiterals.LiteralsKernelGoodexplicitIncomingRayFlagsKHRThe variable decorated with IncomingRayFlagsKHR must be declared using the Input Storage Class
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04250YYValidateLiterals.LiteralsKernelGoodexplicitIncomingRayFlagsKHRThe variable decorated with IncomingRayFlagsKHR must be declared as a scalar 32-bit integer value
VUID-IndexCountHUAWEI-IndexCountHUAWEI-07805NNoneexplicitIndexCountHUAWEIThe IndexCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-IndexCountHUAWEI-IndexCountHUAWEI-07806NNoneexplicitIndexCountHUAWEIThe variable decorated with IndexCountHUAWEI must be declared as a scalar 32-bit integer value
VUID-InstanceCountHUAWEI-InstanceCountHUAWEI-07807NNoneexplicitInstanceCountHUAWEIThe InstanceCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-InstanceCountHUAWEI-InstanceCountHUAWEI-07808NNoneexplicitInstanceCountHUAWEIThe variable decorated with InstanceCountHUAWEI must be declared as a scalar 32-bit integer value
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04251YYValidateLiterals.LiteralsKernelGoodexplicitInstanceCustomIndexKHRThe InstanceCustomIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04252YYValidateLiterals.LiteralsKernelGoodexplicitInstanceCustomIndexKHRThe variable decorated with InstanceCustomIndexKHR must be declared using the Input Storage Class
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04253YYValidateLiterals.LiteralsKernelGoodexplicitInstanceCustomIndexKHRThe variable decorated with InstanceCustomIndexKHR must be declared as a scalar 32-bit integer value
VUID-InstanceId-InstanceId-04254YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIdThe InstanceId decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-InstanceId-InstanceId-04255YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIdThe variable decorated with InstanceId must be declared using the Input Storage Class
VUID-InstanceId-InstanceId-04256YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIdThe variable decorated with InstanceId must be declared as a scalar 32-bit integer value
VUID-InstanceIndex-InstanceIndex-04263YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIndexThe InstanceIndex decoration must be used only within the Vertex Execution Model
VUID-InstanceIndex-InstanceIndex-04264YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIndexThe variable decorated with InstanceIndex must be declared using the Input Storage Class
VUID-InstanceIndex-InstanceIndex-04265YYValidateLiterals.LiteralsKernelGoodexplicitInstanceIndexThe variable decorated with InstanceIndex must be declared as a scalar 32-bit integer value
VUID-InvocationId-InvocationId-04257YYValidateLiterals.LiteralsKernelGoodexplicitInvocationIdThe InvocationId decoration must be used only within the TessellationControl or Geometry Execution Model
VUID-InvocationId-InvocationId-04258YYValidateLiterals.LiteralsKernelGoodexplicitInvocationIdThe variable decorated with InvocationId must be declared using the Input Storage Class
VUID-InvocationId-InvocationId-04259YYValidateLiterals.LiteralsKernelGoodexplicitInvocationIdThe variable decorated with InvocationId must be declared as a scalar 32-bit integer value
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04260NNoneexplicitInvocationsPerPixelNVThe InvocationsPerPixelNV decoration must be used only within the Fragment Execution Model
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04261NNoneexplicitInvocationsPerPixelNVThe variable decorated with InvocationsPerPixelNV must be declared using the Input Storage Class
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04262NNoneexplicitInvocationsPerPixelNVThe variable decorated with InvocationsPerPixelNV must be declared as a scalar 32-bit integer value
VUID-LaunchIdKHR-LaunchIdKHR-04266YYValidateLiterals.LiteralsKernelGoodexplicitLaunchIdKHRThe LaunchIdKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR Execution Model
VUID-LaunchIdKHR-LaunchIdKHR-04267YYValidateLiterals.LiteralsKernelGoodexplicitLaunchIdKHRThe variable decorated with LaunchIdKHR must be declared using the Input Storage Class
VUID-LaunchIdKHR-LaunchIdKHR-04268YYValidateLiterals.LiteralsKernelGoodexplicitLaunchIdKHRThe variable decorated with LaunchIdKHR must be declared as a three-component vector of 32-bit integer values
VUID-LaunchSizeKHR-LaunchSizeKHR-04269YYValidateLiterals.LiteralsKernelGoodexplicitLaunchSizeKHRThe LaunchSizeKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR Execution Model
VUID-LaunchSizeKHR-LaunchSizeKHR-04270YYValidateLiterals.LiteralsKernelGoodexplicitLaunchSizeKHRThe variable decorated with LaunchSizeKHR must be declared using the Input Storage Class
VUID-LaunchSizeKHR-LaunchSizeKHR-04271YYValidateLiterals.LiteralsKernelGoodexplicitLaunchSizeKHRThe variable decorated with LaunchSizeKHR must be declared as a three-component vector of 32-bit integer values
VUID-Layer-Layer-04272YYValidateLiterals.LiteralsKernelGoodexplicitLayerThe Layer decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment Execution Model
VUID-Layer-Layer-04273YYValidateLiterals.LiteralsKernelGoodexplicitLayerIf 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.LiteralsKernelGoodexplicitLayerThe 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.LiteralsKernelGoodexplicitLayerThe variable decorated with Layer within the Fragment Execution Model must be declared using the Input Storage Class
VUID-Layer-Layer-04276YYValidateLiterals.LiteralsKernelGoodexplicitLayerThe variable decorated with Layer must be declared as a scalar 32-bit integer value
VUID-Layer-Layer-07039NNoneexplicitLayerThe variable decorated with Layer within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-LayerPerViewNV-LayerPerViewNV-04277NNoneexplicitLayerPerViewNVThe LayerPerViewNV decoration must be used only within the MeshNV Execution Model
VUID-LayerPerViewNV-LayerPerViewNV-04278NNoneexplicitLayerPerViewNVThe variable decorated with LayerPerViewNV must be declared using the Output Storage Class
VUID-LayerPerViewNV-LayerPerViewNV-04279NNoneexplicitLayerPerViewNVThe variable decorated with LayerPerViewNV must also be decorated with the PerViewNV decoration
VUID-LayerPerViewNV-LayerPerViewNV-04280NNoneexplicitLayerPerViewNVThe variable decorated with LayerPerViewNV must be declared as an array of scalar 32-bit integer values
VUID-LocalInvocationId-LocalInvocationId-04281YYValidateLiterals.LiteralsKernelGoodexplicitLocalInvocationIdThe LocalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-LocalInvocationId-LocalInvocationId-04282YYValidateLiterals.LiteralsKernelGoodexplicitLocalInvocationIdThe variable decorated with LocalInvocationId must be declared using the Input Storage Class
VUID-LocalInvocationId-LocalInvocationId-04283YYValidateLiterals.LiteralsKernelGoodexplicitLocalInvocationIdThe variable decorated with LocalInvocationId must be declared as a three-component vector of 32-bit integer values
VUID-LocalInvocationIndex-LocalInvocationIndex-04284NNoneexplicitLocalInvocationIndexThe LocalInvocationIndex decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-LocalInvocationIndex-LocalInvocationIndex-04285NNoneexplicitLocalInvocationIndexThe variable decorated with LocalInvocationIndex must be declared using the Input Storage Class
VUID-LocalInvocationIndex-LocalInvocationIndex-04286NNoneexplicitLocalInvocationIndexThe variable decorated with LocalInvocationIndex must be declared as a scalar 32-bit integer value
VUID-MeshViewCountNV-MeshViewCountNV-04287NNoneexplicitMeshViewCountNVThe MeshViewCountNV decoration must be used only within the MeshNV or TaskNV Execution Model
VUID-MeshViewCountNV-MeshViewCountNV-04288NNoneexplicitMeshViewCountNVThe variable decorated with MeshViewCountNV must be declared using the Input Storage Class
VUID-MeshViewCountNV-MeshViewCountNV-04289NNoneexplicitMeshViewCountNVThe variable decorated with MeshViewCountNV must be declared as a scalar 32-bit integer value
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04290NNoneexplicitMeshViewIndicesNVThe MeshViewIndicesNV decoration must be used only within the MeshNV or TaskNV Execution Model
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04291NNoneexplicitMeshViewIndicesNVThe variable decorated with MeshViewIndicesNV must be declared using the Input Storage Class
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04292NNoneexplicitMeshViewIndicesNVThe variable decorated with MeshViewIndicesNV must be declared as an array of scalar 32-bit integer values
VUID-NumSubgroups-NumSubgroups-04293YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitNumSubgroupsThe NumSubgroups decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-NumSubgroups-NumSubgroups-04294YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitNumSubgroupsThe variable decorated with NumSubgroups must be declared using the Input Storage Class
VUID-NumSubgroups-NumSubgroups-04295YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitNumSubgroupsThe variable decorated with NumSubgroups must be declared as a scalar 32-bit integer value
VUID-NumWorkgroups-NumWorkgroups-04296YYValidateLiterals.LiteralsKernelGoodexplicitNumWorkgroupsThe NumWorkgroups decoration must be used only within the GLCompute, MeshEXT, or TaskEXT Execution Model
VUID-NumWorkgroups-NumWorkgroups-04297YYValidateLiterals.LiteralsKernelGoodexplicitNumWorkgroupsThe variable decorated with NumWorkgroups must be declared using the Input Storage Class
VUID-NumWorkgroups-NumWorkgroups-04298YYValidateLiterals.LiteralsKernelGoodexplicitNumWorkgroupsThe variable decorated with NumWorkgroups must be declared as a three-component vector of 32-bit integer values
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04299YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayDirectionKHRThe ObjectRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04300YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayDirectionKHRThe variable decorated with ObjectRayDirectionKHR must be declared using the Input Storage Class
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04301YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayDirectionKHRThe variable decorated with ObjectRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04302YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayOriginKHRThe ObjectRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04303YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayOriginKHRThe variable decorated with ObjectRayOriginKHR must be declared using the Input Storage Class
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04304YYValidateLiterals.LiteralsKernelGoodexplicitObjectRayOriginKHRThe variable decorated with ObjectRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04305YYValidateLiterals.LiteralsKernelGoodexplicitObjectToWorldKHRThe ObjectToWorldKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04306YYValidateLiterals.LiteralsKernelGoodexplicitObjectToWorldKHRThe variable decorated with ObjectToWorldKHR must be declared using the Input Storage Class
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04307YYValidateLiterals.LiteralsKernelGoodexplicitObjectToWorldKHRThe 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_vkDebugUtilsMessengerCallbackEXTThe callback must not make calls to any Vulkan commands
VUID-PatchVertices-PatchVertices-04308YYValidateLiterals.LiteralsKernelGoodexplicitPatchVerticesThe PatchVertices decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model
VUID-PatchVertices-PatchVertices-04309YYValidateLiterals.LiteralsKernelGoodexplicitPatchVerticesThe variable decorated with PatchVertices must be declared using the Input Storage Class
VUID-PatchVertices-PatchVertices-04310YYValidateLiterals.LiteralsKernelGoodexplicitPatchVerticesThe variable decorated with PatchVertices must be declared as a scalar 32-bit integer value
VUID-PointCoord-PointCoord-04311YYValidateLiterals.LiteralsKernelGoodexplicitPointCoordThe PointCoord decoration must be used only within the Fragment Execution Model
VUID-PointCoord-PointCoord-04312YYValidateLiterals.LiteralsKernelGoodexplicitPointCoordThe variable decorated with PointCoord must be declared using the Input Storage Class
VUID-PointCoord-PointCoord-04313YYValidateLiterals.LiteralsKernelGoodexplicitPointCoordThe variable decorated with PointCoord must be declared as a two-component vector of 32-bit floating-point values
VUID-PointSize-PointSize-04314YYValidateLiterals.LiteralsKernelGoodexplicitPointSizeThe PointSize decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-PointSize-PointSize-04315YYValidateLiterals.LiteralsKernelGoodexplicitPointSizeThe variable decorated with PointSize within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class
VUID-PointSize-PointSize-04316YYNoneexplicitPointSizeThe 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.LiteralsKernelGoodexplicitPointSizeThe variable decorated with PointSize must be declared as a scalar 32-bit floating-point value
VUID-Position-Position-04318YYValidateLiterals.LiteralsKernelGoodexplicitPositionThe Position decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-Position-Position-04319YYValidateLiterals.LiteralsKernelGoodexplicitPositionThe variable decorated with Position within the MeshEXT, MeshNV, or Vertex Execution Model must be declared using the Output Storage Class
VUID-Position-Position-04320YYValidateLiterals.LiteralsKernelGoodexplicitPositionThe 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.LiteralsKernelGoodexplicitPositionThe variable decorated with Position must be declared as a four-component vector of 32-bit floating-point values
VUID-PositionPerViewNV-PositionPerViewNV-04322NNoneexplicitPositionPerViewNVThe PositionPerViewNV decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-PositionPerViewNV-PositionPerViewNV-04323NNoneexplicitPositionPerViewNVThe variable decorated with PositionPerViewNV within the Vertex, or MeshNV Execution Model must be declared using the Output Storage Class
VUID-PositionPerViewNV-PositionPerViewNV-04324NNoneexplicitPositionPerViewNVThe 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-04325NNoneexplicitPositionPerViewNVThe 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-04326NNoneexplicitPositionPerViewNVThe array variable decorated with PositionPerViewNV must only be indexed by a constant or specialization constant
VUID-PrimitiveCountNV-PrimitiveCountNV-04327NNoneexplicitPrimitiveCountNVThe PrimitiveCountNV decoration must be used only within the MeshNV Execution Model
VUID-PrimitiveCountNV-PrimitiveCountNV-04328NNoneexplicitPrimitiveCountNVThe variable decorated with PrimitiveCountNV must be declared using the Output Storage Class
VUID-PrimitiveCountNV-PrimitiveCountNV-04329NNoneexplicitPrimitiveCountNVThe variable decorated with PrimitiveCountNV must be declared as a scalar 32-bit integer value
VUID-PrimitiveId-Fragment-04331NNoneexplicitPrimitiveIdIf 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-04332NNoneexplicitPrimitiveIdIf 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-04333NNoneexplicitPrimitiveIdIf 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.LiteralsKernelGoodexplicitPrimitiveIdThe PrimitiveId decoration must be used only within the MeshEXT, MeshNV, IntersectionKHR, AnyHitKHR, ClosestHitKHR, TessellationControl, TessellationEvaluation, Geometry, or Fragment Execution Model
VUID-PrimitiveId-PrimitiveId-04334YYValidateLiterals.LiteralsKernelGoodexplicitPrimitiveIdThe 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-04335NNoneexplicitPrimitiveIdThe variable decorated with PrimitiveId within the Geometry Execution Model must be declared using the Input or Output Storage Class
VUID-PrimitiveId-PrimitiveId-04336NNoneexplicitPrimitiveIdThe variable decorated with PrimitiveId within the MeshEXT or MeshNV Execution Model must be declared using the Output Storage Class
VUID-PrimitiveId-PrimitiveId-04337YYValidateLiterals.LiteralsKernelGoodexplicitPrimitiveIdThe variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value
VUID-PrimitiveId-PrimitiveId-07040NNoneexplicitPrimitiveIdThe variable decorated with PrimitiveId within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-PrimitiveIndicesNV-OutputLinesNV-04343NNoneexplicitPrimitiveIndicesNVIf 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-04342NNoneexplicitPrimitiveIndicesNVIf the Execution Mode is OutputPoints, then the array decorated with PrimitiveIndicesNV must be the size of the value specified by OutputPrimitivesNV
VUID-PrimitiveIndicesNV-OutputTrianglesNV-04344NNoneexplicitPrimitiveIndicesNVIf 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-04338NNoneexplicitPrimitiveIndicesNVThe PrimitiveIndicesNV decoration must be used only within the MeshNV Execution Model
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04339NNoneexplicitPrimitiveIndicesNVThe variable decorated with PrimitiveIndicesNV must be declared using the Output Storage Class
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04340NNoneexplicitPrimitiveIndicesNVThe variable decorated with PrimitiveIndicesNV must be declared as an array of scalar 32-bit integer values
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04341NNoneexplicitPrimitiveIndicesNVAll 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-07047YYNoneexplicitPrimitiveLineIndicesEXTThe PrimitiveLineIndicesEXT decoration must be used only within the MeshEXT Execution Model
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07048NNoneexplicitPrimitiveLineIndicesEXTThe PrimitiveLineIndicesEXT decoration must be used with the OutputLinesEXT Execution Mode
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07049YYValidateBuiltIns.VulkanPrimitiveLineIndicesEXTStorageClassexplicitPrimitiveLineIndicesEXTThe variable decorated with PrimitiveLineIndicesEXT must be declared using the Output Storage Class
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07050YYValidateBuiltIns.VulkanPrimitiveLineIndicesEXTTypeexplicitPrimitiveLineIndicesEXTThe variable decorated with PrimitiveLineIndicesEXT must be declared as an array of two component vector 32-bit integer values
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07051NNoneexplicitPrimitiveLineIndicesEXTAll 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-07052NNoneexplicitPrimitiveLineIndicesEXTThe size of the array decorated with PrimitiveLineIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07041YYNoneexplicitPrimitivePointIndicesEXTThe PrimitivePointIndicesEXT decoration must be used only within the MeshEXT Execution Model
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07042NNoneexplicitPrimitivePointIndicesEXTThe PrimitivePointIndicesEXT decoration must be used with the OutputPoints Execution Mode
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07043YYValidateBuiltIns.VulkanPrimitivePointIndicesEXTStorageClassexplicitPrimitivePointIndicesEXTThe variable decorated with PrimitivePointIndicesEXT must be declared using the Output Storage Class
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07044YYValidateBuiltIns.VulkanPrimitivePointIndicesEXTTypeexplicitPrimitivePointIndicesEXTThe variable decorated with PrimitivePointIndicesEXT must be declared as an array of scalar 32-bit integer values
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07045NNoneexplicitPrimitivePointIndicesEXTAll 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-07046NNoneexplicitPrimitivePointIndicesEXTThe size of the array decorated with PrimitivePointIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484YYValidateBuiltIns.TargetIsVariableexplicitPrimitiveShadingRateKHRThe PrimitiveShadingRateKHR decoration must be used only within the MeshEXT, MeshNV, Vertex, or Geometry Execution Model
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485YYValidateBuiltIns.TargetIsVariableexplicitPrimitiveShadingRateKHRThe variable decorated with PrimitiveShadingRateKHR must be declared using the Output Storage Class
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486YYValidateBuiltIns.TargetIsVariableexplicitPrimitiveShadingRateKHRThe variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487NNoneexplicitPrimitiveShadingRateKHRThe value written to PrimitiveShadingRateKHR must include no more than one of Vertical2Pixels and Vertical4Pixels
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488NNoneexplicitPrimitiveShadingRateKHRThe value written to PrimitiveShadingRateKHR must include no more than one of Horizontal2Pixels and Horizontal4Pixels
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489NNoneexplicitPrimitiveShadingRateKHRThe 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-07059NNoneexplicitPrimitiveShadingRateKHRThe variable decorated with PrimitiveShadingRateKHR within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07053YYNoneexplicitPrimitiveTriangleIndicesEXTThe PrimitiveTriangleIndicesEXT decoration must be used only within the MeshEXT Execution Model
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07054NNoneexplicitPrimitiveTriangleIndicesEXTThe PrimitiveTriangleIndicesEXT decoration must be used with the OutputTrianglesEXT Execution Mode
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07055YYNoneexplicitPrimitiveTriangleIndicesEXTThe variable decorated with PrimitiveTriangleIndicesEXT must be declared using the Output Storage Class
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07056YYNoneexplicitPrimitiveTriangleIndicesEXTThe variable decorated with PrimitiveTriangleIndicesEXT must be declared as an array of three component vector 32-bit integer values
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07057NNoneexplicitPrimitiveTriangleIndicesEXTAll 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-07058NNoneexplicitPrimitiveTriangleIndicesEXTThe size of the array decorated with PrimitiveTriangleIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04345YYValidateLiterals.LiteralsKernelGoodexplicitRayGeometryIndexKHRThe RayGeometryIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346YYValidateLiterals.LiteralsKernelGoodexplicitRayGeometryIndexKHRThe variable decorated with RayGeometryIndexKHR must be declared using the Input Storage Class
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347YYValidateLiterals.LiteralsKernelGoodexplicitRayGeometryIndexKHRThe variable decorated with RayGeometryIndexKHR must be declared as a scalar 32-bit integer value
VUID-RayTmaxKHR-RayTmaxKHR-04348YYValidateLiterals.LiteralsKernelGoodexplicitRayTmaxKHRThe RayTmaxKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-RayTmaxKHR-RayTmaxKHR-04349YYValidateLiterals.LiteralsKernelGood, VkLayerTest.VuidHashStabilityexplicitRayTmaxKHRThe variable decorated with RayTmaxKHR must be declared using the Input Storage Class
VUID-RayTmaxKHR-RayTmaxKHR-04350YYValidateLiterals.LiteralsKernelGoodexplicitRayTmaxKHRThe variable decorated with RayTmaxKHR must be declared as a scalar 32-bit floating-point value
VUID-RayTminKHR-RayTminKHR-04351YYValidateLiterals.LiteralsKernelGoodexplicitRayTminKHRThe RayTminKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-RayTminKHR-RayTminKHR-04352YYValidateLiterals.LiteralsKernelGoodexplicitRayTminKHRThe variable decorated with RayTminKHR must be declared using the Input Storage Class
VUID-RayTminKHR-RayTminKHR-04353YYValidateLiterals.LiteralsKernelGoodexplicitRayTminKHRThe variable decorated with RayTminKHR must be declared as a scalar 32-bit floating-point value
VUID-RuntimeSpirv-DescriptorSet-06323NNoneexplicitRuntimeSpirvDescriptorSet and Binding decorations must obey the constraints on Storage Class, type, and descriptor type described in DescriptorSet and Binding Assignment
VUID-RuntimeSpirv-InputAttachmentArrayNonUniformIndexing-10138NNoneexplicitRuntimeSpirvIf the InputAttachmentArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through an input attachment, the input attachment through which that memory is accessed must be dynamically uniform within the invocation group or subgroup
VUID-RuntimeSpirv-LocalSizeId-06434YNegativeShaderCompute.LocalSizeIdExecutionMode, NegativeShaderCompute.LocalSizeIdExecutionModeMaintenance5, NegativeShaderObject.LocalSizeIdExecutionModeexplicitRuntimeSpirvIf 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.MaxVertexOutputComponents, NegativeShaderLimits.MaxFragmentOutputAttachments, NegativeShaderLimits.MaxFragmentOutputAttachmentsArray, NegativeShaderLimits.MaxFragmentOutputAttachmentsArrayAtEndexplicitRuntimeSpirvThe 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-06428YNegativeShaderLimits.MaxFragmentCombinedOutputResourcesexplicitRuntimeSpirvThe 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-MaximallyReconvergesKHR-09565NNoneexplicitRuntimeSpirvThe execution mode MaximallyReconvergesKHR must not be applied to an entry point unless the entry point does not execute any invocation repack instructions
VUID-RuntimeSpirv-MeshEXT-07115YNegativeMesh.RuntimeSpirv, NegativeMesh.RuntimeSpirv2, NegativeShaderObject.MeshOutputVerticesexplicitRuntimeSpirvFor mesh shaders using the MeshEXT Execution Model the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices
VUID-RuntimeSpirv-MeshEXT-07116YNegativeMesh.RuntimeSpirv, NegativeMesh.RuntimeSpirv2explicitRuntimeSpirvFor mesh shaders using the MeshEXT Execution Model the OutputPrimitivesEXT OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives
VUID-RuntimeSpirv-MeshEXT-07118NNoneexplicitRuntimeSpirvIn mesh shaders using the MeshEXT Execution Model OpSetMeshOutputsEXT must be called at most once under dynamically uniform conditions
VUID-RuntimeSpirv-MeshEXT-07295YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvFor 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.RuntimeSpirvexplicitRuntimeSpirvFor 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.RuntimeSpirvexplicitRuntimeSpirvFor 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.RuntimeSpirvexplicitRuntimeSpirvFor 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-07332NNoneexplicitRuntimeSpirvFor 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-07333NNoneexplicitRuntimeSpirvFor 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-09218NNoneexplicitRuntimeSpirvIn 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.RuntimeSpirvNVexplicitRuntimeSpirvFor mesh shaders using the MeshNV Execution Model the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices
VUID-RuntimeSpirv-MeshNV-07114YNegativeMesh.RuntimeSpirvNVexplicitRuntimeSpirvFor mesh shaders using the MeshNV Execution Model the OutputPrimitivesNV OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives
VUID-RuntimeSpirv-NodePayloadAMDX-09192NNoneexplicitRuntimeSpirvVariables in the NodePayloadAMDX storage class must only be declared in the GLCompute execution model
VUID-RuntimeSpirv-NonWritable-06340YNegativeAtomic.FragmentStoresAndAtomicsFeatureBuffer, NegativeAtomic.FragmentStoresAndAtomicsFeatureDisableexplicitRuntimeSpirvIf 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.VertexPipelineStoresAndAtomics, NegativeAtomic.VertexStoresAndAtomicsFeatureDisable, NegativeAtomic.VertexStoresAndAtomicsFeatureDisableShaderObjectexplicitRuntimeSpirvIf 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.ExtendedTypesDisabledexplicitRuntimeSpirvshaderSubgroupExtendedTypes 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.AtomicsexplicitRuntimeSpirvshaderBufferInt64Atomics 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.Int64explicitRuntimeSpirvshaderSharedInt64Atomics 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.Float2explicitRuntimeSpirvshaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderBufferFloat32AtomicMinMax, or shaderBufferFloat64AtomicMinMax, or shaderFloat16VectorAtomics 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.Float2explicitRuntimeSpirvshaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax, or shaderSharedFloat32AtomicMinMax, or shaderSharedFloat64AtomicMinMax, or shaderFloat16VectorAtomics, 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.Float2explicitRuntimeSpirvshaderImageFloat32Atomics, 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-06287NNoneexplicitRuntimeSpirvsparseImageFloat32Atomics, or sparseImageFloat32AtomicAdd, or sparseImageFloat32AtomicMinMax, must be enabled for 32-bit floating-point atomics to be supported on sparse images
VUID-RuntimeSpirv-None-06288YNegativeAtomic.ImageInt64explicitRuntimeSpirvshaderImageInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Image
VUID-RuntimeSpirv-None-06337YNoneexplicitRuntimeSpirvshaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax must be enabled for 16-bit floating-point atomic operations
VUID-RuntimeSpirv-None-06338YNegativeAtomic.Float2WidthMismatchexplicitRuntimeSpirvshaderBufferFloat32Atomics, 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-06339YNoneexplicitRuntimeSpirvshaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderBufferFloat64AtomicMinMax, or shaderSharedFloat64AtomicMinMax, must be enabled for 64-bit floating-point atomic operations
VUID-RuntimeSpirv-None-06342YNegativeSubgroup.PropertiesexplicitRuntimeSpirvIf subgroupQuadOperationsInAllStages is VK_FALSE, then quad subgroup operations must not be used except for in fragment and compute stages
VUID-RuntimeSpirv-None-06343YNegativeSubgroup.PropertiesexplicitRuntimeSpirvGroup operations with subgroup scope must not be used if the shader stage is not in subgroupSupportedStages
VUID-RuntimeSpirv-None-09558YNegativeShaderInterface.MissingInputAttachmentIndex, NegativeShaderInterface.MissingInputAttachmentIndexShaderObjectexplicitRuntimeSpirvIf dynamicRenderingLocalRead is not enabled, any variable created with a "Type" of OpTypeImage that has a "Dim" operand of SubpassData must be decorated with InputAttachmentIndex
VUID-RuntimeSpirv-None-10148NNoneexplicitRuntimeSpirvIf an instruction accesses memory through any resource, subgroupSize is 1, and the resource through which that memory is accessed is not uniform within the invocation group, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated with NonUniform
VUID-RuntimeSpirv-Offset-06308YNegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvThe 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-06344NNoneexplicitRuntimeSpirvThe 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-06345NNoneexplicitRuntimeSpirvThe 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-06346NNoneexplicitRuntimeSpirvThe 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-06347NNoneexplicitRuntimeSpirvThe 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-08986NNoneexplicitRuntimeSpirvFor 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-06324NNoneexplicitRuntimeSpirvFor 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-10060YNegativeShaderCooperativeMatrix.MatchSizeWithProperties, NegativeShaderCooperativeMatrix.SameScope, NegativeShaderCooperativeMatrix.SignedCheckexplicitRuntimeSpirvFor OpCooperativeMatrixMulAddKHR, the operands must match a supported VkCooperativeMatrixPropertiesKHR, such that: The type of A must have Rows match VkCooperativeMatrixPropertiesKHR::MSize, Columns match VkCooperativeMatrixPropertiesKHR::KSize, Use be MatrixAKHR, and ComponentType match VkCooperativeMatrixPropertiesKHR::AType. The type of B must have Rows match VkCooperativeMatrixPropertiesKHR::KSize, Columns match VkCooperativeMatrixPropertiesKHR::NSize, Use be MatrixBKHR, and ComponentType match VkCooperativeMatrixPropertiesKHR::BType. The type of C must have Rows match VkCooperativeMatrixPropertiesKHR::MSize, Columns match VkCooperativeMatrixPropertiesKHR::NSize, Use be MatrixAccumulatorKHR, and ComponentType match VkCooperativeMatrixPropertiesKHR::CType. The type of Result must have Rows match VkCooperativeMatrixPropertiesKHR::MSize, Columns match VkCooperativeMatrixPropertiesKHR::NSize, Use be MatrixAccumulatorKHR, and ComponentType match VkCooperativeMatrixPropertiesKHR::ResultType. If and only if VkCooperativeMatrixPropertiesKHR::AType is a signed integer type, MatrixASignedComponents must be used. If and only if VkCooperativeMatrixPropertiesKHR::BType is a signed integer type, MatrixBSignedComponents must be used. If and only if VkCooperativeMatrixPropertiesKHR::CType is a signed integer type, MatrixCSignedComponents must be used. If and only if VkCooperativeMatrixPropertiesKHR::ResultType is a signed integer type, MatrixResultSignedComponents must be used. If and only if VkCooperativeMatrixPropertiesKHR::saturatingAccumulation is VK_TRUE, SaturatingAccumulationKHR must be used. If and only if VkCooperativeMatrixPropertiesKHR::saturatingAccumulation is VK_FALSE, SaturatingAccumulationKHR must not be used. The scope of all cooperative matrix operands must be VkScopeKHR::VK_SCOPE_SUBGROUP_KHR.
VUID-RuntimeSpirv-OpEmitStreamVertex-06310YNegativeShaderObject.MaxTransformFeedbackStream, NegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvThe Stream value to OpEmitStreamVertex and OpEndStreamPrimitive must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-RuntimeSpirv-OpEntryPoint-07754YNegativeShaderInterface.InputOutputMismatch, NegativeShaderInterface.VsFsTypeMismatch, NegativeShaderInterface.VsFsTypeMismatch2, NegativeShaderInterface.VsFsTypeMismatchBlockArrayOfStruct, NegativeShaderInterface.VsFsTypeMismatchBlockNestedStructType64bit, NegativeShaderInterface.VsFsTypeMismatchBlockStruct, NegativeShaderInterface.VsFsTypeMismatchBlockStruct64bit, NegativeShaderInterface.VsFsTypeMismatchBlockStructArraySizeVertex, NegativeShaderInterface.VsFsTypeMismatchBlockStructInnerArraySize, NegativeShaderInterface.VsFsTypeMismatchInBlock, NegativeShaderInterface.VsFsTypeMismatchShaderObjectexplicitRuntimeSpirvAny user-defined variables between the OpEntryPoint of two shader stages must have the same type and width for each Component
VUID-RuntimeSpirv-OpEntryPoint-08727NNoneexplicitRuntimeSpirvEach 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-08743YNegativeShaderInterface.FragmentInputNotProvided, NegativeShaderInterface.FragmentInputNotProvidedInBlock, NegativeShaderInterface.MultidimensionalArray, NegativeShaderInterface.MultidimensionalArray64bit, NegativeShaderInterface.MultidimensionalArrayDim, NegativeShaderInterface.PackingInsideArray, NegativeShaderInterface.VsFsMismatchByComponent, NegativeShaderInterface.VsFsMismatchByLocation, NegativeShaderInterface.VsFsTypeMismatchBlockNestedStructArray, NegativeShaderInterface.VsFsTypeMismatchBlockStructArraySizeVertex, NegativeShaderInterface.VsFsTypeMismatchBlockStructInnerArraySize, NegativeShaderInterface.VsFsTypeMismatchBlockStructOuter2DArraySize, NegativeShaderInterface.VsFsTypeMismatchBlockStructOuterArraySizeexplicitRuntimeSpirvAny 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-07704NNoneexplicitRuntimeSpirvFor 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-07709NNoneexplicitRuntimeSpirvFor 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-07711NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07705NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07706NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07707NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07708NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07710NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07712NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07713NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07714NNoneexplicitRuntimeSpirvFor OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07715NNoneexplicitRuntimeSpirvFor 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-07716NNoneexplicitRuntimeSpirvFor 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.MinTexelGatherOffsetexplicitRuntimeSpirvIf 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.MinTexelGatherOffsetexplicitRuntimeSpirvIf 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-06982NNoneexplicitRuntimeSpirvIf 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-06983NNoneexplicitRuntimeSpirvIf 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-06984NNoneexplicitRuntimeSpirvIf 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-06985NNoneexplicitRuntimeSpirvIf 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-06986NNoneexplicitRuntimeSpirvIf 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-06987NNoneexplicitRuntimeSpirvIf 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-06988NNoneexplicitRuntimeSpirvIf an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09219NNoneexplicitRuntimeSpirvIf 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-09220NNoneexplicitRuntimeSpirvIf 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-09221NNoneexplicitRuntimeSpirvIf 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-09222NNoneexplicitRuntimeSpirvIf 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-09223NNoneexplicitRuntimeSpirvIf 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-09224NNoneexplicitRuntimeSpirvIf 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-06989NNoneexplicitRuntimeSpirvIf 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-06990NNoneexplicitRuntimeSpirvIf an OpImageBoxFilterQCOM operation is used, then Sampled Texture Image and Box Size parameters must be dynamically uniform
VUID-RuntimeSpirv-OpImageSample-06435YNegativeShaderLimits.MinAndMaxTexelOffsetexplicitRuntimeSpirvIf 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.MinAndMaxTexelOffsetexplicitRuntimeSpirvIf 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-06979NNoneexplicitRuntimeSpirvIf 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-06980NNoneexplicitRuntimeSpirvIf 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-06981NNoneexplicitRuntimeSpirvIf 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.WriteLessComponentexplicitRuntimeSpirvOpImageWrite 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-06353NNoneexplicitRuntimeSpirvFor 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-06354NNoneexplicitRuntimeSpirvFor OpRayQueryGenerateIntersectionKHR instructions, Acceleration Structure must not be built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06348YNegativeGpuAVRayQuery.ComputeRayOriginNonFiniteexplicitRuntimeSpirvFor OpRayQueryInitializeKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349YNegativeGpuAVRayQuery.ComputeUseQueryUninit, NegativeGpuAVRayQuery.FragmentUseQueryUninit, NegativeGpuAVRayQuery.NegativeTmin, NegativeGpuAVRayQuery.RayGenUseQueryUninitexplicitRuntimeSpirvFor OpRayQueryInitializeKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350YNegativeGpuAVRayQuery.TMaxLessThenTminexplicitRuntimeSpirvFor OpRayQueryInitializeKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351YNegativeGpuAVRayQuery.ComputeRayOriginNaNexplicitRuntimeSpirvFor OpRayQueryInitializeKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352NNoneexplicitRuntimeSpirvFor OpRayQueryInitializeKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06889YNegativeGpuAVRayQuery.ComputeRayFlagsBothSkipexplicitRuntimeSpirvFor OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06890YNoneexplicitRuntimeSpirvFor OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06891YNegativeGpuAVRayQuery.ComputeRayFlagsOpaqueexplicitRuntimeSpirvFor OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpReportIntersectionKHR-06998NNoneexplicitRuntimeSpirvThe value of the "Hit Kind" operand of OpReportIntersectionKHR must be in the range [0,127]
VUID-RuntimeSpirv-OpTraceRayKHR-06355NNoneexplicitRuntimeSpirvFor OpTraceRayKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpTraceRayKHR-06356NNoneexplicitRuntimeSpirvFor OpTraceRayKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpTraceRayKHR-06357NNoneexplicitRuntimeSpirvFor OpTraceRayKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpTraceRayKHR-06358NNoneexplicitRuntimeSpirvFor OpTraceRayKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpTraceRayKHR-06359NNoneexplicitRuntimeSpirvFor OpTraceRayKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure
VUID-RuntimeSpirv-OpTraceRayKHR-06360NNoneexplicitRuntimeSpirvFor 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-06552NNoneexplicitRuntimeSpirvFor OpTraceRayKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpTraceRayKHR-06553NNoneexplicitRuntimeSpirvFor 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-06554NNoneexplicitRuntimeSpirvFor 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-06892NNoneexplicitRuntimeSpirvFor OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpTraceRayKHR-06893NNoneexplicitRuntimeSpirvFor OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpTraceRayMotionNV-06361NNoneexplicitRuntimeSpirvFor OpTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpTraceRayMotionNV-06362NNoneexplicitRuntimeSpirvFor OpTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpTraceRayMotionNV-06363NNoneexplicitRuntimeSpirvFor OpTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpTraceRayMotionNV-06364NNoneexplicitRuntimeSpirvFor OpTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpTraceRayMotionNV-06365NNoneexplicitRuntimeSpirvFor 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-06366NNoneexplicitRuntimeSpirvFor OpTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0
VUID-RuntimeSpirv-OpTraceRayMotionNV-06367NNoneexplicitRuntimeSpirvFor OpTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpTypeCooperativeMatrixKHR-08974YNegativeShaderCooperativeMatrix.MatchSizeWithProperties, NegativeShaderCooperativeMatrix.ParametersMatchProperties, NegativeShaderCooperativeMatrix.SameScope, NegativeShaderCooperativeMatrix.SignedCheck, NegativeShaderObject.CooperativeMatrixexplicitRuntimeSpirvFor 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-OpTypeCooperativeMatrixMulAddNV-10059YNoneexplicitRuntimeSpirvFor OpTypeCooperativeMatrixMulAddNV, the operands must match a supported VkCooperativeMatrixPropertiesNV, such that: The type of A must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::KSize, and ComponentType match VkCooperativeMatrixPropertiesNV::AType. The type of B must have Rows match VkCooperativeMatrixPropertiesNV::KSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::BType. The type of C must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::CType. The type of Result must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::DType. The scope of all cooperative matrix operands must be VkScopeNV::VK_SCOPE_SUBGROUP_NV. If ComponentType of A, B, C, or Result is a signed integral type, the Signedness operand of the OpTypeInt must be 1. If ComponentType of A, B, C, or Result is an unsigned integral type, the Signedness operand of the OpTypeInt must be 0.
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316YNoneexplicitRuntimeSpirvFor 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-06322YNoneexplicitRuntimeSpirvOpTypeCooperativeMatrixNV and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages
VUID-RuntimeSpirv-OpTypeImage-09644YNegativeShaderInterface.MissingInputAttachmentIndexArrayexplicitRuntimeSpirvAny variable declared as an OpTypeArray where the Element Type is an OpTypeImage with a "Dim" operand of SubpassData must be decorated with InputAttachmentIndex
VUID-RuntimeSpirv-OpVariable-08746YNegativeGeometryTessellation.BuiltinBlockOrderMismatchVsGs, NegativeGeometryTessellation.BuiltinBlockSizeMismatchVsGs, NegativeGeometryTessellation.BuiltinBlockSizeMismatchVsGsShaderObjectexplicitRuntimeSpirvAny 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-06314NNoneexplicitRuntimeSpirvIf 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-06315NNoneexplicitRuntimeSpirvIf 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.RenderPassShaderResolveQCOMexplicitRuntimeSpirvIf 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-SampledImageArrayNonUniformIndexing-10135NNoneexplicitRuntimeSpirvIf the SampledImageArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a sampled image or sampler, the sampled image or sampler through which that memory is accessed must be dynamically uniform within the invocation group or subgroup
VUID-RuntimeSpirv-ShaderEnqueueAMDX-09191NNoneexplicitRuntimeSpirvThe ShaderEnqueueAMDX capability must only be used in shaders with the GLCompute execution model
VUID-RuntimeSpirv-StorageBufferArrayNonUniformIndexing-10136NNoneexplicitRuntimeSpirvIf the StorageBufferArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a storage buffer, the storage buffer through which that memory is accessed must be dynamically uniform within the invocation group or subgroup
VUID-RuntimeSpirv-StorageImageArrayNonUniformIndexing-10137NNoneexplicitRuntimeSpirvIf the StorageImageArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a storage image, the storage image through which that memory is accessed must be dynamically uniform within the invocation group or subgroup
VUID-RuntimeSpirv-StorageTexelBufferArrayNonUniformIndexing-10140NNoneexplicitRuntimeSpirvIf the StorageTexelBufferArrayNonUniformIndexing capability is not is not declared, and an instruction accesses memory through a storage texel buffer, the storage texel buffer through which that memory is accessed must be dynamically uniform within the invocation group or subgroup
VUID-RuntimeSpirv-Stream-06312YNegativeTransformFeedback.RuntimeSpirvexplicitRuntimeSpirvThe stream number value to Stream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379YNegativeSubgroup.SubgroupUniformControlFlow, VkLayerTest.VuidHashStabilityexplicitRuntimeSpirvThe Execution Mode SubgroupUniformControlFlowKHR must not be applied to an entry point unless shaderSubgroupUniformControlFlow is enabled, the corresponding shader stage bit is set in subgroupSupportedStages, and the entry point does not execute any invocation repack instructions
VUID-RuntimeSpirv-TaskEXT-07117NNoneexplicitRuntimeSpirvIn task shaders using the TaskEXT Execution Model OpEmitMeshTasksEXT must be called exactly once under dynamically uniform conditions
VUID-RuntimeSpirv-TaskEXT-07291YNegativeMesh.RuntimeSpirvexplicitRuntimeSpirvIn 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.RuntimeSpirvexplicitRuntimeSpirvIn 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.RuntimeSpirvexplicitRuntimeSpirvIn 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.RuntimeSpirvexplicitRuntimeSpirvIn 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.MeshTasksWorkgroupCountexplicitRuntimeSpirvIn 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.MeshTasksWorkgroupCountexplicitRuntimeSpirvIn 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.MeshTasksWorkgroupCountexplicitRuntimeSpirvIn 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.MeshTasksWorkgroupCountexplicitRuntimeSpirvIn 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-UniformBufferArrayNonUniformIndexing-10134NNoneexplicitRuntimeSpirvIf the UniformBufferArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a uniform buffer, the uniform buffer through which that memory is accessed must be dynamically uniform within the invocation group or subgroup
VUID-RuntimeSpirv-UniformTexelBufferArrayNonUniformIndexing-10139NNoneexplicitRuntimeSpirvIf the UniformTexelBufferArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a uniform texel buffer, the uniform texel buffer through which that memory is accessed must be dynamically uniform within the invocation group or subgroup
VUID-RuntimeSpirv-Workgroup-06530YNegativeShaderCompute.SharedMemoryBooleanOverLimit, NegativeShaderCompute.SharedMemoryOverLimit, NegativeShaderCompute.SharedMemoryOverLimitWorkgroupMemoryExplicitLayout, NegativeShaderCompute.SharedMemorySpecConstantDefault, NegativeShaderCompute.SharedMemorySpecConstantSet, NegativeShaderLimits.OffsetMaxComputeSharedMemorySize, NegativeShaderObject.SharedMemoryOverLimitexplicitRuntimeSpirvThe 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.RuntimeSpirvexplicitRuntimeSpirvFor 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.RuntimeSpirvexplicitRuntimeSpirvThe XFB Stride value to XfbStride must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride
VUID-RuntimeSpirv-apiVersion-07954YNegativeShaderObject.MissingNonReadableDecorationFormatRead, NegativeShaderStorageImage.MissingNonWritableDecorationFormatWriteexplicitRuntimeSpirvIf 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.MissingNonReadableDecorationFormatReadexplicitRuntimeSpirvIf 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.UnsupportedStageFloat16, NegativeShaderCooperativeMatrix.UnsupportedStageUint32explicitRuntimeSpirvOpTypeCooperativeMatrixKHR and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesKHR::cooperativeMatrixSupportedStages
VUID-RuntimeSpirv-denormBehaviorIndependence-06289NNoneexplicitRuntimeSpirvIf 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-06290NNoneexplicitRuntimeSpirvIf 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-08761NNoneexplicitRuntimeSpirvFor OpRayQueryGetIntersectionTriangleVertexPositionsKHR instructions, Acceleration Structure must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR in flags
VUID-RuntimeSpirv-maintenance4-06817YNegativeShaderInterface.VsFsTypeMismatchVectorSize, NegativeShaderInterface.VsFsTypeMismatchVectorSizeShaderObjectexplicitRuntimeSpirvIf 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-09190NNoneexplicitRuntimeSpirvIf maintenance5 is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variable
VUID-RuntimeSpirv-maxBlockMatchRegion-09225NNoneexplicitRuntimeSpirvIf a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion
VUID-RuntimeSpirv-maxExecutionGraphShaderOutputNodes-09197NNoneexplicitRuntimeSpirvShaders must not include more than maxExecutionGraphShaderOutputNodes instances of OpInitializeNodePayloadsAMDX
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadCount-09196NNoneexplicitRuntimeSpirvShaders must not statically initialize more than maxExecutionGraphShaderPayloadCount variables in the NodeOutputPayloadAMDX storage class
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09193NNoneexplicitRuntimeSpirvVariables declared in the NodePayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09194NNoneexplicitRuntimeSpirvVariables declared in the NodeOutputPayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09195NNoneexplicitRuntimeSpirvFor 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-08756NNoneexplicitRuntimeSpirvThe 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-08757NNoneexplicitRuntimeSpirvThe 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-08755NNoneexplicitRuntimeSpirvThe 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.SharedMemorySpecConstantSetexplicitRuntimeSpirvThe 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-08760NNoneexplicitRuntimeSpirvThe 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-08758NNoneexplicitRuntimeSpirvThe 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.TaskSharedMemoryOverLimitexplicitRuntimeSpirvThe 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-meshAndTaskShaderDerivatives-10153YNegativeShaderMesh.MeshAndTaskShaderDerivativesexplicitRuntimeSpirvIf meshAndTaskShaderDerivatives is VK_FALSE, the DerivativeGroupLinearKHR and DerivativeGroupQuadsKHR execution modes must not be used in the MeshEXT, MeshNV, TaskEXT, or TaskNV Execution Model
VUID-RuntimeSpirv-minSampleShading-08731NNoneexplicitRuntimeSpirvIf 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.ShaderTileImageexplicitRuntimeSpirvIf sample shading is enabled and any of the OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operations are used, then minSampleShading must be 1.0
VUID-RuntimeSpirv-pNext-09226NNoneexplicitRuntimeSpirvIf 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-protectedNoFault-09645NNoneexplicitRuntimeSpirvIf protectedNoFault is not supported, the Storage Class of the PhysicalStorageBuffer must not be used if the buffer being accessed is protected
VUID-RuntimeSpirv-roundingModeIndependence-06291NNoneexplicitRuntimeSpirvIf 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-06292NNoneexplicitRuntimeSpirvIf 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.NonMultisampleMismatchWithPipelineexplicitRuntimeSpirvIf 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.MultisampleMismatchWithPipelineexplicitRuntimeSpirvIf 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-shaderDenormFlushToZeroFloat16-06299YNoneexplicitRuntimeSpirvIf shaderDenormFlushToZeroFloat16 is VK_FALSE, then DenormFlushToZero for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat32-06300YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvIf shaderDenormFlushToZeroFloat32 is VK_FALSE, then DenormFlushToZero for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat64-06301YNoneexplicitRuntimeSpirvIf shaderDenormFlushToZeroFloat64 is VK_FALSE, then DenormFlushToZero for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat16-06296YNoneexplicitRuntimeSpirvIf shaderDenormPreserveFloat16 is VK_FALSE, then DenormPreserve for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat32-06297YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvIf shaderDenormPreserveFloat32 is VK_FALSE, then DenormPreserve for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat64-06298YNoneexplicitRuntimeSpirvIf shaderDenormPreserveFloat64 is VK_FALSE, then DenormPreserve for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDeviceClock-06268YNegativeShaderSpirv.ReadShaderClockexplicitRuntimeSpirvIf shaderDeviceClock is not enabled, the Device scope must not be used for OpReadClockKHR
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06767NNoneexplicitRuntimeSpirvIf shaderEarlyAndLateFragmentTests is not enabled, the EarlyAndLateFragmentTestsEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06768NNoneexplicitRuntimeSpirvIf shaderEarlyAndLateFragmentTests feature is not enabled, the StencilRefUnchangedFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06769NNoneexplicitRuntimeSpirvIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefUnchangedBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06770NNoneexplicitRuntimeSpirvIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06771NNoneexplicitRuntimeSpirvIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06772NNoneexplicitRuntimeSpirvIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06773NNoneexplicitRuntimeSpirvIf shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderFloat16VectorAtomics-09581YNegativeAtomic.ImageFloat16VectorexplicitRuntimeSpirvshaderFloat16VectorAtomics, must be enabled for 16-bit floating-point, 2- and 4-component vector atomic operations to be supported
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat16-06302YNoneexplicitRuntimeSpirvIf shaderRoundingModeRTEFloat16 is VK_FALSE, then RoundingModeRTE for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat32-06303YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvIf shaderRoundingModeRTEFloat32 is VK_FALSE, then RoundingModeRTE for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat64-06304YNoneexplicitRuntimeSpirvIf shaderRoundingModeRTEFloat64 is VK_FALSE, then RoundingModeRTE for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat16-06305YNoneexplicitRuntimeSpirvIf shaderRoundingModeRTZFloat16 is VK_FALSE, then RoundingModeRTZ for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat32-06306YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvIf shaderRoundingModeRTZFloat32 is VK_FALSE, then RoundingModeRTZ for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat64-06307YNoneexplicitRuntimeSpirvIf shaderRoundingModeRTZFloat64 is VK_FALSE, then RoundingModeRTZ for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSampleRateInterpolationFunctions-06325YVkPortabilitySubsetTest.ShaderValidationexplicitRuntimeSpirvIf 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-06293YNoneexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat16 is VK_FALSE, then SignedZeroInfNanPreserve for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-09559YNoneexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat16 is VK_FALSE then any FPFastMathDefault execution mode with a type of 16-bit float must include the NSZ, NotInf, and NotNaN flags
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-09560YNoneexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat16 is VK_FALSE then any FPFastMathMode decoration on an instruction with result type or any operand type that includes a 16-bit float must include the NSZ, NotInf, and NotNaN flags
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-06294YNegativeShaderSpirv.ShaderFloatControlexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat32 is VK_FALSE, then SignedZeroInfNanPreserve for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-09561YNegativeShaderSpirv.FPFastMathDefaultexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat32 is VK_FALSE then any FPFastMathDefault execution mode with a type of 32-bit float must include the NSZ, NotInf, and NotNaN flags
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-09562YNegativeShaderSpirv.FPFastMathModeexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat32 is VK_FALSE then any FPFastMathMode decoration on an instruction with result type or any operand type that includes a 32-bit float must include the NSZ, NotInf, and NotNaN flags
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-06295YNoneexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat64 is VK_FALSE, then SignedZeroInfNanPreserve for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-09563YNoneexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat64 is VK_FALSE then any FPFastMathDefault execution mode with a type of 64-bit float must include the NSZ, NotInf, and NotNaN flags
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-09564YNoneexplicitRuntimeSpirvIf shaderSignedZeroInfNanPreserveFloat64 is VK_FALSE then any FPFastMathMode decoration on an instruction with result type or any operand type that includes a 64-bit float must include the NSZ, NotInf, and NotNaN flags
VUID-RuntimeSpirv-shaderSubgroupClock-06267YNegativeShaderObject.ReadShaderClock, NegativeShaderSpirv.ReadShaderClockexplicitRuntimeSpirvIf shaderSubgroupClock is not enabled, the Subgroup scope must not be used for OpReadClockKHR
VUID-RuntimeSpirv-shaderSubgroupRotateClustered-09566YNegativeShaderSpirv.SubgroupRotateClusteredexplicitRuntimeSpirvIf shaderSubgroupRotateClustered is VK_FALSE, then the ClusterSize operand to OpGroupNonUniformRotateKHR must not be used
VUID-RuntimeSpirv-shaderTileImageColorReadAccess-08728YNegativePipeline.ShaderTileImageDisabledexplicitRuntimeSpirvIf shaderTileImageColorReadAccess is not enabled, OpColorAttachmentReadEXT operation must not be used
VUID-RuntimeSpirv-shaderTileImageDepthReadAccess-08729YNegativePipeline.ShaderTileImageDisabledexplicitRuntimeSpirvIf shaderTileImageDepthReadAccess is not enabled, OpDepthAttachmentReadEXT operation must not be used
VUID-RuntimeSpirv-shaderTileImageStencilReadAccess-08730YNegativePipeline.ShaderTileImageDisabledexplicitRuntimeSpirvIf shaderTileImageStencilReadAccess is not enabled, OpStencilAttachmentReadEXT operation must not be used
VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372YNegativeShaderCompute.ZeroInitializeWorkgroupMemory, NegativeShaderObject.ZeroInitializeWorkgroupMemoryexplicitRuntimeSpirvIf shaderZeroInitializeWorkgroupMemory is not enabled, any OpVariable with Workgroup as its Storage Class must not have an Initializer operand
VUID-RuntimeSpirv-storageBuffer16BitAccess-06331YNegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvIf 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.Storage8and16bitFeaturesexplicitRuntimeSpirvIf 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.Storage8and16bitFeaturesexplicitRuntimeSpirvIf 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.Storage8and16bitFeaturesexplicitRuntimeSpirvIf 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.Storage8and16bitFeaturesexplicitRuntimeSpirvIf storagePushConstant8 is VK_FALSE, then objects containing an 8-bit integer element must not have Storage Class of PushConstant
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276NNoneexplicitRuntimeSpirvIf 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-06277NNoneexplicitRuntimeSpirvIf 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-subgroupSize-10141NNoneexplicitRuntimeSpirvIf subgroupSize is 1, the UniformBufferArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a uniform buffer, the uniform buffer through which that memory is accessed must be dynamically uniform within the invocation group
VUID-RuntimeSpirv-subgroupSize-10142NNoneexplicitRuntimeSpirvIf subgroupSize is 1, the SampledImageArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a sampled image or sampler, the sampled image or sampler through which that memory is accessed must be dynamically uniform within the invocation group
VUID-RuntimeSpirv-subgroupSize-10143NNoneexplicitRuntimeSpirvIf subgroupSize is 1, the StorageBufferArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a storage buffer, the storage buffer through which that memory is accessed must be dynamically uniform within the invocation group
VUID-RuntimeSpirv-subgroupSize-10144NNoneexplicitRuntimeSpirvIf subgroupSize is 1, the StorageImageArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a storage image, the storage image through which that memory is accessed must be dynamically uniform within the invocation group
VUID-RuntimeSpirv-subgroupSize-10145NNoneexplicitRuntimeSpirvIf subgroupSize is 1, the InputAttachmentArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through an input attachment, the input attachment through which that memory is accessed must be dynamically uniform within the invocation group
VUID-RuntimeSpirv-subgroupSize-10146NNoneexplicitRuntimeSpirvIf subgroupSize is 1, the UniformTexelBufferArrayNonUniformIndexing capability is not declared, and an instruction accesses memory through a uniform texel buffer, the uniform texel buffer through which that memory is accessed must be dynamically uniform within the invocation group
VUID-RuntimeSpirv-subgroupSize-10147NNoneexplicitRuntimeSpirvIf subgroupSize is 1, the StorageTexelBufferArrayNonUniformIndexing capability is not is not declared, and an instruction accesses memory through a storage texel buffer, the storage texel buffer through which that memory is accessed must be dynamically uniform within the invocation group
VUID-RuntimeSpirv-subgroupSize-10149NNoneexplicitRuntimeSpirvIf an instruction accesses memory through any resource, subgroupSize is greater than 1, and the resource through which that memory is accessed is not uniform within the invocation group, and not uniform within the subgroup, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated with NonUniform
VUID-RuntimeSpirv-tessellationShader-06326YVkPortabilitySubsetTest.ShaderValidationexplicitRuntimeSpirvIf 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.ShaderValidationexplicitRuntimeSpirvIf 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.RuntimeSpirvexplicitRuntimeSpirvIf 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.Storage8and16bitFeaturesexplicitRuntimeSpirvIf 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.SpirvStatelessMaintenance5, NegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.Storage8and16bitFeaturesexplicitRuntimeSpirvIf 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.DeviceMemoryScopeexplicitRuntimeSpirvIf vulkanMemoryModel is enabled and vulkanMemoryModelDeviceScope is not enabled, Device memory scope must not be used
VUID-RuntimeSpirv-vulkanMemoryModel-06266YNegativeShaderSpirv.QueueFamilyMemoryScopeexplicitRuntimeSpirvIf 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.LocalSizeExceedLimitsexplicitRuntimeSpirvIn 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.ComputeLocalWorkgroupSizeexplicitRuntimeSpirvIn 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.WorkGroupSizeSpecConstantexplicitRuntimeSpirvIn 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.CmdDispatchExceedLimitsexplicitRuntimeSpirvIn 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-04363NNoneexplicitSMCountNVThe variable decorated with SMCountNV must be declared using the Input Storage Class
VUID-SMCountNV-SMCountNV-04364NNoneexplicitSMCountNVThe variable decorated with SMCountNV must be declared as a scalar 32-bit integer value
VUID-SMIDNV-SMIDNV-04365NNoneexplicitSMIDNVThe variable decorated with SMIDNV must be declared using the Input Storage Class
VUID-SMIDNV-SMIDNV-04366NNoneexplicitSMIDNVThe variable decorated with SMIDNV must be declared as a scalar 32-bit integer value
VUID-SampleId-SampleId-04354YYValidateLiterals.LiteralsKernelGoodexplicitSampleIdThe SampleId decoration must be used only within the Fragment Execution Model
VUID-SampleId-SampleId-04355YYValidateLiterals.LiteralsKernelGoodexplicitSampleIdThe variable decorated with SampleId must be declared using the Input Storage Class
VUID-SampleId-SampleId-04356YYValidateLiterals.LiteralsKernelGoodexplicitSampleIdThe variable decorated with SampleId must be declared as a scalar 32-bit integer value
VUID-SampleMask-SampleMask-04357YYValidateLiterals.LiteralsKernelGoodexplicitSampleMaskThe SampleMask decoration must be used only within the Fragment Execution Model
VUID-SampleMask-SampleMask-04358YYValidateLiterals.LiteralsKernelGoodexplicitSampleMaskThe variable decorated with SampleMask must be declared using the Input or Output Storage Class
VUID-SampleMask-SampleMask-04359YYValidateLiterals.LiteralsKernelGoodexplicitSampleMaskThe variable decorated with SampleMask must be declared as an array of 32-bit integer values
VUID-SamplePosition-SamplePosition-04360YYValidateLiterals.LiteralsKernelGoodexplicitSamplePositionThe SamplePosition decoration must be used only within the Fragment Execution Model
VUID-SamplePosition-SamplePosition-04361YYValidateLiterals.LiteralsKernelGoodexplicitSamplePositionThe variable decorated with SamplePosition must be declared using the Input Storage Class
VUID-SamplePosition-SamplePosition-04362YYValidateLiterals.LiteralsKernelGoodexplicitSamplePositionThe variable decorated with SamplePosition must be declared as a two-component vector of 32-bit floating-point values
VUID-ShaderIndexAMDX-ShaderIndexAMDX-09175NNoneexplicitShaderIndexAMDXThe variable decorated with ShaderIndexAMDX must be declared using the Input Storage Class
VUID-ShaderIndexAMDX-ShaderIndexAMDX-09176NNoneexplicitShaderIndexAMDXThe variable decorated with ShaderIndexAMDX must be declared as a scalar 32-bit integer value
VUID-ShadingRateKHR-ShadingRateKHR-04490YYValidateBuiltIns.TargetIsVariableexplicitShadingRateKHRThe ShadingRateKHR decoration must be used only within the Fragment Execution Model
VUID-ShadingRateKHR-ShadingRateKHR-04491YYValidateBuiltIns.TargetIsVariableexplicitShadingRateKHRThe variable decorated with ShadingRateKHR must be declared using the Input Storage Class
VUID-ShadingRateKHR-ShadingRateKHR-04492YYValidateBuiltIns.TargetIsVariableexplicitShadingRateKHRThe 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.OpBitReverseNot32VulkanexplicitStandaloneSpirvThe 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-07650YYNoneexplicitStandaloneSpirvThe Base operand of OpPtrAccessChain must have a storage class of Workgroup, StorageBuffer, or PhysicalStorageBuffer
VUID-StandaloneSpirv-Base-07651YYValidateMemory.VulkanPtrAccessChainWorkgroupCapabilityexplicitStandaloneSpirvIf the Base operand of OpPtrAccessChain has a Workgroup Storage Class, then the VariablePointers capability must be declared
VUID-StandaloneSpirv-Base-07652YYValidateMemory.VulkanPtrAccessChainStorageBufferCapabilityexplicitStandaloneSpirvIf the Base operand of OpPtrAccessChain has a StorageBuffer Storage Class, then the VariablePointers or VariablePointersStorageBuffer capability must be declared
VUID-StandaloneSpirv-BuiltIn-04668NNoneexplicitStandaloneSpirvAny BuiltIn decoration not listed in Built-In Variables must not be used
VUID-StandaloneSpirv-CallableDataKHR-04704YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvCallableDataKHR Storage Class must only be used in ray generation, closest hit, miss, and callable shaders
VUID-StandaloneSpirv-Component-04920YYValidateDecorations.ComponentDecorationIntBad4VulkanexplicitStandaloneSpirvThe Component decoration value must not be greater than 3
VUID-StandaloneSpirv-Component-04921YYValidateDecorations.ComponentDecorationArrayBadVulkan, ValidateDecorations.ComponentDecorationBlockBadVulkan, ValidateDecorations.ComponentDecorationVector4Bad1Vulkan, ValidateDecorations.ComponentDecorationVector4Bad3VulkanexplicitStandaloneSpirvIf 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.ComponentDecoration64Vec2BadVulkanexplicitStandaloneSpirvIf 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.ComponentDecoration64Vec1BadVulkanexplicitStandaloneSpirvThe Component decorations value must not be 1 or 3 for scalar or two-component 64-bit data types
VUID-StandaloneSpirv-Component-04924YYValidateDecorations.ComponentDecorationBadTypeVulkanexplicitStandaloneSpirvThe 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.ComponentDecoration64VecWideBadVulkanexplicitStandaloneSpirvThe Component decorations must not be used for a 64-bit vector type with more than two components
VUID-StandaloneSpirv-DerivativeGroupLinearKHR-10152NNoneexplicitStandaloneSpirvFor compute, mesh, or task shaders using the DerivativeGroupLinearKHR execution mode, the product of the dimensions of the local workgroup size must be a multiple of four
VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778NNoneexplicitStandaloneSpirvFor 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-DerivativeGroupQuadsKHR-10151NNoneexplicitStandaloneSpirvFor compute, mesh, or task shaders using the DerivativeGroupQuadsKHR execution mode, the first two dimensions of the local workgroup size must be a multiple of two
VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684NNoneexplicitStandaloneSpirvFor 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.ArrayStrideUntypedPointerKHRexplicitStandaloneSpirvIf 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-07320YYNoneexplicitStandaloneSpirvIf the Execution Model is TessellationControl, and the MemoryModel is GLSL450, the Scope for memory must not be Workgroup
VUID-StandaloneSpirv-FPRoundingMode-04675YYValidateDecorations.VulkanFPRoundingModeBadModeexplicitStandaloneSpirvRounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration
VUID-StandaloneSpirv-Flat-04670YYDecorationTest.ArrayStrideUntypedPointerKHRexplicitStandaloneSpirvThe 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.VulkanNoFlatIntVectorexplicitStandaloneSpirvAny 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.VulkanNoFlatIntVectorexplicitStandaloneSpirvThe 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.VulkanNoFlatIntVectorexplicitStandaloneSpirvThe Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Input storage class in a vertex shader
VUID-StandaloneSpirv-Function-04681NNoneexplicitStandaloneSpirvA 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.NonWritableRuntimeArrayGoodexplicitStandaloneSpirvThe GLSLShared and GLSLPacked decorations must not be used
VUID-StandaloneSpirv-HitAttributeKHR-04701YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvHitAttributeKHR Storage Class must only be used in intersection, any-hit, or closest hit shaders
VUID-StandaloneSpirv-HitAttributeKHR-04702YYValidateRayTracing.InterfaceHitAttributeexplicitStandaloneSpirvThere must be at most one variable with the HitAttributeKHR Storage Class in the input interface of an entry point
VUID-StandaloneSpirv-HitAttributeKHR-04703YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvA variable with HitAttributeKHR Storage Class must only be written to in an intersection shader
VUID-StandaloneSpirv-Image-04965NNoneexplicitStandaloneSpirvThe 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.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvIncomingCallableDataKHR Storage Class must only be used in callable shaders
VUID-StandaloneSpirv-IncomingCallableDataKHR-04706YYValidateRayTracing.InterfaceIncomingCallableDataexplicitStandaloneSpirvThere must be at most one variable with the IncomingCallableDataKHR Storage Class in the input interface of an entry point
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvIncomingRayPayloadKHR Storage Class must only be used in closest hit, any-hit, or miss shaders
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700YYValidateRayTracing.InterfaceIncomingRayPayloadexplicitStandaloneSpirvThere must be at most one variable with the IncomingRayPayloadKHR Storage Class in the input interface of an entry point
VUID-StandaloneSpirv-Input-06778YYValidateDecorations.PerVertexVulkanNonArrayexplicitStandaloneSpirvVariables 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_Value1MustMatchResultTypeexplicitStandaloneSpirvVariables with a Storage Class of Input or Output and a type of OpTypeBool must be decorated with the BuiltIn decoration
VUID-StandaloneSpirv-Input-09557NNoneexplicitStandaloneSpirvThe pointers of any Input or Output Interface user-defined variables must not contain any PhysicalStorageBuffer Storage Class pointers
VUID-StandaloneSpirv-InputAttachmentArrayDynamicIndexing-10131NNoneexplicitStandaloneSpirvIf the InputAttachmentArrayDynamicIndexing capability is not declared, and an instruction accesses memory through an input attachment, the input attachmnet through which that memory is accessed must be determined by constant integral expressions
VUID-StandaloneSpirv-InputAttachmentIndex-06678YYNoneexplicitStandaloneSpirvVariables decorated with InputAttachmentIndex must be in the UniformConstant Storage Class
VUID-StandaloneSpirv-Invariant-04677YYValidateMemory.VulkanInvariantMemberWrongStorageClass, ValidateMemory.VulkanInvariantWrongStorageClassexplicitStandaloneSpirvVariables 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.GLComputeNoModeVulkanexplicitStandaloneSpirvFor 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.BuiltinVariablesWithLocationDecorationVulkanexplicitStandaloneSpirvThe Location or Component decorations must not be used with BuiltIn
VUID-StandaloneSpirv-Location-04916YYValidateDecorations.LocationDecorationVariableNonStructVulkanBadexplicitStandaloneSpirvThe Location decorations must be used on user-defined variables
VUID-StandaloneSpirv-Location-04917YYValidateDecorations.LocationDecorationVariableStructNoBlockVulkanBadexplicitStandaloneSpirvIf 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.VulkanLocationsVariableAndMemberAssignedexplicitStandaloneSpirvIf 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_BadexplicitStandaloneSpirvIf 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.ArrayStrideUntypedPointerKHRexplicitStandaloneSpirvThe 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.VulkanBasicMeshAndTaskBadexplicitStandaloneSpirvThe 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-07106NNoneexplicitStandaloneSpirvIn mesh shaders using the MeshEXT Execution Model OpSetMeshOutputsEXT must be called before any outputs are written
VUID-StandaloneSpirv-MeshEXT-07107NNoneexplicitStandaloneSpirvIn mesh shaders using the MeshEXT Execution Model all variables declared as output must not be read from
VUID-StandaloneSpirv-MeshEXT-07108NNoneexplicitStandaloneSpirvIn 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-07109NNoneexplicitStandaloneSpirvIn 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-07110NNoneexplicitStandaloneSpirvIn 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-07111NNoneexplicitStandaloneSpirvIn 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-07330NNoneexplicitStandaloneSpirvIn mesh shaders using the MeshEXT Execution Model the OutputVertices Execution Mode must be greater than 0
VUID-StandaloneSpirv-MeshEXT-07331NNoneexplicitStandaloneSpirvIn mesh shaders using the MeshEXT Execution Model the OutputPrimitivesEXT Execution Mode must be greater than 0
VUID-StandaloneSpirv-None-04633YYValidateSpvExpectAssumeKHR.ExpectKHR_Value1MustMatchResultTypeexplicitStandaloneSpirvEvery entry point must have no return value and accept no arguments
VUID-StandaloneSpirv-None-04634YYValidationStateTest.CheckVulkanDirectlyRecursiveBodyBad, ValidationStateTest.CheckVulkanIndirectlyRecursiveBodyBadexplicitStandaloneSpirvThe static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed
VUID-StandaloneSpirv-None-04635YYNoneexplicitStandaloneSpirvThe Logical or PhysicalStorageBuffer64 addressing model must be selected
VUID-StandaloneSpirv-None-04636YYValidateBarriers.OpControlBarrierShaderCallRayGenFailure, ValidateBarriers.OpControlBarrierVulkanExecutionScopeDevice, ValidateDecorations.UniformDecorationWithScopeIdV14VulkanEnvexplicitStandaloneSpirvScope for execution must be limited to Workgroup or Subgroup
VUID-StandaloneSpirv-None-04637YYexplicitStandaloneSpirvIf 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.OpControlBarrierVulkan1p1MemoryScopeCrossDeviceexplicitStandaloneSpirvScope for memory must be limited to Device, QueueFamily, Workgroup, ShaderCallKHR, Subgroup, or Invocation
VUID-StandaloneSpirv-None-04640YYValidateBarriers.OpMemoryBarrierShaderCallComputeFailureexplicitStandaloneSpirvIf 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.OpControlBarrierVulkanInvocationFailureexplicitStandaloneSpirvIf the Scope for memory is Invocation, then memory semantics must be None
VUID-StandaloneSpirv-None-04642YYValidateCFG.StructurallyUnreachableContinuePredecessorexplicitStandaloneSpirvScope for group operations must be limited to Subgroup
VUID-StandaloneSpirv-None-04643YYValidateMisc.VulkanInvalidStorageClassexplicitStandaloneSpirvStorage 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.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvIf 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.AtomicStoreVulkanWrongStorageClassexplicitStandaloneSpirvIf the Storage Class is Workgroup, then it must only be used in the task, mesh, or compute Execution Model
VUID-StandaloneSpirv-None-04667YYValidateSpvExpectAssumeKHR.ExpectKHR_Value1MustMatchResultTypeexplicitStandaloneSpirvStructure types must not contain opaque types
VUID-StandaloneSpirv-None-04686YYValidateAtomics.AtomicStoreVulkanFunctionPointerStorageTypeexplicitStandaloneSpirvThe Pointer operand of all atomic instructions must have a Storage Class limited to Uniform, Workgroup, Image, StorageBuffer, PhysicalStorageBuffer, or TaskPayloadWorkgroupEXT
VUID-StandaloneSpirv-None-04745NNoneexplicitStandaloneSpirvAll 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-07321YYexplicitStandaloneSpirvIf 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-08720NNoneexplicitStandaloneSpirvIf the Storage Class is TileImageEXT, then it must only be used in the fragment execution model
VUID-StandaloneSpirv-None-08724NNoneexplicitStandaloneSpirvThe TileImageEXT Storage Class must only be used for declaring tile image variables
VUID-StandaloneSpirv-Offset-04663YYValidateImage.SampleImplicitLodVulkanOffsetWrongSizeexplicitStandaloneSpirvImage operand Offset must only be used with OpImage*Gather instructions
VUID-StandaloneSpirv-Offset-04687NNoneexplicitStandaloneSpirvOutput 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-04689NNoneexplicitStandaloneSpirvThe 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-04690NNoneexplicitStandaloneSpirvThe 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-04691NNoneexplicitStandaloneSpirvOutput 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-04692NNoneexplicitStandaloneSpirvOutput 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-04716NNoneexplicitStandaloneSpirvOnly 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-04865NNoneexplicitStandaloneSpirvAny 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.AtomicLoadVulkanSequentiallyConsistentexplicitStandaloneSpirvOpAtomicLoad must not use Release, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpAtomicStore-04730YYValidateAtomics.AtomicStoreVulkanAcquire, ValidateAtomics.AtomicStoreVulkanAcquireRelease, ValidateAtomics.AtomicStoreVulkanSequentiallyConsistentexplicitStandaloneSpirvOpAtomicStore must not use Acquire, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpControlBarrier-04650YYValidateBarriers.OpControlBarrierVulkanSubgroupStorageClassexplicitStandaloneSpirvIf 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.OpControlBarrierWorkgroupExecutionVertex1p1explicitStandaloneSpirvIf 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.VulkanMultiplePushConstantsSingleEntryPointBadexplicitStandaloneSpirvEach 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.VulkanLocationsVariableConflictInputexplicitStandaloneSpirvEach 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.VulkanLocationsVariableConflictOutputIndex1, ValidateInterfacesTest.VulkanPatchOverlapexplicitStandaloneSpirvEach OpEntryPoint must not have more than one Output variable assigned the same Component word inside a Location slot, either explicitly or implicitly
VUID-StandaloneSpirv-OpEntryPoint-09658YYValidateDecorations.MultipleBuiltinsInputCompute, ValidateDecorations.MultipleBuiltinsInputMesh, ValidateDecorations.MultipleBuiltinsInputVertex, ValidateDecorations.MultipleBuiltinsRayTmaxKHRexplicitStandaloneSpirvFor a given OpEntryPoint, any BuiltIn decoration must not be used more than once by the Input interface.
VUID-StandaloneSpirv-OpEntryPoint-09659YYValidateDecorations.MultipleBuiltinsBlock, ValidateDecorations.MultipleBuiltinsBlockMixed, ValidateDecorations.MultipleBuiltinsOutputFragmentexplicitStandaloneSpirvFor a given OpEntryPoint, any BuiltIn decoration must not be used more than once by the Output interface.
VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685YYValidateGroupNonUniform.VulkanGroupNonUniformBallotBitCountOperationexplicitStandaloneSpirvIf OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan
VUID-StandaloneSpirv-OpImage-04777YYValidateImage.DrefGatherWrongDimVulkan, ValidateImage.SampleDrefImplicitLodWrongDimVulkanexplicitStandaloneSpirvOpImage*Dref* instructions must not consume an image whose Dim is 3D
VUID-StandaloneSpirv-OpImageGather-04664YYValidateImage.GatherComponentNotConstantVulkanexplicitStandaloneSpirvThe "Component" operand of OpImageGather, and OpImageSparseGather must be the of a constant instruction
VUID-StandaloneSpirv-OpImageQuerySizeLod-04659YYValidateImage.QuerySizeLevelsVulkanNonSampledError, ValidateImage.QuerySizeLodVulkanNonSampledErrorexplicitStandaloneSpirvOpImageQuerySizeLod, OpImageQueryLod, and OpImageQueryLevels must only consume an "Image" operand whose type has its "Sampled" operand set to 1
VUID-StandaloneSpirv-OpImageTexelPointer-04658YYValidateImage.ImageTexelPointerRgba16fVulkan, ValidateImage.ImageTexelPointerRgba32iVulkanexplicitStandaloneSpirvIf 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.OpMemoryBarrierVulkanMemorySemanticsNoneexplicitStandaloneSpirvOpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpMemoryBarrier-04733YYValidateBarriers.OpMemoryBarrierVulkanMemorySemanticsAcquire, ValidateBarriers.OpMemoryBarrierVulkanSubgroupStorageClassexplicitStandaloneSpirvOpMemoryBarrier must include at least one Storage Class
VUID-StandaloneSpirv-OpReadClockKHR-04652YYValidateMisc.VulkanShaderClockWorkgroupScopeexplicitStandaloneSpirvScope for OpReadClockKHR must be limited to Subgroup or Device
VUID-StandaloneSpirv-OpTypeForwardPointer-04711YYValidateData.VulkanTypeForwardStorageClassexplicitStandaloneSpirvOpTypeForwardPointer must have a Storage Class of PhysicalStorageBuffer
VUID-StandaloneSpirv-OpTypeImage-04656YYValidateImage.TypeImageF64SampledTypeVulkan, ValidateImage.TypeImageF64SampledTypeWithInt64Vulkan, ValidateImage.TypeImageVoidSampledTypeVulkanexplicitStandaloneSpirvOpTypeImage 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_InvalidexplicitStandaloneSpirvOpTypeImage must have a "Sampled" operand of 1 (sampled image) or 2 (storage image)
VUID-StandaloneSpirv-OpTypeImage-06214YYValidateImage.TypeImageWrongArrayForSubpassDataVulkan, ValidateImage.TypeImageWrongSampledForSubpassDataVulkanexplicitStandaloneSpirvAn 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-06924NNoneexplicitStandaloneSpirvObjects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, and arrays of these types must not be stored to or modified
VUID-StandaloneSpirv-OpTypeImage-09638YYNoneexplicitStandaloneSpirvAn OpTypeImage must not have a "Dim" operand of Rect
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.VulkanRTAOutsideOfStructBadexplicitStandaloneSpirvOpTypeRuntimeArray 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-06671YYNoneexplicitStandaloneSpirvOpTypeSampledImage must have a OpTypeImage with a "Sampled" operand of 1 (sampled image)
VUID-StandaloneSpirv-OpVariable-04651YYValidateMemory.VulkanInitializerWithDisallowedStorageClassesBadexplicitStandaloneSpirvAny OpVariable with an Initializer operand must have Output, Private, Function, or Workgroup as its Storage Class operand
VUID-StandaloneSpirv-OpVariable-04734YYValidateMemory.VulkanInitializerWithWorkgroupStorageClassBadexplicitStandaloneSpirvAny OpVariable with an Initializer operand and Workgroup as its Storage Class operand must use OpConstantNull as the initializer
VUID-StandaloneSpirv-OpVariable-06673YYexplicitStandaloneSpirvThere must not be more than one OpVariable in the PushConstant Storage Class listed in the Interface for each OpEntryPoint
VUID-StandaloneSpirv-OriginLowerLeft-04653YYValidateMode.FragmentOriginLowerLeftVulkanexplicitStandaloneSpirvThe OriginLowerLeft Execution Mode must not be used; fragment entry points must declare OriginUpperLeft
VUID-StandaloneSpirv-PerVertexKHR-06777YYValidateDecorations.PerVertexVulkanNonFragment, ValidateDecorations.PerVertexVulkanOutputexplicitStandaloneSpirvThe 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.PSBStoreAlignedMissingexplicitStandaloneSpirvIf 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-04709NNoneexplicitStandaloneSpirvIf 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.ConvertUToPtrVulkanWrongWidthexplicitStandaloneSpirvIf the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64
VUID-StandaloneSpirv-PixelCenterInteger-04654YYValidateMode.FragmentPixelCenterIntegerVulkanexplicitStandaloneSpirvThe PixelCenterInteger Execution Mode must not be used (pixels are always centered at half-integer coordinates)
VUID-StandaloneSpirv-Pointer-08973YYNoneexplicitStandaloneSpirvThe 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.VulkanStorageBufferRuntimeArrayMissingBlockexplicitStandaloneSpirvAny variable in the PushConstant or StorageBuffer storage class must be decorated as Block
VUID-StandaloneSpirv-PushConstant-06808YYValidateMemory.VulkanPushConstantArrayOfStructBad, ValidateMemory.VulkanPushConstantNotStructBadexplicitStandaloneSpirvAny variable in the PushConstant Storage Class must be typed as OpTypeStruct
VUID-StandaloneSpirv-RayPayloadKHR-04698YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvRayPayloadKHR Storage Class must only be used in ray generation, closest hit or miss shaders
VUID-StandaloneSpirv-Result-04780YYValidateImage.ReadWrongNumComponentsResultType_VulkanexplicitStandaloneSpirvThe Result Type operand of any OpImageRead or OpImageSparseRead instruction must be a vector of four components
VUID-StandaloneSpirv-SampledImageArrayDynamicIndexing-10128NNoneexplicitStandaloneSpirvIf the SampledImageArrayDynamicIndexing capability is not declared, and an instruction accesses memory through a sampled image or sampler, the sampled image or sampler through which that memory is accessed must be determined by constant integral expressions
VUID-StandaloneSpirv-ShaderRecordBufferKHR-07119YYValidateStorage.RelaxedLogicalPointerFunctionParamBadexplicitStandaloneSpirvShaderRecordBufferKHR Storage Class must only be used in ray generation, intersection, any-hit, closest hit, callable, or miss shaders
VUID-StandaloneSpirv-StorageBufferArrayDynamicIndexing-10129NNoneexplicitStandaloneSpirvIf the StorageBufferArrayDynamicIndexing capability is not declared, and an instruction accesses memory through a storage buffer, the storage buffer through which that memory is accessed must be determined by constant integral expressions
VUID-StandaloneSpirv-StorageImageArrayDynamicIndexing-10130NNoneexplicitStandaloneSpirvIf the StorageImageArrayDynamicIndexing capability is not declared, and an instruction accesses memory through a storage image, the storage image through which that memory is accessed must be determined by constant integral expressions
VUID-StandaloneSpirv-StorageTexelBufferArrayDynamicIndexing-10133NNoneexplicitStandaloneSpirvIf the StorageTexelBufferArrayDynamicIndexing capability is declared, and an instruction accesses memory through a storage texel buffer, the storage texel buffer through which that memory is accessed must be determined by constant integral expressions
VUID-StandaloneSpirv-Stream-04694NNoneexplicitStandaloneSpirvIf 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.OpMemoryBarrierVulkanMemoryScopeSubgroupexplicitStandaloneSpirvIf none of the SubgroupVoteKHR, GroupNonUniform, or SubgroupBallotKHR capabilities are declared, Scope for memory must not be Subgroup
VUID-StandaloneSpirv-SubpassData-04660NNoneexplicitStandaloneSpirvThe (u,v) coordinates used for a SubpassData must be the of a constant vector (0,0).
VUID-StandaloneSpirv-TileImageEXT-08723NNoneexplicitStandaloneSpirvThe 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.VulkanUniformRuntimeArrayMissingBlockexplicitStandaloneSpirvAny 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.VulkanUniformOnRuntimeArrayOfArrayBadexplicitStandaloneSpirvAny 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.StoreToUniformBlockVulkanRuntimeArrayexplicitStandaloneSpirvAny variable in the Uniform Storage Class decorated as Block must not be stored to or modified
VUID-StandaloneSpirv-UniformBufferArrayDynamicIndexing-10127NNoneexplicitStandaloneSpirvIf the UniformBufferArrayDynamicIndexing capability is not declared, and an instruction accesses memory through a uniform buffer, the uniform buffer through which that memory is accessed must be determined by constant integral expressions
VUID-StandaloneSpirv-UniformConstant-04655YYValidateMemory.VulkanUniformConstantOnNonOpaqueResourceArrayBad, ValidateMemory.VulkanUniformConstantOnNonOpaqueResourceBadexplicitStandaloneSpirvAny 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.VulkanUniformMissingDescriptorSetBadexplicitStandaloneSpirvAny variable in the UniformConstant, StorageBuffer, or Uniform Storage Class must be decorated with DescriptorSet and Binding
VUID-StandaloneSpirv-UniformTexelBufferArrayDynamicIndexing-10132NNoneexplicitStandaloneSpirvIf the UniformTexelBufferArrayDynamicIndexing capability is declared, and an instruction accesses memory through a uniform texel buffer, the uniform texel buffer through which that memory is accessed must be determined by constant integral expressions
VUID-StandaloneSpirv-ViewportMaskNV-04674NNoneexplicitStandaloneSpirvThe 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-04672NNoneexplicitStandaloneSpirvThe ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages
VUID-StandaloneSpirv-ViewportRelativeNV-04673NNoneexplicitStandaloneSpirvThe 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-04678NNoneexplicitStandaloneSpirv 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-04679NNoneexplicitStandaloneSpirvIf 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-04693NNoneexplicitStandaloneSpirvAll 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-04696NNoneexplicitStandaloneSpirvFor 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-04697NNoneexplicitStandaloneSpirvAll 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.InvalidBuiltinsForMeshShaderexplicitSubgroupEqMaskThe variable decorated with SubgroupEqMask must be declared using the Input Storage Class
VUID-SubgroupEqMask-SubgroupEqMask-04371YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupEqMaskThe variable decorated with SubgroupEqMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupGeMask-SubgroupGeMask-04372YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupGeMaskThe variable decorated with SubgroupGeMask must be declared using the Input Storage Class
VUID-SubgroupGeMask-SubgroupGeMask-04373YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupGeMaskThe variable decorated with SubgroupGeMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupGtMask-SubgroupGtMask-04374YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupGtMaskThe variable decorated with SubgroupGtMask must be declared using the Input Storage Class
VUID-SubgroupGtMask-SubgroupGtMask-04375YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupGtMaskThe variable decorated with SubgroupGtMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupId-SubgroupId-04367YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitSubgroupIdThe SubgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-SubgroupId-SubgroupId-04368YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitSubgroupIdThe variable decorated with SubgroupId must be declared using the Input Storage Class
VUID-SubgroupId-SubgroupId-04369YYValidateBuiltIns.SubgroupSizeMemberDecorateexplicitSubgroupIdThe variable decorated with SubgroupId must be declared as a scalar 32-bit integer value
VUID-SubgroupLeMask-SubgroupLeMask-04376YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupLeMaskThe variable decorated with SubgroupLeMask must be declared using the Input Storage Class
VUID-SubgroupLeMask-SubgroupLeMask-04377YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupLeMaskThe variable decorated with SubgroupLeMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04380YYValidateBuiltIns.SubgroupMaskMemberDecorateexplicitSubgroupLocalInvocationIdThe variable decorated with SubgroupLocalInvocationId must be declared using the Input Storage Class
VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04381YYValidateBuiltIns.SubgroupMaskMemberDecorateexplicitSubgroupLocalInvocationIdThe variable decorated with SubgroupLocalInvocationId must be declared as a scalar 32-bit integer value
VUID-SubgroupLtMask-SubgroupLtMask-04378YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupLtMaskThe variable decorated with SubgroupLtMask must be declared using the Input Storage Class
VUID-SubgroupLtMask-SubgroupLtMask-04379YYValidateBuiltIns.InvalidBuiltinsForMeshShaderexplicitSubgroupLtMaskThe variable decorated with SubgroupLtMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupSize-SubgroupSize-04382YYValidateBuiltIns.SubgroupMaskMemberDecorateexplicitSubgroupSizeThe variable decorated with SubgroupSize must be declared using the Input Storage Class
VUID-SubgroupSize-SubgroupSize-04383YYValidateBuiltIns.SubgroupMaskMemberDecorateexplicitSubgroupSizeThe variable decorated with SubgroupSize must be declared as a scalar 32-bit integer value
VUID-TaskCountNV-TaskCountNV-04384NNoneexplicitTaskCountNVThe TaskCountNV decoration must be used only within the TaskNV Execution Model
VUID-TaskCountNV-TaskCountNV-04385NNoneexplicitTaskCountNVThe variable decorated with TaskCountNV must be declared using the Output Storage Class
VUID-TaskCountNV-TaskCountNV-04386NNoneexplicitTaskCountNVThe variable decorated with TaskCountNV must be declared as a scalar 32-bit integer value
VUID-TessCoord-TessCoord-04387YYValidateLiterals.LiteralsKernelGoodexplicitTessCoordThe TessCoord decoration must be used only within the TessellationEvaluation Execution Model
VUID-TessCoord-TessCoord-04388YYValidateLiterals.LiteralsKernelGoodexplicitTessCoordThe variable decorated with TessCoord must be declared using the Input Storage Class
VUID-TessCoord-TessCoord-04389YYValidateLiterals.LiteralsKernelGoodexplicitTessCoordThe variable decorated with TessCoord must be declared as a three-component vector of 32-bit floating-point values
VUID-TessLevelInner-TessLevelInner-04394YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelInnerThe TessLevelInner decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model
VUID-TessLevelInner-TessLevelInner-04395YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelInnerThe variable decorated with TessLevelInner within the TessellationControl Execution Model must be declared using the Output Storage Class
VUID-TessLevelInner-TessLevelInner-04396YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelInnerThe variable decorated with TessLevelInner within the TessellationEvaluation Execution Model must be declared using the Input Storage Class
VUID-TessLevelInner-TessLevelInner-04397YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelInnerThe variable decorated with TessLevelInner must be declared as an array of size two, containing 32-bit floating-point values
VUID-TessLevelOuter-TessLevelOuter-04390YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelOuterThe TessLevelOuter decoration must be used only within the TessellationControl or TessellationEvaluation Execution Model
VUID-TessLevelOuter-TessLevelOuter-04391YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelOuterThe variable decorated with TessLevelOuter within the TessellationControl Execution Model must be declared using the Output Storage Class
VUID-TessLevelOuter-TessLevelOuter-04392YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelOuterThe variable decorated with TessLevelOuter within the TessellationEvaluation Execution Model must be declared using the Input Storage Class
VUID-TessLevelOuter-TessLevelOuter-04393YYValidateLiterals.LiteralsKernelGoodexplicitTessLevelOuterThe variable decorated with TessLevelOuter must be declared as an array of size four, containing 32-bit floating-point values
VUID-VertexCountHUAWEI-VertexCountHUAWEI-07809NNoneexplicitVertexCountHUAWEIThe VertexCountHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-VertexCountHUAWEI-VertexCountHUAWEI-07810NNoneexplicitVertexCountHUAWEIThe variable decorated with VertexCountHUAWEI must be declared as a scalar 32-bit integer value
VUID-VertexIndex-VertexIndex-04398YYValidateLiterals.LiteralsKernelGoodexplicitVertexIndexThe VertexIndex decoration must be used only within the Vertex Execution Model
VUID-VertexIndex-VertexIndex-04399YYValidateLiterals.LiteralsKernelGoodexplicitVertexIndexThe variable decorated with VertexIndex must be declared using the Input Storage Class
VUID-VertexIndex-VertexIndex-04400YYValidateLiterals.LiteralsKernelGoodexplicitVertexIndexThe variable decorated with VertexIndex must be declared as a scalar 32-bit integer value
VUID-VertexOffsetHUAWEI-VertexOffsetHUAWEI-07811NNoneexplicitVertexOffsetHUAWEIThe VertexOffsetHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model
VUID-VertexOffsetHUAWEI-VertexOffsetHUAWEI-07812NNoneexplicitVertexOffsetHUAWEIThe variable decorated with VertexOffsetHUAWEI must be declared as a scalar 32-bit integer value
VUID-ViewIndex-ViewIndex-04401YYValidateLiterals.LiteralsKernelGoodexplicitViewIndexThe ViewIndex decoration must be used only within the MeshEXT, Vertex, Geometry, TessellationControl, TessellationEvaluation or Fragment Execution Model
VUID-ViewIndex-ViewIndex-04402YYValidateLiterals.LiteralsKernelGoodexplicitViewIndexThe variable decorated with ViewIndex must be declared using the Input Storage Class
VUID-ViewIndex-ViewIndex-04403YYValidateLiterals.LiteralsKernelGoodexplicitViewIndexThe variable decorated with ViewIndex must be declared as a scalar 32-bit integer value
VUID-ViewportIndex-ViewportIndex-04404YYValidateLiterals.LiteralsKernelGoodexplicitViewportIndexThe ViewportIndex decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment Execution Model
VUID-ViewportIndex-ViewportIndex-04405YYValidateLiterals.LiteralsKernelGoodexplicitViewportIndexIf 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.LiteralsKernelGoodexplicitViewportIndexThe 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.LiteralsKernelGoodexplicitViewportIndexThe variable decorated with ViewportIndex within the Fragment Execution Model must be declared using the Input Storage Class
VUID-ViewportIndex-ViewportIndex-04408YYValidateLiterals.LiteralsKernelGoodexplicitViewportIndexThe variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value
VUID-ViewportIndex-ViewportIndex-07060NNoneexplicitViewportIndexThe variable decorated with ViewportIndex within the MeshEXT Execution Model must also be decorated with the PerPrimitiveEXT decoration
VUID-ViewportMaskNV-ViewportMaskNV-04409NNoneexplicitViewportMaskNVThe ViewportMaskNV decoration must be used only within the Vertex, MeshNV, TessellationEvaluation, or Geometry Execution Model
VUID-ViewportMaskNV-ViewportMaskNV-04410NNoneexplicitViewportMaskNVThe variable decorated with ViewportMaskNV must be declared using the Output Storage Class
VUID-ViewportMaskNV-ViewportMaskNV-04411NNoneexplicitViewportMaskNVThe variable decorated with ViewportMaskNV must be declared as an array of 32-bit integer values
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04412NNoneexplicitViewportMaskPerViewNVThe ViewportMaskPerViewNV decoration must be used only within the Vertex, MeshNV, TessellationControl, TessellationEvaluation, or Geometry Execution Model
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04413NNoneexplicitViewportMaskPerViewNVThe variable decorated with ViewportMaskPerViewNV must be declared using the Output Storage Class
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04414NNoneexplicitViewportMaskPerViewNVThe variable decorated with ViewportMaskPerViewNV must be declared as an array of 32-bit integer values
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04415NNoneexplicitViewportMaskPerViewNVThe array decorated with ViewportMaskPerViewNV must be a size less than or equal to 32
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04416NNoneexplicitViewportMaskPerViewNVThe array decorated with ViewportMaskPerViewNV must be a size greater than the maximum view in the subpass's view mask
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04417NNoneexplicitViewportMaskPerViewNVThe array variable decorated with ViewportMaskPerViewNV must only be indexed by a constant or specialization constant
VUID-VkAabbPositionsKHR-minX-03546NNoneexplicitVkAabbPositionsKHRminX must be less than or equal to maxX
VUID-VkAabbPositionsKHR-minY-03547NNoneexplicitVkAabbPositionsKHRminY must be less than or equal to maxY
VUID-VkAabbPositionsKHR-minZ-03548NNoneexplicitVkAabbPositionsKHRminZ must be less than or equal to maxZ
VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparentYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHRBoth 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-04927NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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-03796YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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-04928NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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-04929NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV is set in flags, type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-07334NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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.CmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHRflags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788YNegativeRayTracing.BuildNullGeometries, NegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHRIf geometryCount is not 0, exactly one of pGeometries or ppGeometries must be a valid pointer, the other must be NULL
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameterYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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-pNextYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHRpNext must be NULL
VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameterYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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.CmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03654YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHRtype must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03789YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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-03790YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, geometryCount must be 1
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03791YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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-03792YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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-03793YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHRIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then geometryCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxGeometryCount
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHRIf 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.CmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHRtype must be a valid VkAccelerationStructureTypeKHR value
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRFor 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-03657NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRFor 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-03659NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRFor geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRFor geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16
VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658NNoneexplicitVkAccelerationStructureBuildRangeInfoKHRFor geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16
VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureBuildSizesInfoKHRpNext must be NULL
VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sTypeYNoneimplicitVkAccelerationStructureBuildSizesInfoKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08091YNegativeDescriptorBuffer.NotEnabledGetAccelerationStructureOpaqueCaptureDescriptorDataEXTexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTIf 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-08093YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTIf accelerationStructure is not VK_NULL_HANDLE then accelerationStructureNV must be VK_NULL_HANDLE
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-parameterYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTIf accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08092YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTIf 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-08094YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTIf accelerationStructureNV is not VK_NULL_HANDLE then accelerationStructure must be VK_NULL_HANDLE
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-parameterYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTIf accelerationStructureNV is not VK_NULL_HANDLE, accelerationStructureNV must be a valid VkAccelerationStructureNV handle
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-commonparentYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTBoth 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-pNextYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTpNext must be NULL
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXTsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkAccelerationStructureCreateInfoKHR-buffer-03614YNegativeRayTracing.CreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHRbuffer must have been created with a usage value containing VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
VUID-VkAccelerationStructureCreateInfoKHR-buffer-03615YNoneexplicitVkAccelerationStructureCreateInfoKHRbuffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameterYNoneimplicitVkAccelerationStructureCreateInfoKHRbuffer must be a valid VkBuffer handle
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613YNegativeRayTracing.CreateAccelerationStructureKHRReplayFeatureexplicitVkAccelerationStructureCreateInfoKHRIf createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureCaptureReplay must be VK_TRUE
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04954NNoneexplicitVkAccelerationStructureCreateInfoKHRIf 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-04955NNoneexplicitVkAccelerationStructureCreateInfoKHRIf any geometry includes VkAccelerationStructureGeometryMotionTrianglesDataNV then createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108YNegativeDescriptorBuffer.NotEnabledDescriptorBufferCaptureReplayASexplicitVkAccelerationStructureCreateInfoKHRIf createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameterYNegativeRayTracing.CreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHRcreateFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612YNegativeRayTracing.CreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHRIf deviceAddress is not zero, createFlags must include VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-09488NNoneexplicitVkAccelerationStructureCreateInfoKHRIf deviceAddress is not zero, it must have been retrieved from an identically created acceleration structure, except for buffer and deviceAddress
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-09489NNoneexplicitVkAccelerationStructureCreateInfoKHRIf 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-09490NNoneexplicitVkAccelerationStructureCreateInfoKHRIf 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.CreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHRThe sum of offset and size must be less than the size of buffer
VUID-VkAccelerationStructureCreateInfoKHR-offset-03734YNoneexplicitVkAccelerationStructureCreateInfoKHRoffset must be a multiple of 256 bytes
VUID-VkAccelerationStructureCreateInfoKHR-pNext-08109YNegativeDescriptorBuffer.NotEnabledDescriptorBufferCaptureReplayASexplicitVkAccelerationStructureCreateInfoKHRIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureCreateInfoKHREach 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.CreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
VUID-VkAccelerationStructureCreateInfoKHR-sType-uniqueYNoneimplicitVkAccelerationStructureCreateInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureCreateInfoKHR-type-parameterYNegativeRayTracing.CreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHRtype must be a valid VkAccelerationStructureTypeKHR value
VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureCreateInfoNVIf compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0
VUID-VkAccelerationStructureCreateInfoNV-info-parameterNNoneimplicitVkAccelerationStructureCreateInfoNVinfo must be a valid VkAccelerationStructureInfoNV structure
VUID-VkAccelerationStructureCreateInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureCreateInfoNVpNext must be NULL or a pointer to a valid instance of VkOpaqueCaptureDescriptorDataCreateInfoEXT
VUID-VkAccelerationStructureCreateInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureCreateInfoNVsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
VUID-VkAccelerationStructureCreateInfoNV-sType-uniqueYNoneimplicitVkAccelerationStructureCreateInfoNVThe sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameterYNoneimplicitVkAccelerationStructureDeviceAddressInfoKHRaccelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureDeviceAddressInfoKHRpNext must be NULL
VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sTypeYNoneimplicitVkAccelerationStructureDeviceAddressInfoKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryAabbsDataKHRpNext must be NULL
VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryAabbsDataKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03545YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryAabbsDataKHRstride must be a multiple of 8
VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03820YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryAabbsDataKHRstride must be less than or equal to 232-1
VUID-VkAccelerationStructureGeometryInstancesDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryInstancesDataKHRpNext must be NULL
VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryInstancesDataKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
VUID-VkAccelerationStructureGeometryKHR-aabbs-parameterYNoneimplicitVkAccelerationStructureGeometryKHRIf geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure
VUID-VkAccelerationStructureGeometryKHR-flags-parameterYNoneimplicitVkAccelerationStructureGeometryKHRflags must be a valid combination of VkGeometryFlagBitsKHR values
VUID-VkAccelerationStructureGeometryKHR-geometryType-parameterYNoneimplicitVkAccelerationStructureGeometryKHRgeometryType must be a valid VkGeometryTypeKHR value
VUID-VkAccelerationStructureGeometryKHR-instances-parameterYNoneimplicitVkAccelerationStructureGeometryKHRIf geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure
VUID-VkAccelerationStructureGeometryKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryKHRpNext must be NULL
VUID-VkAccelerationStructureGeometryKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
VUID-VkAccelerationStructureGeometryKHR-triangles-parameterYNoneimplicitVkAccelerationStructureGeometryKHRIf geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure
VUID-VkAccelerationStructureGeometryMotionTrianglesDataNV-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryMotionTrianglesDataNVsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryTrianglesDataKHRindexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameterYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRindexType must be a valid VkIndexType value
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHREach 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-sTypeYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-uniqueYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesFormat, NegativeRayTracing.TrianglesFormatMissingFeatureexplicitVkAccelerationStructureGeometryTrianglesDataKHRThe format features of vertexFormat must contain VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameterYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHRvertexFormat must be a valid VkFormat value
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735YNegativeRayTracing.TrianglesMisalignedVertexStrideexplicitVkAccelerationStructureGeometryTrianglesDataKHRvertexStride must be a multiple of the size in bytes of the smallest component of vertexFormat
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819YNegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryTrianglesDataKHRvertexStride must be less than or equal to 232-1
VUID-VkAccelerationStructureInfoNV-flags-02592YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVIf 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-parameterYNoneimplicitVkAccelerationStructureInfoNVflags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values
VUID-VkAccelerationStructureInfoNV-geometryCount-02422YNoneexplicitVkAccelerationStructureInfoNVgeometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
VUID-VkAccelerationStructureInfoNV-instanceCount-02423YNoneexplicitVkAccelerationStructureInfoNVinstanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount
VUID-VkAccelerationStructureInfoNV-instanceData-02782YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitVkAccelerationStructureInfoNVIf instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424YNoneexplicitVkAccelerationStructureInfoNVThe total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount
VUID-VkAccelerationStructureInfoNV-pGeometries-parameterYNoneimplicitVkAccelerationStructureInfoNVIf geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures
VUID-VkAccelerationStructureInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureInfoNVpNext must be NULL
VUID-VkAccelerationStructureInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureInfoNVsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
VUID-VkAccelerationStructureInfoNV-scratch-02781YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitVkAccelerationStructureInfoNVscratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-VkAccelerationStructureInfoNV-type-02425YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVIf type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0
VUID-VkAccelerationStructureInfoNV-type-02426YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVIf type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0
VUID-VkAccelerationStructureInfoNV-type-02786YNegativeRayTracingNV.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVIf 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.ValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNVtype must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureInfoNV-type-parameterNNoneimplicitVkAccelerationStructureInfoNVtype must be a valid VkAccelerationStructureTypeNV value
VUID-VkAccelerationStructureInstanceKHR-flags-parameterNNoneimplicitVkAccelerationStructureInstanceKHRflags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameterNNoneimplicitVkAccelerationStructureMatrixMotionInstanceNVflags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameterYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNVaccelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNVpNext must be NULL
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNVsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameterYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNVtype must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value
VUID-VkAccelerationStructureMotionInfoNV-flags-zerobitmaskYNoneimplicitVkAccelerationStructureMotionInfoNVflags must be 0
VUID-VkAccelerationStructureMotionInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureMotionInfoNVsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
VUID-VkAccelerationStructureMotionInstanceNV-flags-zerobitmaskNNoneimplicitVkAccelerationStructureMotionInstanceNVflags must be 0
VUID-VkAccelerationStructureMotionInstanceNV-matrixMotionInstance-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNVIf 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-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNVIf 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-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNVIf type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV, the staticInstance member of data must be a valid VkAccelerationStructureInstanceKHR structure
VUID-VkAccelerationStructureMotionInstanceNV-type-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNVtype must be a valid VkAccelerationStructureMotionInstanceTypeNV value
VUID-VkAccelerationStructureSRTMotionInstanceNV-flags-parameterNNoneimplicitVkAccelerationStructureSRTMotionInstanceNVflags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementBiasAndScaleFormat-09501NNoneexplicitVkAccelerationStructureTrianglesDisplacementMicromapNVdisplacementBiasAndScaleFormat must not be VK_FORMAT_UNDEFINED
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementBiasAndScaleFormat-parameterYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVdisplacementBiasAndScaleFormat must be a valid VkFormat value
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementVectorFormat-09502NNoneexplicitVkAccelerationStructureTrianglesDisplacementMicromapNVdisplacementVectorFormat must not be VK_FORMAT_UNDEFINED
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-displacementVectorFormat-parameterYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVdisplacementVectorFormat must be a valid VkFormat value
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-indexType-parameterYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVindexType must be a valid VkIndexType value
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-micromap-parameterNNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVIf micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-07992NNoneexplicitVkAccelerationStructureTrianglesDisplacementMicromapNVOnly one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-pUsageCounts-parameterYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVIf 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-parameterYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVIf 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-sTypeYNoneimplicitVkAccelerationStructureTrianglesDisplacementMicromapNVsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-parameterYNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTindexType must be a valid VkIndexType value
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameterNNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTIf micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-07335NNoneexplicitVkAccelerationStructureTrianglesOpacityMicromapEXTOnly one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-parameterYNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTIf 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-parameterYNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTIf 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-sTypeYNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXTsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
VUID-VkAccelerationStructureVersionInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureVersionInfoKHRpNext must be NULL
VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameterYNegativeRayTracing.AccelerationStructureVersionInfoKHRimplicitVkAccelerationStructureVersionInfoKHRpVersionData must be a valid pointer to an array of \(2 \times \mathtt{VK\_UUID\_SIZE}\) uint8_t values
VUID-VkAccelerationStructureVersionInfoKHR-sType-sTypeYNegativeRayTracing.AccelerationStructureVersionInfoKHRimplicitVkAccelerationStructureVersionInfoKHRsType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
VUID-VkAcquireNextImageInfoKHR-commonparentYNoneimplicitVkAcquireNextImageInfoKHREach 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.DeviceMaskexplicitVkAcquireNextImageInfoKHRdeviceMask must be a valid device mask
VUID-VkAcquireNextImageInfoKHR-deviceMask-01291YNegativeWsi.DeviceMaskexplicitVkAcquireNextImageInfoKHRdeviceMask must not be zero
VUID-VkAcquireNextImageInfoKHR-fence-01289YNegativeWsi.SwapchainAcquireImageSignaledFence2KHRexplicitVkAcquireNextImageInfoKHRIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-VkAcquireNextImageInfoKHR-fence-10067YNoneexplicitVkAcquireNextImageInfoKHRIf 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-VkAcquireNextImageInfoKHR-fence-parameterYNoneimplicitVkAcquireNextImageInfoKHRIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-VkAcquireNextImageInfoKHR-pNext-pNextYNoneimplicitVkAcquireNextImageInfoKHRpNext must be NULL
VUID-VkAcquireNextImageInfoKHR-sType-sTypeYNoneimplicitVkAcquireNextImageInfoKHRsType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
VUID-VkAcquireNextImageInfoKHR-semaphore-01288YNegativeWsi.SwapchainAcquireImageWithSignaledSemaphoreexplicitVkAcquireNextImageInfoKHRIf semaphore is not VK_NULL_HANDLE, it must be unsignaled
VUID-VkAcquireNextImageInfoKHR-semaphore-01781YNegativeWsi.SwapchainAcquireImageWithPendingSemaphoreWaitexplicitVkAcquireNextImageInfoKHRIf semaphore is not VK_NULL_HANDLE, it must not have any uncompleted signal or wait operations pending
VUID-VkAcquireNextImageInfoKHR-semaphore-01782YNegativeWsi.SwapchainAcquireImageNoSync2KHRexplicitVkAcquireNextImageInfoKHRsemaphore and fence must not both be equal to VK_NULL_HANDLE
VUID-VkAcquireNextImageInfoKHR-semaphore-03266YNegativeWsi.SwapchainAcquireImageNoBinarySemaphore2KHRexplicitVkAcquireNextImageInfoKHRsemaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkAcquireNextImageInfoKHR-semaphore-parameterYNoneimplicitVkAcquireNextImageInfoKHRIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-VkAcquireNextImageInfoKHR-swapchain-01675YNegativeWsi.SwapchainAcquireImageRetiredexplicitVkAcquireNextImageInfoKHRswapchain must not be in the retired state
VUID-VkAcquireNextImageInfoKHR-swapchain-parameterYNoneimplicitVkAcquireNextImageInfoKHRswapchain must be a valid VkSwapchainKHR handle
VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmaskYNoneimplicitVkAcquireProfilingLockInfoKHRflags must be 0
VUID-VkAcquireProfilingLockInfoKHR-pNext-pNextYNoneimplicitVkAcquireProfilingLockInfoKHRpNext must be NULL
VUID-VkAcquireProfilingLockInfoKHR-sType-sTypeYNoneimplicitVkAcquireProfilingLockInfoKHRsType must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
VUID-VkAllocationCallbacks-pfnAllocation-00632YVkLayerTest.InvalidAllocationCallbacksexplicitVkAllocationCallbackspfnAllocation must be a valid pointer to a valid application-defined PFN_vkAllocationFunction
VUID-VkAllocationCallbacks-pfnFree-00634YVkLayerTest.InvalidAllocationCallbacksexplicitVkAllocationCallbackspfnFree must be a valid pointer to a valid application-defined PFN_vkFreeFunction
VUID-VkAllocationCallbacks-pfnInternalAllocation-00635YVkLayerTest.InvalidAllocationCallbacksexplicitVkAllocationCallbacksIf either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks
VUID-VkAllocationCallbacks-pfnReallocation-00633YVkLayerTest.InvalidAllocationCallbacksexplicitVkAllocationCallbackspfnReallocation must be a valid pointer to a valid application-defined PFN_vkReallocationFunction
VUID-VkAmigoProfilingSubmitInfoSEC-sType-sTypeYNoneimplicitVkAmigoProfilingSubmitInfoSECsType must be VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
VUID-VkAndroidHardwareBufferFormatProperties2ANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatProperties2ANDROIDsType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID
VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatPropertiesANDROIDsType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferFormatResolvePropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatResolvePropertiesANDROIDsType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNextYNoneimplicitVkAndroidHardwareBufferPropertiesANDROIDEach 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-sTypeYNoneimplicitVkAndroidHardwareBufferPropertiesANDROIDsType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-uniqueYNoneimplicitVkAndroidHardwareBufferPropertiesANDROIDThe sType value of each struct in the pNext chain must be unique
VUID-VkAndroidHardwareBufferUsageANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferUsageANDROIDsType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkAndroidSurfaceCreateInfoKHRflags must be 0
VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkAndroidSurfaceCreateInfoKHRpNext must be NULL
VUID-VkAndroidSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkAndroidSurfaceCreateInfoKHRsType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
VUID-VkAndroidSurfaceCreateInfoKHR-window-01248YNoneexplicitVkAndroidSurfaceCreateInfoKHRwindow must point to a valid Android ANativeWindow
VUID-VkAntiLagDataAMD-mode-parameterYNoneimplicitVkAntiLagDataAMDmode must be a valid VkAntiLagModeAMD value
VUID-VkAntiLagDataAMD-pPresentationInfo-parameterYNoneimplicitVkAntiLagDataAMDIf pPresentationInfo is not NULL, pPresentationInfo must be a valid pointer to a valid VkAntiLagPresentationInfoAMD structure
VUID-VkAntiLagDataAMD-sType-sTypeYNoneimplicitVkAntiLagDataAMDsType must be VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD
VUID-VkAntiLagPresentationInfoAMD-sType-sTypeYNoneimplicitVkAntiLagPresentationInfoAMDsType must be VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD
VUID-VkAntiLagPresentationInfoAMD-stage-parameterYNoneimplicitVkAntiLagPresentationInfoAMDstage must be a valid VkAntiLagStageAMD value
VUID-VkApplicationInfo-apiVersion-04010YNoneexplicitVkApplicationInfoIf apiVersion is not 0, then it must be greater than or equal to VK_API_VERSION_1_0
VUID-VkApplicationInfo-pApplicationName-parameterYNoneimplicitVkApplicationInfoIf pApplicationName is not NULL, pApplicationName must be a null-terminated UTF-8 string
VUID-VkApplicationInfo-pEngineName-parameterYNoneimplicitVkApplicationInfoIf pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string
VUID-VkApplicationInfo-pNext-pNextYNoneimplicitVkApplicationInfopNext must be NULL
VUID-VkApplicationInfo-sType-sTypeYNegativeInstanceless.InstanceAppInfoBadStypeimplicitVkApplicationInfosType must be VK_STRUCTURE_TYPE_APPLICATION_INFO
VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07309YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescriptionIf the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07310YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescriptionIf the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription-dynamicRenderingLocalRead-09544YNegativeDynamicRenderingLocalRead.AttachmentLayoutexplicitVkAttachmentDescriptionIf the dynamicRenderingLocalRead feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkAttachmentDescription-dynamicRenderingLocalRead-09545YNegativeDynamicRenderingLocalRead.AttachmentLayoutexplicitVkAttachmentDescriptionIf the dynamicRenderingLocalRead feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkAttachmentDescription-finalLayout-00843YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionfinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescription-finalLayout-parameterYNoneimplicitVkAttachmentDescriptionfinalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription-flags-parameterYNoneimplicitVkAttachmentDescriptionflags must be a valid combination of VkAttachmentDescriptionFlagBits values
VUID-VkAttachmentDescription-format-03280YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-03282YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-03286YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.InvalidAttachmentDescriptionDSLayoutexplicitVkAttachmentDescriptionIf 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.InvalidAttachmentDescriptionDSLayoutexplicitVkAttachmentDescriptionIf 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.InvalidAttachmentDescriptionColorLayoutexplicitVkAttachmentDescriptionIf 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.InvalidAttachmentDescriptionColorLayoutexplicitVkAttachmentDescriptionIf 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.RenderPassAttachmentFormatexplicitVkAttachmentDescriptionformat must not be VK_FORMAT_UNDEFINED
VUID-VkAttachmentDescription-format-06699YNegativeRenderPass.AttachmentUndefinedLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentUndefinedLayoutexplicitVkAttachmentDescriptionIf 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-06906YNoneexplicitVkAttachmentDescriptionIf 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-06907YNoneexplicitVkAttachmentDescriptionIf 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-parameterYNoneimplicitVkAttachmentDescriptionformat must be a valid VkFormat value
VUID-VkAttachmentDescription-initialLayout-parameterYNoneimplicitVkAttachmentDescriptioninitialLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription-loadOp-parameterYNoneimplicitVkAttachmentDescriptionloadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription-samples-08745NNoneexplicitVkAttachmentDescriptionsamples must be a valid VkSampleCountFlagBits value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for the given format
VUID-VkAttachmentDescription-samples-parameterYNoneimplicitVkAttachmentDescriptionsamples must be a valid VkSampleCountFlagBits value
VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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-parameterYNoneimplicitVkAttachmentDescriptionstencilLoadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription-stencilStoreOp-parameterYNoneimplicitVkAttachmentDescriptionstencilStoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription-storeOp-parameterYNoneimplicitVkAttachmentDescriptionstoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription-synchronization2-06908YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionIf 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.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescription2If the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07310YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescription2If the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription2-dynamicRenderingLocalRead-09544YNegativeDynamicRenderingLocalRead.AttachmentLayoutexplicitVkAttachmentDescription2If the dynamicRenderingLocalRead feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkAttachmentDescription2-dynamicRenderingLocalRead-09545YNegativeDynamicRenderingLocalRead.AttachmentLayoutexplicitVkAttachmentDescription2If the dynamicRenderingLocalRead feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkAttachmentDescription2-finalLayout-00843YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescription2-finalLayout-parameterYNoneimplicitVkAttachmentDescription2finalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription2-flags-parameterYNoneimplicitVkAttachmentDescription2flags must be a valid combination of VkAttachmentDescriptionFlagBits values
VUID-VkAttachmentDescription2-format-03280YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription2-format-03282YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription2-format-03286YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentDescription2If 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.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentDescription2If 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-06487YNoneexplicitVkAttachmentDescription2If 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-06488YNoneexplicitVkAttachmentDescription2If 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.AttachmentUndefinedLayoutexplicitVkAttachmentDescription2If 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.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentDescription2If 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.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentDescription2If 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.RenderPassAttachmentFormatexplicitVkAttachmentDescription2If externalFormatResolve is not enabled, format must not be VK_FORMAT_UNDEFINED
VUID-VkAttachmentDescription2-format-09334YNegativeAndroidExternalResolve.AttachmentDescriptionZeroExternalFormatexplicitVkAttachmentDescription2If 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-parameterYNoneimplicitVkAttachmentDescription2format must be a valid VkFormat value
VUID-VkAttachmentDescription2-initialLayout-parameterYNoneimplicitVkAttachmentDescription2initialLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription2-loadOp-parameterYNoneimplicitVkAttachmentDescription2loadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription2-pNext-06704YNegativeRenderPass.StencilLoadOpexplicitVkAttachmentDescription2If 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.StencilLoadOpexplicitVkAttachmentDescription2If 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-pNextYNoneimplicitVkAttachmentDescription2Each 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-sTypeYNoneimplicitVkAttachmentDescription2sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
VUID-VkAttachmentDescription2-sType-uniqueYNoneimplicitVkAttachmentDescription2The sType value of each struct in the pNext chain must be unique
VUID-VkAttachmentDescription2-samples-08745NNoneexplicitVkAttachmentDescription2samples must be a valid VkSampleCountFlagBits value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for the given format
VUID-VkAttachmentDescription2-samples-parameterYNoneimplicitVkAttachmentDescription2samples must be a valid VkSampleCountFlagBits value
VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03284YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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-parameterYNoneimplicitVkAttachmentDescription2stencilLoadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription2-stencilStoreOp-parameterYNoneimplicitVkAttachmentDescription2stencilStoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription2-storeOp-parameterYNoneimplicitVkAttachmentDescription2storeOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription2-synchronization2-06908YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescription2If 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-sTypeYNoneimplicitVkAttachmentDescriptionStencilLayoutsType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionStencilLayoutstencilFinalLayout 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.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionStencilLayoutstencilFinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameterYNoneimplicitVkAttachmentDescriptionStencilLayoutstencilFinalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308YNegativeRenderPass.AttachmentDescriptionFinalLayoutexplicitVkAttachmentDescriptionStencilLayoutstencilInitialLayout 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-parameterYNoneimplicitVkAttachmentDescriptionStencilLayoutstencilInitialLayout must be a valid VkImageLayout value
VUID-VkAttachmentReference-attachmentFeedbackLoopLayout-07311YNegativeImage.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentReferenceIf the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentReference-dynamicRenderingLocalRead-09546YNegativeDynamicRenderingLocalRead.AttachmentLayoutexplicitVkAttachmentReferenceIf the dynamicRenderingLocalRead feature is not enabled, layout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkAttachmentReference-layout-03077YNegativeRenderPass.AttachmentReferenceLayout, NegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentReferenceIf 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-parameterYNoneimplicitVkAttachmentReferencelayout must be a valid VkImageLayout value
VUID-VkAttachmentReference-separateDepthStencilLayouts-03313YNegativeRenderPass.AttachmentReferenceLayoutexplicitVkAttachmentReferenceIf 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.AttachmentReferenceSync2LayoutexplicitVkAttachmentReferenceIf 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.AttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentReference2If the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentReference2-dynamicRenderingLocalRead-09546YNegativeDynamicRenderingLocalRead.AttachmentLayoutexplicitVkAttachmentReference2If the dynamicRenderingLocalRead feature is not enabled, layout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkAttachmentReference2-layout-03077YNegativeRenderPass.AttachmentReferenceLayout, NegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentReference2If 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-parameterYNoneimplicitVkAttachmentReference2layout must be a valid VkImageLayout value
VUID-VkAttachmentReference2-pNext-pNextYNoneimplicitVkAttachmentReference2pNext must be NULL or a pointer to a valid instance of VkAttachmentReferenceStencilLayout
VUID-VkAttachmentReference2-sType-sTypeYNoneimplicitVkAttachmentReference2sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
VUID-VkAttachmentReference2-sType-uniqueYNoneimplicitVkAttachmentReference2The sType value of each struct in the pNext chain must be unique
VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313YNegativeRenderPass.AttachmentReferenceLayoutexplicitVkAttachmentReference2If 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.AttachmentReferenceSync2LayoutexplicitVkAttachmentReference2If 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-sTypeYNoneimplicitVkAttachmentReferenceStencilLayoutsType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318YNegativeRenderPass.AttachmentReferenceLayoutSeparateDepthStencilLayoutsFeatureexplicitVkAttachmentReferenceStencilLayoutstencilLayout 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-parameterYNoneimplicitVkAttachmentReferenceStencilLayoutstencilLayout must be a valid VkImageLayout value
VUID-VkAttachmentSampleCountInfoAMD-sType-sTypeYNoneimplicitVkAttachmentSampleCountInfoAMDsType must be VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531YNegativeRenderPass.BeginSampleLocationsIndicesEXTexplicitVkAttachmentSampleLocationsEXTattachmentIndex must be less than the attachmentCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with
VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameterYNoneimplicitVkAttachmentSampleLocationsEXTsampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-03620YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVaccelerationStructure must not already be backed by a memory object
VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameterYNoneimplicitVkBindAccelerationStructureMemoryInfoNVaccelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-VkBindAccelerationStructureMemoryInfoNV-commonparentYNoneimplicitVkBindAccelerationStructureMemoryInfoNVBoth of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindAccelerationStructureMemoryInfoNV-memory-03622YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVmemory 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.ValidateBindAccelerationStructureimplicitVkBindAccelerationStructureMemoryInfoNVmemory must be a valid VkDeviceMemory handle
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVmemoryOffset must be less than the size of memory
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVmemoryOffset 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-parameterYNoneimplicitVkBindAccelerationStructureMemoryInfoNVIf deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNextYNoneimplicitVkBindAccelerationStructureMemoryInfoNVpNext must be NULL
VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sTypeYNoneimplicitVkBindAccelerationStructureMemoryInfoNVsType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
VUID-VkBindAccelerationStructureMemoryInfoNV-size-03624YNegativeRayTracingNV.ValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNVThe 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.BindBufferMemoryDeviceGroupexplicitVkBindBufferMemoryDeviceGroupInfodeviceIndexCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607YNegativeMemory.BindBufferMemoryDeviceGroupexplicitVkBindBufferMemoryDeviceGroupInfoAll elements of pDeviceIndices must be valid device indices
VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameterYNoneimplicitVkBindBufferMemoryDeviceGroupInfoIf deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sTypeYNoneimplicitVkBindBufferMemoryDeviceGroupInfosType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
VUID-VkBindBufferMemoryInfo-None-01898YNoneexplicitVkBindBufferMemoryInfoIf 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-01899YNoneexplicitVkBindBufferMemoryInfoIf 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-07920NNoneexplicitVkBindBufferMemoryInfoIf 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-01030YNoneexplicitVkBindBufferMemoryInfobuffer must not have been created with any sparse memory binding flags
VUID-VkBindBufferMemoryInfo-buffer-01038NNoneexplicitVkBindBufferMemoryInfoIf 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-01444NNoneexplicitVkBindBufferMemoryInfoIf 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-06408NNoneexplicitVkBindBufferMemoryInfoIf buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-VkBindBufferMemoryInfo-buffer-07459YNoneexplicitVkBindBufferMemoryInfobuffer must not have been bound to a memory object
VUID-VkBindBufferMemoryInfo-buffer-09201YNoneexplicitVkBindBufferMemoryInfoIf 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-parameterYNoneimplicitVkBindBufferMemoryInfobuffer must be a valid VkBuffer handle
VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339YNoneexplicitVkBindBufferMemoryInfoIf 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-09200YNoneexplicitVkBindBufferMemoryInfoIf 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.BindBufferimplicitVkBindBufferMemoryInfoBoth of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112YNoneexplicitVkBindBufferMemoryInfoIf 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.ImportBufferHandleTypeexplicitVkBindBufferMemoryInfomemory 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-01508YNoneexplicitVkBindBufferMemoryInfoIf 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.ExportBufferHandleTypeexplicitVkBindBufferMemoryInfoIf 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.ImportMemoryHandleTypeexplicitVkBindBufferMemoryInfoIf 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.ImportBufferHandleTypeexplicitVkBindBufferMemoryInfoIf 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-parameterYNoneimplicitVkBindBufferMemoryInfomemory must be a valid VkDeviceMemory handle
VUID-VkBindBufferMemoryInfo-memoryOffset-01031YNoneexplicitVkBindBufferMemoryInfomemoryOffset must be less than the size of memory
VUID-VkBindBufferMemoryInfo-memoryOffset-01036YNoneexplicitVkBindBufferMemoryInfomemoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer
VUID-VkBindBufferMemoryInfo-pNext-01605NNoneexplicitVkBindBufferMemoryInfoIf the pNext chain includes a VkBindBufferMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindBufferMemoryDeviceGroupInfo::pDeviceIndices must have been allocated
VUID-VkBindBufferMemoryInfo-pNext-pNextYNoneimplicitVkBindBufferMemoryInfoEach 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-sTypeYNoneimplicitVkBindBufferMemoryInfosType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
VUID-VkBindBufferMemoryInfo-sType-uniqueYNoneimplicitVkBindBufferMemoryInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkBindBufferMemoryInfo-size-01037YNoneexplicitVkBindBufferMemoryInfoThe 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-09495YNoneexplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-layout-09496YNoneexplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-layout-parameterYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-pNext-pNextYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTpNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-sType-sTypeYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTsType must be VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-sType-uniqueYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTThe sType value of each struct in the pNext chain must be unique
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-set-08070YNoneexplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTThe 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-08071YNoneexplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTset must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-stageFlags-parameterYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTstageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkBindDescriptorBufferEmbeddedSamplersInfoEXT-stageFlags-requiredbitmaskYNoneimplicitVkBindDescriptorBufferEmbeddedSamplersInfoEXTstageFlags must not be 0
VUID-VkBindDescriptorSetsInfoKHR-None-09495YNegativeDescriptors.BindDescriptorSetsInfoPipelineLayoutexplicitVkBindDescriptorSetsInfoKHRIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkBindDescriptorSetsInfoKHR-commonparentYNoneimplicitVkBindDescriptorSetsInfoKHRBoth 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-arraylengthYNegativeCommand.DescriptorSetPipelineBindPointMaintenance6implicitVkBindDescriptorSetsInfoKHRdescriptorSetCount must be greater than 0
VUID-VkBindDescriptorSetsInfoKHR-dynamicOffsetCount-00359YNegativeDescriptors.DynamicOffsetCasesMaintenance6explicitVkBindDescriptorSetsInfoKHRdynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets
VUID-VkBindDescriptorSetsInfoKHR-firstSet-00360YNoneexplicitVkBindDescriptorSetsInfoKHRThe sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkBindDescriptorSetsInfoKHR-layout-09496YNoneexplicitVkBindDescriptorSetsInfoKHRIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkBindDescriptorSetsInfoKHR-layout-parameterYNegativeDescriptors.BindDescriptorSetsInfoPipelineLayoutimplicitVkBindDescriptorSetsInfoKHRIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-00358YNoneexplicitVkBindDescriptorSetsInfoKHREach 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-01979YNoneexplicitVkBindDescriptorSetsInfoKHRFor 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-04616YNoneexplicitVkBindDescriptorSetsInfoKHREach 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-06563YNoneexplicitVkBindDescriptorSetsInfoKHRIf graphicsPipelineLibrary is not enabled, each element of pDescriptorSets must be a valid VkDescriptorSet
VUID-VkBindDescriptorSetsInfoKHR-pDescriptorSets-06715YNoneexplicitVkBindDescriptorSetsInfoKHRFor 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.BindingexplicitVkBindDescriptorSetsInfoKHREach 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-parameterYNoneimplicitVkBindDescriptorSetsInfoKHRpDescriptorSets must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSet handles
VUID-VkBindDescriptorSetsInfoKHR-pDynamicOffsets-01971YNoneexplicitVkBindDescriptorSetsInfoKHREach 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-01972YNoneexplicitVkBindDescriptorSetsInfoKHREach 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-parameterYNoneimplicitVkBindDescriptorSetsInfoKHRIf 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-pNextYNoneimplicitVkBindDescriptorSetsInfoKHRpNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkBindDescriptorSetsInfoKHR-sType-sTypeYNoneimplicitVkBindDescriptorSetsInfoKHRsType must be VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR
VUID-VkBindDescriptorSetsInfoKHR-sType-uniqueYNoneimplicitVkBindDescriptorSetsInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkBindDescriptorSetsInfoKHR-stageFlags-parameterYNoneimplicitVkBindDescriptorSetsInfoKHRstageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkBindDescriptorSetsInfoKHR-stageFlags-requiredbitmaskYNoneimplicitVkBindDescriptorSetsInfoKHRstageFlags must not be 0
VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633YNegativeImage.BindIMageMemoryDeviceGroupInfo, NegativeImage.ImageSplitInstanceBindRegionCountexplicitVkBindImageMemoryDeviceGroupInfoAt least one of deviceIndexCount and splitInstanceBindRegionCount must be zero
VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634YNegativeImage.ImageSplitInstanceBindRegionCount, NegativeMemory.BindBufferMemoryDeviceGroupexplicitVkBindImageMemoryDeviceGroupInfodeviceIndexCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640NNoneexplicitVkBindImageMemoryDeviceGroupInfoThe 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-01641NNoneexplicitVkBindImageMemoryDeviceGroupInfoThe 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-01638NNoneexplicitVkBindImageMemoryDeviceGroupInfoThe 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-01639NNoneexplicitVkBindImageMemoryDeviceGroupInfoThe 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-01635NNoneexplicitVkBindImageMemoryDeviceGroupInfoAll elements of pDeviceIndices must be valid device indices
VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameterYNoneimplicitVkBindImageMemoryDeviceGroupInfoIf deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637NNoneexplicitVkBindImageMemoryDeviceGroupInfoElements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap
VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameterYNoneimplicitVkBindImageMemoryDeviceGroupInfoIf splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures
VUID-VkBindImageMemoryDeviceGroupInfo-sType-sTypeYNoneimplicitVkBindImageMemoryDeviceGroupInfosType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636YNegativeImage.ImageSplitInstanceBindRegionCountWithDeviceGroupexplicitVkBindImageMemoryDeviceGroupInfosplitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared
VUID-VkBindImageMemoryInfo-None-01901YNoneexplicitVkBindImageMemoryInfoIf 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-01902YNoneexplicitVkBindImageMemoryInfoIf 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-07921NNoneexplicitVkBindImageMemoryInfoIf 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-commonparentYNoneimplicitVkBindImageMemoryInfoBoth 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-08113YNoneexplicitVkBindImageMemoryInfoIf 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-01045YNoneexplicitVkBindImageMemoryInfoimage must not have been created with any sparse memory binding flags
VUID-VkBindImageMemoryInfo-image-01050NNoneexplicitVkBindImageMemoryInfoIf 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-01445NNoneexplicitVkBindImageMemoryInfoIf 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.BindImageMemorySwapchainexplicitVkBindImageMemoryInfoIf 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-07460YNoneexplicitVkBindImageMemoryInfoimage must not have been bound to a memory object
VUID-VkBindImageMemoryInfo-image-07736YNegativeMemory.BindMemory2BindInfos, NegativeYcbcr.BindMemoryexplicitVkBindImageMemoryInfoIf image was created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set, then the pNext chain must include a VkBindImagePlaneMemoryInfo structure
VUID-VkBindImageMemoryInfo-image-09202YNoneexplicitVkBindImageMemoryInfoIf 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-parameterYNoneimplicitVkBindImageMemoryInfoimage must be a valid VkImage handle
VUID-VkBindImageMemoryInfo-memory-02628YNoneexplicitVkBindImageMemoryInfoIf 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-02629YNoneexplicitVkBindImageMemoryInfoIf 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.ExportImageHandleTypeexplicitVkBindImageMemoryInfoIf 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.ImportMemoryHandleTypeexplicitVkBindImageMemoryInfoIf 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.ImportImageHandleTypeexplicitVkBindImageMemoryInfoIf 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-01046YNoneexplicitVkBindImageMemoryInfomemoryOffset must be less than the size of memory
VUID-VkBindImageMemoryInfo-pNext-01615YNegativeAndroidHardwareBuffer.ImportImageHandleType, NegativeExternalMemorySync.ImportMemoryHandleType, NegativeYcbcr.BindMemory2DisjointUnsupportedexplicitVkBindImageMemoryInfoIf 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.BindMemory2DisjointexplicitVkBindImageMemoryInfoIf 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.BindMemory2DisjointexplicitVkBindImageMemoryInfoIf 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.BindMemoryexplicitVkBindImageMemoryInfoIf 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.BindMemory2DisjointUnsupportedexplicitVkBindImageMemoryInfoIf 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.BindMemory2DisjointexplicitVkBindImageMemoryInfoIf 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.BindMemory2DisjointexplicitVkBindImageMemoryInfoIf 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-01626NNoneexplicitVkBindImageMemoryInfoIf the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated
VUID-VkBindImageMemoryInfo-pNext-01627YNegativeImage.ImageSplitInstanceBindRegionCountexplicitVkBindImageMemoryInfoIf 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-01628NNoneexplicitVkBindImageMemoryInfoIf 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-01629NNoneexplicitVkBindImageMemoryInfoIf 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.BindImageMemorySwapchainexplicitVkBindImageMemoryInfoIf the pNext chain includes a VkBindImageMemorySwapchainInfoKHR structure, memory must be VK_NULL_HANDLE
VUID-VkBindImageMemoryInfo-pNext-01632YNegativeMemory.BadMemoryBindMemory2, NegativeWsi.BindImageMemorySwapchainexplicitVkBindImageMemoryInfoIf the pNext chain does not include a VkBindImageMemorySwapchainInfoKHR structure, memory must be a valid VkDeviceMemory handle
VUID-VkBindImageMemoryInfo-pNext-pNextYNoneimplicitVkBindImageMemoryInfoEach 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-sTypeYNoneimplicitVkBindImageMemoryInfosType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
VUID-VkBindImageMemoryInfo-sType-uniqueYNoneimplicitVkBindImageMemoryInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644YNegativeWsi.BindImageMemorySwapchainexplicitVkBindImageMemorySwapchainInfoKHRimageIndex must be less than the number of images in swapchain
VUID-VkBindImageMemorySwapchainInfoKHR-sType-sTypeYNoneimplicitVkBindImageMemorySwapchainInfoKHRsType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-07756YNegativeWsi.SwapchainMaintenance1ExtensionCapsexplicitVkBindImageMemorySwapchainInfoKHRIf 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-parameterYNoneimplicitVkBindImageMemorySwapchainInfoKHRswapchain must be a valid VkSwapchainKHR handle
VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283YNegativeYcbcr.BindMemoryexplicitVkBindImagePlaneMemoryInfoIf 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.MultiPlanarBindMemoryexplicitVkBindImagePlaneMemoryInfoIf 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-parameterYNoneimplicitVkBindImagePlaneMemoryInfoplaneAspect must be a valid VkImageAspectFlagBits value
VUID-VkBindImagePlaneMemoryInfo-sType-sTypeYNoneimplicitVkBindImagePlaneMemoryInfosType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
VUID-VkBindIndexBufferIndirectCommandEXT-None-11117NNoneexplicitVkBindIndexBufferIndirectCommandEXTThe buffer's usage flags from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set
VUID-VkBindIndexBufferIndirectCommandEXT-None-11119NNoneexplicitVkBindIndexBufferIndirectCommandEXTEach 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-VkBindIndexBufferIndirectCommandEXT-bufferAddress-11118NNoneexplicitVkBindIndexBufferIndirectCommandEXTThe bufferAddress must be aligned to the VkIndexType of the indexType used
VUID-VkBindIndexBufferIndirectCommandEXT-indexType-parameterNNoneimplicitVkBindIndexBufferIndirectCommandEXTindexType must be a valid VkIndexType value
VUID-VkBindIndexBufferIndirectCommandNV-None-02946NNoneexplicitVkBindIndexBufferIndirectCommandNVThe buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set
VUID-VkBindIndexBufferIndirectCommandNV-None-02948NNoneexplicitVkBindIndexBufferIndirectCommandNVEach 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-02947NNoneexplicitVkBindIndexBufferIndirectCommandNVThe bufferAddress must be aligned to the indexType used
VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameterNNoneimplicitVkBindIndexBufferIndirectCommandNVindexType must be a valid VkIndexType value
VUID-VkBindMemoryStatusKHR-pResult-parameterYNoneimplicitVkBindMemoryStatusKHRpResult must be a valid pointer to a VkResult value
VUID-VkBindMemoryStatusKHR-sType-sTypeYNoneimplicitVkBindMemoryStatusKHRsType must be VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR
VUID-VkBindPipelineIndirectCommandNV-None-09092NNoneexplicitVkBindPipelineIndirectCommandNVThe referenced pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkBindPipelineIndirectCommandNV-None-09093NNoneexplicitVkBindPipelineIndirectCommandNVThe referenced pipeline must have been updated with vkCmdUpdatePipelineIndirectBufferNV
VUID-VkBindPipelineIndirectCommandNV-None-09094NNoneexplicitVkBindPipelineIndirectCommandNVThe referenced pipeline's address must have been queried with vkGetPipelineIndirectDeviceAddressNV
VUID-VkBindPipelineIndirectCommandNV-deviceGeneratedComputePipelines-09091NNoneexplicitVkBindPipelineIndirectCommandNVThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-VkBindShaderGroupIndirectCommandNV-None-02944NNoneexplicitVkBindShaderGroupIndirectCommandNVThe 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-02945NNoneexplicitVkBindShaderGroupIndirectCommandNVThe index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details
VUID-VkBindSparseInfo-commonparentYNoneimplicitVkBindSparseInfoBoth 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-parameterYNoneimplicitVkBindSparseInfoIf bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures
VUID-VkBindSparseInfo-pImageBinds-parameterYNoneimplicitVkBindSparseInfoIf imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures
VUID-VkBindSparseInfo-pImageOpaqueBinds-parameterYNoneimplicitVkBindSparseInfoIf imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures
VUID-VkBindSparseInfo-pNext-03247YNegativeSyncObject.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfoIf 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.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfoIf 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-pNextYNoneimplicitVkBindSparseInfoEach 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.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfoFor 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.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfoFor 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-parameterYNoneimplicitVkBindSparseInfoIf signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles
VUID-VkBindSparseInfo-pWaitSemaphores-03246YNegativeSyncObject.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfoIf 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.QueueBindSparseTimelineSemaphoreValueexplicitVkBindSparseInfoFor 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-parameterYNoneimplicitVkBindSparseInfoIf waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkBindSparseInfo-sType-sTypeYNoneimplicitVkBindSparseInfosType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
VUID-VkBindSparseInfo-sType-uniqueYNoneimplicitVkBindSparseInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkBindVertexBufferIndirectCommandEXT-None-11120NNoneexplicitVkBindVertexBufferIndirectCommandEXTThe buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT bit set
VUID-VkBindVertexBufferIndirectCommandEXT-None-11121NNoneexplicitVkBindVertexBufferIndirectCommandEXTEach 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-VkBindVertexBufferIndirectCommandNV-None-02949NNoneexplicitVkBindVertexBufferIndirectCommandNVThe buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT bit set
VUID-VkBindVertexBufferIndirectCommandNV-None-02950NNoneexplicitVkBindVertexBufferIndirectCommandNVEach 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-parameterYNoneimplicitVkBindVideoSessionMemoryInfoKHRmemory must be a valid VkDeviceMemory handle
VUID-VkBindVideoSessionMemoryInfoKHR-memoryOffset-07201YNegativeVideo.BindVideoSessionMemoryexplicitVkBindVideoSessionMemoryInfoKHRmemoryOffset must be less than the size of memory
VUID-VkBindVideoSessionMemoryInfoKHR-memorySize-07202YNegativeVideo.BindVideoSessionMemoryexplicitVkBindVideoSessionMemoryInfoKHRmemorySize must be less than or equal to the size of memory minus memoryOffset
VUID-VkBindVideoSessionMemoryInfoKHR-pNext-pNextYNoneimplicitVkBindVideoSessionMemoryInfoKHRpNext must be NULL
VUID-VkBindVideoSessionMemoryInfoKHR-sType-sTypeYNoneimplicitVkBindVideoSessionMemoryInfoKHRsType must be VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR
VUID-VkBlitImageCubicWeightsInfoQCOM-cubicWeights-parameterYNoneimplicitVkBlitImageCubicWeightsInfoQCOMcubicWeights must be a valid VkCubicFilterWeightsQCOM value
VUID-VkBlitImageCubicWeightsInfoQCOM-sType-sTypeYNoneimplicitVkBlitImageCubicWeightsInfoQCOMsType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM
VUID-VkBlitImageInfo2-aspectMask-00241YNoneexplicitVkBlitImageInfo2For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkBlitImageInfo2-aspectMask-00242YNoneexplicitVkBlitImageInfo2For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkBlitImageInfo2-commonparentYNoneimplicitVkBlitImageInfo2Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBlitImageInfo2-dstImage-00224YNegativeCopyBufferImage.CopyCommands2V13explicitVkBlitImageInfo2dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkBlitImageInfo2-dstImage-00225YNoneexplicitVkBlitImageInfo2If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2-dstImage-00234YNoneexplicitVkBlitImageInfo2dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2-dstImage-00250YNoneexplicitVkBlitImageInfo2If 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-00252YNoneexplicitVkBlitImageInfo2If 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.BlitFormatTypesexplicitVkBlitImageInfo2The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT
VUID-VkBlitImageInfo2-dstImage-02545YNoneexplicitVkBlitImageInfo2dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkBlitImageInfo2-dstImage-06422YNoneexplicitVkBlitImageInfo2dstImage must not use a format that requires a sampler Y'CBCR conversion
VUID-VkBlitImageInfo2-dstImage-parameterYNoneimplicitVkBlitImageInfo2dstImage must be a valid VkImage handle
VUID-VkBlitImageInfo2-dstImageLayout-00226YNoneexplicitVkBlitImageInfo2dstImageLayout 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-01399YNoneexplicitVkBlitImageInfo2dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-dstImageLayout-parameterYNoneimplicitVkBlitImageInfo2dstImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2-dstOffset-00248YNoneexplicitVkBlitImageInfo2For 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-00249YNoneexplicitVkBlitImageInfo2For 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-00251YNoneexplicitVkBlitImageInfo2For 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-01706YNoneexplicitVkBlitImageInfo2The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkBlitImageInfo2-dstSubresource-01708YNoneexplicitVkBlitImageInfo2If 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-00237YNoneexplicitVkBlitImageInfo2If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkBlitImageInfo2-filter-02001YNoneexplicitVkBlitImageInfo2If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-VkBlitImageInfo2-filter-02002YNoneexplicitVkBlitImageInfo2If 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-09204NNoneexplicitVkBlitImageInfo2If 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-parameterYNoneimplicitVkBlitImageInfo2filter must be a valid VkFilter value
VUID-VkBlitImageInfo2-pNext-pNextYNoneimplicitVkBlitImageInfo2pNext must be NULL or a pointer to a valid instance of VkBlitImageCubicWeightsInfoQCOM
VUID-VkBlitImageInfo2-pRegions-00215YNoneexplicitVkBlitImageInfo2The source region specified by each element of pRegions must be a region that is contained within srcImage
VUID-VkBlitImageInfo2-pRegions-00216YNoneexplicitVkBlitImageInfo2The destination region specified by each element of pRegions must be a region that is contained within dstImage
VUID-VkBlitImageInfo2-pRegions-00217YNoneexplicitVkBlitImageInfo2The 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-04561NNoneexplicitVkBlitImageInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be block-compressed images
VUID-VkBlitImageInfo2-pRegions-parameterYNoneimplicitVkBlitImageInfo2pRegions must be a valid pointer to an array of regionCount valid VkImageBlit2 structures
VUID-VkBlitImageInfo2-regionCount-arraylengthYNoneimplicitVkBlitImageInfo2regionCount must be greater than 0
VUID-VkBlitImageInfo2-sType-sTypeYNoneimplicitVkBlitImageInfo2sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
VUID-VkBlitImageInfo2-sType-uniqueYNoneimplicitVkBlitImageInfo2The sType value of each struct in the pNext chain must be unique
VUID-VkBlitImageInfo2-srcImage-00219YNoneexplicitVkBlitImageInfo2srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkBlitImageInfo2-srcImage-00220YNoneexplicitVkBlitImageInfo2If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2-srcImage-00229YNegativeImage.BlitFormatTypesexplicitVkBlitImageInfo2If 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.BlitFormatTypesexplicitVkBlitImageInfo2If 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-00231YNoneexplicitVkBlitImageInfo2If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format
VUID-VkBlitImageInfo2-srcImage-00232YNoneexplicitVkBlitImageInfo2If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST
VUID-VkBlitImageInfo2-srcImage-00233YNoneexplicitVkBlitImageInfo2srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2-srcImage-00240YNoneexplicitVkBlitImageInfo2If 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-00245YNoneexplicitVkBlitImageInfo2If 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-00247YNoneexplicitVkBlitImageInfo2If 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.BlitFormatTypesexplicitVkBlitImageInfo2The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT
VUID-VkBlitImageInfo2-srcImage-06421YNoneexplicitVkBlitImageInfo2srcImage must not use a format that requires a sampler Y'CBCR conversion
VUID-VkBlitImageInfo2-srcImage-09459YNoneexplicitVkBlitImageInfo2If 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-parameterYNoneimplicitVkBlitImageInfo2srcImage must be a valid VkImage handle
VUID-VkBlitImageInfo2-srcImageLayout-00221YNoneexplicitVkBlitImageInfo2srcImageLayout 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-01398YNoneexplicitVkBlitImageInfo2srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-srcImageLayout-parameterYNoneimplicitVkBlitImageInfo2srcImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2-srcOffset-00243YNoneexplicitVkBlitImageInfo2For 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-00244YNoneexplicitVkBlitImageInfo2For 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-00246YNoneexplicitVkBlitImageInfo2For 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-01705YNoneexplicitVkBlitImageInfo2The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkBlitImageInfo2-srcSubresource-01707YNoneexplicitVkBlitImageInfo2If 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-06207NNoneexplicitVkBlitImageInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkBlitImageInfo2KHR-pRegions-06208NNoneexplicitVkBlitImageInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format
VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-08075YNegativeDescriptorBuffer.NotEnabledGetBufferOpaqueCaptureDescriptorDataEXTexplicitVkBufferCaptureDescriptorDataInfoEXTbuffer must have been created with VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkBufferCreateInfo::flags
VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-parameterYNoneimplicitVkBufferCaptureDescriptorDataInfoEXTbuffer must be a valid VkBuffer handle
VUID-VkBufferCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkBufferCaptureDescriptorDataInfoEXTpNext must be NULL
VUID-VkBufferCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkBufferCaptureDescriptorDataInfoEXTsType must be VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-collection-parameterYNoneimplicitVkBufferCollectionBufferCreateInfoFUCHSIAcollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-index-06388NNoneexplicitVkBufferCollectionBufferCreateInfoFUCHSIAindex must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionBufferCreateInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferCollectionConstraintsInfoFUCHSIApNext must be NULL
VUID-VkBufferCollectionConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionConstraintsInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
VUID-VkBufferCollectionCreateInfoFUCHSIA-collectionToken-06393NNoneexplicitVkBufferCollectionCreateInfoFUCHSIAcollectionToken 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-pNextYNoneimplicitVkBufferCollectionCreateInfoFUCHSIApNext must be NULL
VUID-VkBufferCollectionCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionCreateInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-collection-parameterYNoneimplicitVkBufferCollectionImageCreateInfoFUCHSIAcollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-index-06391NNoneexplicitVkBufferCollectionImageCreateInfoFUCHSIAindex must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionImageCreateInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionPropertiesFUCHSIA-pNext-pNextYNoneimplicitVkBufferCollectionPropertiesFUCHSIApNext must be NULL
VUID-VkBufferCollectionPropertiesFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionPropertiesFUCHSIAsType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
VUID-VkBufferConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameterNNoneimplicitVkBufferConstraintsInfoFUCHSIAbufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure
VUID-VkBufferConstraintsInfoFUCHSIA-createInfo-parameterNNoneimplicitVkBufferConstraintsInfoFUCHSIAcreateInfo must be a valid VkBufferCreateInfo structure
VUID-VkBufferConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferConstraintsInfoFUCHSIApNext must be NULL
VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-06404NNoneexplicitVkBufferConstraintsInfoFUCHSIAThe requiredFormatFeatures bitmask of VkFormatFeatureFlagBits must be chosen from among the buffer compatible format features listed in buffer compatible format features
VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-parameterYNoneimplicitVkBufferConstraintsInfoFUCHSIArequiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkBufferConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferConstraintsInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
VUID-VkBufferCopy-size-01988YNegativeCopyBufferImage.ExtentsexplicitVkBufferCopyThe size must be greater than 0
VUID-VkBufferCopy2-pNext-pNextYNoneimplicitVkBufferCopy2pNext must be NULL
VUID-VkBufferCopy2-sType-sTypeYNoneimplicitVkBufferCopy2sType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2
VUID-VkBufferCopy2-size-01988YNoneexplicitVkBufferCopy2The size must be greater than 0
VUID-VkBufferCreateInfo-None-01888YNegativeProtectedMemory.MemoryexplicitVkBufferCreateInfoIf 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.BufferUsageFlagsUsage, VkLayerTest.DescriptorBufferNoExtensionexplicitVkBufferCreateInfoIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage must be a valid combination of VkBufferUsageFlagBits values
VUID-VkBufferCreateInfo-None-09500YNegativeBuffer.BufferUsageFlagsUsageexplicitVkBufferCreateInfoIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage must not be 0
VUID-VkBufferCreateInfo-deviceAddress-02604YNegativeMemory.BufferDeviceAddressEXTexplicitVkBufferCreateInfoIf VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkBufferCreateInfo-flags-00915YNegativeSparseBuffer.BufferFlagsFeatureexplicitVkBufferCreateInfoIf the sparseBinding feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT
VUID-VkBufferCreateInfo-flags-00916YNegativeSparseBuffer.BufferFlagsFeatureexplicitVkBufferCreateInfoIf the sparseResidencyBuffer feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkBufferCreateInfo-flags-00917YNegativeSparseBuffer.BufferFlagsFeatureexplicitVkBufferCreateInfoIf the sparseResidencyAliased feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
VUID-VkBufferCreateInfo-flags-00918YNegativeSparseBuffer.BufferFlagsFeature, NegativeSparseImage.BindingImageBufferCreateexplicitVkBufferCreateInfoIf 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.SubmitexplicitVkBufferCreateInfoIf the protectedMemory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT
VUID-VkBufferCreateInfo-flags-03338YNegativeMemory.BufferDeviceAddressEXT, NegativeMemory.BufferDeviceAddressKHRexplicitVkBufferCreateInfoIf flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled
VUID-VkBufferCreateInfo-flags-08099YNegativeDescriptorBuffer.NotEnabledDescriptorBufferCaptureReplayexplicitVkBufferCreateInfoIf flags includes VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkBufferCreateInfo-flags-08325YNegativeVideo.CreateBufferProfileIndependentNotSupportedexplicitVkBufferCreateInfoIf flags includes VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then videoMaintenance1 must be enabled
VUID-VkBufferCreateInfo-flags-09641YNegativeProtectedMemory.UsageexplicitVkBufferCreateInfoIf flags includes VK_BUFFER_CREATE_PROTECTED_BIT, then usage must not contain any of the following bits VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT
VUID-VkBufferCreateInfo-flags-parameterYNegativeVideo.CreateBufferProfileIndependentNotSupportedimplicitVkBufferCreateInfoflags must be a valid combination of VkBufferCreateFlagBits values
VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337YNegativeMemory.BufferDeviceAddressKHRexplicitVkBufferCreateInfoIf VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkBufferCreateInfo-pNext-00920YNegativeExternalMemorySync.CreateBufferIncompatibleHandleTypes, NegativeExternalMemorySync.ImportMemoryWin32BufferSupportexplicitVkBufferCreateInfoIf 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.DedicatedAllocationBufferFlagsexplicitVkBufferCreateInfoIf 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.NotEnabledDescriptorBufferCaptureReplayexplicitVkBufferCreateInfoIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkBufferCreateInfo-pNext-pNextYNoneimplicitVkBufferCreateInfoEach 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-sTypeYNoneimplicitVkBufferCreateInfosType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
VUID-VkBufferCreateInfo-sType-uniqueYNoneimplicitVkBufferCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkBufferCreateInfo-sharingMode-00913YNoneexplicitVkBufferCreateInfoIf sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkBufferCreateInfo-sharingMode-00914YNoneexplicitVkBufferCreateInfoIf sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkBufferCreateInfo-sharingMode-01419YNegativeDeviceQueue.FamilyIndexUsageexplicitVkBufferCreateInfoIf 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-parameterYNoneimplicitVkBufferCreateInfosharingMode must be a valid VkSharingMode value
VUID-VkBufferCreateInfo-size-00912YNegativeBuffer.CreateBufferSizeexplicitVkBufferCreateInfosize must be greater than 0
VUID-VkBufferCreateInfo-size-06409YNegativeBuffer.MaxBufferSize, NegativeBuffer.MaxBufferSize13explicitVkBufferCreateInfosize must be less than or equal to VkPhysicalDeviceMaintenance4Properties::maxBufferSize
VUID-VkBufferCreateInfo-usage-04813YNegativeVideo.CreateBufferInvalidProfileListexplicitVkBufferCreateInfoIf 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.CreateBufferInvalidProfileListexplicitVkBufferCreateInfoIf 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.SetBufferAddressSpaceLimitsexplicitVkBufferCreateInfoIf 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.SetBufferAddressSpaceLimitsexplicitVkBufferCreateInfoIf 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.NotEnabledDescriptorBufferCaptureReplayexplicitVkBufferCreateInfoIf usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, the descriptorBufferPushDescriptors feature must be enabled
VUID-VkBufferCreateInfo-usage-08102YNegativeDescriptorBuffer.NotEnabledDescriptorBufferCaptureReplayexplicitVkBufferCreateInfoIf usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE
VUID-VkBufferCreateInfo-usage-08103YNegativeDescriptorBuffer.BufferUsageexplicitVkBufferCreateInfoIf 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-sTypeYNoneimplicitVkBufferDeviceAddressCreateInfoEXTsType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
VUID-VkBufferDeviceAddressInfo-buffer-02600YNegativeMemory.BufferDeviceAddressEXT, NegativeMemory.BufferDeviceAddressEXTDisabled, NegativeMemory.BufferDeviceAddressKHR, NegativeMemory.BufferDeviceAddressKHRDisabledexplicitVkBufferDeviceAddressInfoIf 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.BufferDeviceAddressKHRDisabledexplicitVkBufferDeviceAddressInfobuffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
VUID-VkBufferDeviceAddressInfo-buffer-parameterYNoneimplicitVkBufferDeviceAddressInfobuffer must be a valid VkBuffer handle
VUID-VkBufferDeviceAddressInfo-pNext-pNextYNoneimplicitVkBufferDeviceAddressInfopNext must be NULL
VUID-VkBufferDeviceAddressInfo-sType-sTypeYNoneimplicitVkBufferDeviceAddressInfosType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
VUID-VkBufferImageCopy-aspectMask-09103YNegativeCopyBufferImage.ImageBufferCopyexplicitVkBufferImageCopyThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy-bufferImageHeight-09102YNegativeCopyBufferImage.MiscImageLayerexplicitVkBufferImageCopybufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy-bufferRowLength-09101YNegativeCopyBufferImage.MiscImageLayerexplicitVkBufferImageCopybufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy-imageExtent-06659YNegativeCopyBufferImage.ImageBufferCopyexplicitVkBufferImageCopyimageExtent.width must not be 0
VUID-VkBufferImageCopy-imageExtent-06660YNegativeCopyBufferImage.ImageZeroSizeexplicitVkBufferImageCopyimageExtent.height must not be 0
VUID-VkBufferImageCopy-imageExtent-06661YNegativeCopyBufferImage.ImageZeroSize, NegativeCopyBufferImage.MiscImageLayerexplicitVkBufferImageCopyimageExtent.depth must not be 0
VUID-VkBufferImageCopy-imageSubresource-parameterYNoneimplicitVkBufferImageCopyimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2-aspectMask-09103YNoneexplicitVkBufferImageCopy2The aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy2-bufferImageHeight-09102YNoneexplicitVkBufferImageCopy2bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy2-bufferRowLength-09101YNoneexplicitVkBufferImageCopy2bufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy2-imageExtent-06659YNoneexplicitVkBufferImageCopy2imageExtent.width must not be 0
VUID-VkBufferImageCopy2-imageExtent-06660YNoneexplicitVkBufferImageCopy2imageExtent.height must not be 0
VUID-VkBufferImageCopy2-imageExtent-06661YNoneexplicitVkBufferImageCopy2imageExtent.depth must not be 0
VUID-VkBufferImageCopy2-imageSubresource-parameterYNoneimplicitVkBufferImageCopy2imageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2-pNext-pNextYNoneimplicitVkBufferImageCopy2pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkBufferImageCopy2-sType-sTypeYNoneimplicitVkBufferImageCopy2sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2
VUID-VkBufferImageCopy2-sType-uniqueYNoneimplicitVkBufferImageCopy2The sType value of each struct in the pNext chain must be unique
VUID-VkBufferMemoryBarrier-None-09049YNoneexplicitVkBufferMemoryBarrierIf 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.BarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrierIf 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.BarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrierIf 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-09097YNoneexplicitVkBufferMemoryBarrierIf 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-09098YNoneexplicitVkBufferMemoryBarrierIf 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-01931YNoneexplicitVkBufferMemoryBarrierIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier-buffer-09095YNegativeSyncObject.BarrierQueueFamily, NegativeSyncObject.BarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrierIf 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.BarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrierIf 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-parameterYNoneimplicitVkBufferMemoryBarrierbuffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100YNoneexplicitVkBufferMemoryBarrierIf the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier-offset-01187YNegativeSyncObject.BarriersexplicitVkBufferMemoryBarrieroffset must be less than the size of buffer
VUID-VkBufferMemoryBarrier-pNext-pNextYNoneimplicitVkBufferMemoryBarrierpNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT
VUID-VkBufferMemoryBarrier-sType-sTypeYNoneimplicitVkBufferMemoryBarriersType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
VUID-VkBufferMemoryBarrier-sType-uniqueYNoneimplicitVkBufferMemoryBarrierThe sType value of each struct in the pNext chain must be unique
VUID-VkBufferMemoryBarrier-size-01188YNegativeSyncObject.BarriersexplicitVkBufferMemoryBarrierIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier-size-01189YNegativeSyncObject.BarriersexplicitVkBufferMemoryBarrierIf 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.BarrierQueuesexplicitVkBufferMemoryBarrierIf 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-09099YNoneexplicitVkBufferMemoryBarrierIf the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier2-None-09097YNoneexplicitVkBufferMemoryBarrier2If 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-09098YNoneexplicitVkBufferMemoryBarrier2If 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-01931YNoneexplicitVkBufferMemoryBarrier2If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier2-buffer-09095YNegativeSyncObject.Sync2BarrierQueueFamilyexplicitVkBufferMemoryBarrier2If 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.Sync2BarrierQueueFamilyexplicitVkBufferMemoryBarrier2If 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-parameterYNoneimplicitVkBufferMemoryBarrier2buffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier2-dstAccessMask-03900YNoneexplicitVkBufferMemoryBarrier2If 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-03901YNoneexplicitVkBufferMemoryBarrier2If 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-03902YNoneexplicitVkBufferMemoryBarrier2If 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-03903YNoneexplicitVkBufferMemoryBarrier2If 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-03904YNoneexplicitVkBufferMemoryBarrier2If 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-03905YNoneexplicitVkBufferMemoryBarrier2If 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-03906YNoneexplicitVkBufferMemoryBarrier2If 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-03907YNoneexplicitVkBufferMemoryBarrier2If 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-03909YNoneexplicitVkBufferMemoryBarrier2If 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-03910YNoneexplicitVkBufferMemoryBarrier2If 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.Sync2BarriersexplicitVkBufferMemoryBarrier2If 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-03912YNoneexplicitVkBufferMemoryBarrier2If 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-03913YNoneexplicitVkBufferMemoryBarrier2If 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-03914YNoneexplicitVkBufferMemoryBarrier2If 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-03915YNoneexplicitVkBufferMemoryBarrier2If 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-03916YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03917YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkBufferMemoryBarrier2If 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-03919YNoneexplicitVkBufferMemoryBarrier2If 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-03920YNoneexplicitVkBufferMemoryBarrier2If 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-03922YNoneexplicitVkBufferMemoryBarrier2If 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-03923YNoneexplicitVkBufferMemoryBarrier2If 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-03924YNoneexplicitVkBufferMemoryBarrier2If 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-03925YNoneexplicitVkBufferMemoryBarrier2If 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-03926YNoneexplicitVkBufferMemoryBarrier2If 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-03927YNoneexplicitVkBufferMemoryBarrier2If 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-03928YNoneexplicitVkBufferMemoryBarrier2If 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-04747YNoneexplicitVkBufferMemoryBarrier2If 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-04858YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkBufferMemoryBarrier2If 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.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkBufferMemoryBarrier2If 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-07272YNoneexplicitVkBufferMemoryBarrier2If 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-07454YNoneexplicitVkBufferMemoryBarrier2If 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-07455YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-dstAccessMask-07456YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-dstAccessMask-07457YNoneexplicitVkBufferMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstAccessMask-07458YNoneexplicitVkBufferMemoryBarrier2If 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-08118YNoneexplicitVkBufferMemoryBarrier2If 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-parameterYNoneimplicitVkBufferMemoryBarrier2dstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkBufferMemoryBarrier2-dstQueueFamilyIndex-09100YNoneexplicitVkBufferMemoryBarrier2If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03929YNoneexplicitVkBufferMemoryBarrier2If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkBufferMemoryBarrier2-dstStageMask-03930YNoneexplicitVkBufferMemoryBarrier2If 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-03931YNoneexplicitVkBufferMemoryBarrier2If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03932YNoneexplicitVkBufferMemoryBarrier2If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03933YNoneexplicitVkBufferMemoryBarrier2If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03934YNoneexplicitVkBufferMemoryBarrier2If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03935YNoneexplicitVkBufferMemoryBarrier2If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-04957YNoneexplicitVkBufferMemoryBarrier2If the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-dstStageMask-04995YNoneexplicitVkBufferMemoryBarrier2If the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-dstStageMask-07316YNoneexplicitVkBufferMemoryBarrier2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstStageMask-07946YNoneexplicitVkBufferMemoryBarrier2If 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-parameterYNoneimplicitVkBufferMemoryBarrier2dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkBufferMemoryBarrier2-offset-01187YNegativeSyncObject.Sync2BarriersexplicitVkBufferMemoryBarrier2offset must be less than the size of buffer
VUID-VkBufferMemoryBarrier2-pNext-pNextYNoneimplicitVkBufferMemoryBarrier2pNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT
VUID-VkBufferMemoryBarrier2-sType-sTypeYNoneimplicitVkBufferMemoryBarrier2sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2
VUID-VkBufferMemoryBarrier2-sType-uniqueYNoneimplicitVkBufferMemoryBarrier2The sType value of each struct in the pNext chain must be unique
VUID-VkBufferMemoryBarrier2-size-01188YNegativeSyncObject.Sync2BarriersexplicitVkBufferMemoryBarrier2If size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier2-size-01189YNegativeSyncObject.Sync2BarriersexplicitVkBufferMemoryBarrier2If 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-03900YNoneexplicitVkBufferMemoryBarrier2If 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-03901YNoneexplicitVkBufferMemoryBarrier2If 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-03902YNoneexplicitVkBufferMemoryBarrier2If 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-03903YNoneexplicitVkBufferMemoryBarrier2If 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-03904YNoneexplicitVkBufferMemoryBarrier2If 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-03905YNoneexplicitVkBufferMemoryBarrier2If 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-03906YNoneexplicitVkBufferMemoryBarrier2If 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-03907YNoneexplicitVkBufferMemoryBarrier2If 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.Sync2BarriersexplicitVkBufferMemoryBarrier2If 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-03910YNoneexplicitVkBufferMemoryBarrier2If 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-03911YNoneexplicitVkBufferMemoryBarrier2If 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-03912YNoneexplicitVkBufferMemoryBarrier2If 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-03913YNoneexplicitVkBufferMemoryBarrier2If 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-03914YNoneexplicitVkBufferMemoryBarrier2If 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-03915YNoneexplicitVkBufferMemoryBarrier2If 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-03916YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03917YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkBufferMemoryBarrier2If 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-03919YNoneexplicitVkBufferMemoryBarrier2If 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-03920YNoneexplicitVkBufferMemoryBarrier2If 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-03922YNoneexplicitVkBufferMemoryBarrier2If 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-03923YNoneexplicitVkBufferMemoryBarrier2If 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-03924YNoneexplicitVkBufferMemoryBarrier2If 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-03925YNoneexplicitVkBufferMemoryBarrier2If 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-03926YNoneexplicitVkBufferMemoryBarrier2If 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-03927YNoneexplicitVkBufferMemoryBarrier2If 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-03928YNoneexplicitVkBufferMemoryBarrier2If 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-04747YNoneexplicitVkBufferMemoryBarrier2If 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-04858YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04859YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04860YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04861YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkBufferMemoryBarrier2If 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.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkBufferMemoryBarrier2If 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-07272YNoneexplicitVkBufferMemoryBarrier2If 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-07454YNoneexplicitVkBufferMemoryBarrier2If 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-07455YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-srcAccessMask-07456YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-srcAccessMask-07457YNoneexplicitVkBufferMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcAccessMask-07458YNoneexplicitVkBufferMemoryBarrier2If 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-08118YNoneexplicitVkBufferMemoryBarrier2If 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-parameterYNoneimplicitVkBufferMemoryBarrier2srcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087YNoneexplicitVkBufferMemoryBarrier2If 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-09099YNoneexplicitVkBufferMemoryBarrier2If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03851YNegativeSyncObject.BufferBarrierWithHostStageexplicitVkBufferMemoryBarrier2If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-VkBufferMemoryBarrier2-srcStageMask-03929YNoneexplicitVkBufferMemoryBarrier2If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkBufferMemoryBarrier2-srcStageMask-03930YNoneexplicitVkBufferMemoryBarrier2If 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-03931YNoneexplicitVkBufferMemoryBarrier2If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03932YNoneexplicitVkBufferMemoryBarrier2If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03933YNoneexplicitVkBufferMemoryBarrier2If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03934YNoneexplicitVkBufferMemoryBarrier2If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03935YNoneexplicitVkBufferMemoryBarrier2If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-04957YNoneexplicitVkBufferMemoryBarrier2If the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-srcStageMask-04995YNoneexplicitVkBufferMemoryBarrier2If the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-srcStageMask-07316YNoneexplicitVkBufferMemoryBarrier2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcStageMask-07946YNoneexplicitVkBufferMemoryBarrier2If 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-parameterYNoneimplicitVkBufferMemoryBarrier2srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkBufferMemoryRequirementsInfo2-buffer-parameterYNoneimplicitVkBufferMemoryRequirementsInfo2buffer must be a valid VkBuffer handle
VUID-VkBufferMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkBufferMemoryRequirementsInfo2pNext must be NULL
VUID-VkBufferMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkBufferMemoryRequirementsInfo2sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sTypeYNoneimplicitVkBufferOpaqueCaptureAddressCreateInfosType must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
VUID-VkBufferUsageFlags2CreateInfoKHR-sType-sTypeYNoneimplicitVkBufferUsageFlags2CreateInfoKHRsType must be VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR
VUID-VkBufferUsageFlags2CreateInfoKHR-usage-parameterYNoneimplicitVkBufferUsageFlags2CreateInfoKHRusage must be a valid combination of VkBufferUsageFlagBits2KHR values
VUID-VkBufferUsageFlags2CreateInfoKHR-usage-requiredbitmaskYNoneimplicitVkBufferUsageFlags2CreateInfoKHRusage must not be 0
VUID-VkBufferViewCreateInfo-buffer-00932YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfobuffer 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-00935YNegativeBuffer.CreateBufferViewNoMemoryBoundToBufferexplicitVkBufferViewCreateInfoIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferViewCreateInfo-buffer-02750YNegativeBuffer.TexelBufferAlignmentexplicitVkBufferViewCreateInfoIf 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.TexelBufferAlignmentexplicitVkBufferViewCreateInfoIf 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-parameterYNoneimplicitVkBufferViewCreateInfobuffer must be a valid VkBuffer handle
VUID-VkBufferViewCreateInfo-flags-zerobitmaskYNoneimplicitVkBufferViewCreateInfoflags must be 0
VUID-VkBufferViewCreateInfo-format-08778YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfoIf 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.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfoIf 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-parameterYNoneimplicitVkBufferViewCreateInfoformat must be a valid VkFormat value
VUID-VkBufferViewCreateInfo-offset-00925YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfooffset must be less than the size of buffer
VUID-VkBufferViewCreateInfo-offset-00931YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfoIf 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.TexelBufferAlignmentIn12explicitVkBufferViewCreateInfoIf the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment
VUID-VkBufferViewCreateInfo-pNext-06782YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkBufferViewCreateInfoIf 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.BufferUsageFlags2explicitVkBufferViewCreateInfoIf 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.BufferUsageFlags2SubsetexplicitVkBufferViewCreateInfoIf 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-pNextYVkLayerTest.MissingExtensionStructimplicitVkBufferViewCreateInfoEach 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.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfoIf range is not equal to VK_WHOLE_SIZE, range must be greater than 0
VUID-VkBufferViewCreateInfo-range-00929YNegativeBuffer.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfoIf 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.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfoIf 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.BufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfoIf 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-sTypeYNoneimplicitVkBufferViewCreateInfosType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
VUID-VkBufferViewCreateInfo-sType-uniqueYNoneimplicitVkBufferViewCreateInfoThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354YVkLayerTest.GetCalibratedTimestampsQueryexplicitVkCalibratedTimestampInfoKHRtimeDomain must be one of the VkTimeDomainKHR values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsKHR
VUID-VkCalibratedTimestampInfoKHR-pNext-pNextYNoneimplicitVkCalibratedTimestampInfoKHRpNext must be NULL
VUID-VkCalibratedTimestampInfoKHR-sType-sTypeYNoneimplicitVkCalibratedTimestampInfoKHRsType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
VUID-VkCalibratedTimestampInfoKHR-timeDomain-parameterYNoneimplicitVkCalibratedTimestampInfoKHRtimeDomain must be a valid VkTimeDomainKHR value
VUID-VkCheckpointData2NV-pNext-pNextYNoneimplicitVkCheckpointData2NVpNext must be NULL
VUID-VkCheckpointData2NV-sType-sTypeYNoneimplicitVkCheckpointData2NVsType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
VUID-VkCheckpointDataNV-pNext-pNextYNoneimplicitVkCheckpointDataNVpNext must be NULL
VUID-VkCheckpointDataNV-sType-sTypeYNoneimplicitVkCheckpointDataNVsType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
VUID-VkClearAttachment-aspectMask-00019YNegativeDynamicRendering.ClearAttachmentsexplicitVkClearAttachmentIf 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.ClearAttachmentsAspectMasksexplicitVkClearAttachmentaspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkClearAttachment-aspectMask-02246YNegativeCommand.ClearAttachmentsAspectMasksexplicitVkClearAttachmentaspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkClearAttachment-aspectMask-parameterYNegativeCommand.ClearAttachmentsImplicitCheckimplicitVkClearAttachmentaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkClearAttachment-aspectMask-requiredbitmaskYNegativeCommand.ClearAttachmentsImplicitCheckimplicitVkClearAttachmentaspectMask must not be 0
VUID-VkClearDepthStencilValue-depth-00022YNegativeCommand.ClearDepthRangeUnrestrictedexplicitVkClearDepthStencilValueUnless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive
VUID-VkCoarseSampleLocationNV-pixelX-02078YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleLocationNVpixelX must be less than the width (in pixels) of the fragment
VUID-VkCoarseSampleLocationNV-pixelY-02079YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleLocationNVpixelY must be less than the height (in pixels) of the fragment
VUID-VkCoarseSampleLocationNV-sample-02080YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleLocationNVsample must be less than the number of coverage samples in each pixel belonging to the fragment
VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVThe 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-parameterYNoneimplicitVkCoarseSampleOrderCustomNVpSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures
VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVsampleCount must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVsampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVsampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylengthYNoneimplicitVkCoarseSampleOrderCustomNVsampleLocationCount must be greater than 0
VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkCoarseSampleOrderCustomNVshadingRate must be a shading rate that generates fragments with more than one pixel
VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameterYNoneimplicitVkCoarseSampleOrderCustomNVshadingRate must be a valid VkShadingRatePaletteEntryNV value
VUID-VkColorBlendAdvancedEXT-advancedBlendOp-parameterYNoneimplicitVkColorBlendAdvancedEXTadvancedBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendAdvancedEXT-blendOverlap-07507YNegativeDynamicState.DrawNotSetColorBlendAdvancedexplicitVkColorBlendAdvancedEXTIf the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT
VUID-VkColorBlendAdvancedEXT-blendOverlap-parameterYNoneimplicitVkColorBlendAdvancedEXTblendOverlap must be a valid VkBlendOverlapEXT value
VUID-VkColorBlendAdvancedEXT-dstPremultiplied-07506YNegativeDynamicState.DrawNotSetColorBlendAdvancedexplicitVkColorBlendAdvancedEXTIf the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE
VUID-VkColorBlendAdvancedEXT-srcPremultiplied-07505YNegativeDynamicState.DrawNotSetColorBlendAdvancedexplicitVkColorBlendAdvancedEXTIf the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE
VUID-VkColorBlendEquationEXT-alphaBlendOp-parameterYNoneimplicitVkColorBlendEquationEXTalphaBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendEquationEXT-colorBlendOp-07361YNegativeDynamicState.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTcolorBlendOp 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-parameterYNoneimplicitVkColorBlendEquationEXTcolorBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07362YVkPortabilitySubsetTest.PortabilitySubsetColorBlendFactorexplicitVkColorBlendEquationEXTIf 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.PortabilitySubsetColorBlendFactorexplicitVkColorBlendEquationEXTIf 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-parameterYNoneimplicitVkColorBlendEquationEXTdstAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameterYNoneimplicitVkColorBlendEquationEXTdstColorBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-dualSrcBlend-07357YNegativeDynamicState.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTIf 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.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTIf 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.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTIf 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.DrawNotSetColorBlendEquationexplicitVkColorBlendEquationEXTIf 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-parameterYNoneimplicitVkColorBlendEquationEXTsrcAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameterYNoneimplicitVkColorBlendEquationEXTsrcColorBlendFactor must be a valid VkBlendFactor value
VUID-VkCommandBufferAllocateInfo-commandPool-parameterYNoneimplicitVkCommandBufferAllocateInfocommandPool must be a valid VkCommandPool handle
VUID-VkCommandBufferAllocateInfo-level-parameterYNoneimplicitVkCommandBufferAllocateInfolevel must be a valid VkCommandBufferLevel value
VUID-VkCommandBufferAllocateInfo-pNext-pNextYNoneimplicitVkCommandBufferAllocateInfopNext must be NULL
VUID-VkCommandBufferAllocateInfo-sType-sTypeYNoneimplicitVkCommandBufferAllocateInfosType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
VUID-VkCommandBufferBeginInfo-flags-00055YNegativeRenderPass.FramebufferIncompatibleNoHandle, NegativeRenderPass.IncompatibleFramebufferexplicitVkCommandBufferBeginInfoIf 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.SecondaryCommandBufferexplicitVkCommandBufferBeginInfoIf 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.SecondaryCommandBufferexplicitVkCommandBufferBeginInfoIf 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.SecondaryCommandBuffer, NegativeImagelessFramebuffer.MissingInheritanceRenderingInfoexplicitVkCommandBufferBeginInfoIf 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-06003YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferBeginInfoIf 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.RenderPassContinueNotSupportedByCommandPoolexplicitVkCommandBufferBeginInfoIf 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.BufferBeginInfoLegacy, NegativeImagelessFramebuffer.MissingInheritanceRenderingInfoexplicitVkCommandBufferBeginInfoIf 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-parameterYNoneimplicitVkCommandBufferBeginInfoflags must be a valid combination of VkCommandBufferUsageFlagBits values
VUID-VkCommandBufferBeginInfo-pNext-pNextYNoneimplicitVkCommandBufferBeginInfopNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo
VUID-VkCommandBufferBeginInfo-sType-sTypeYNoneimplicitVkCommandBufferBeginInfosType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
VUID-VkCommandBufferBeginInfo-sType-uniqueYNoneimplicitVkCommandBufferBeginInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977YNoneexplicitVkCommandBufferInheritanceConditionalRenderingInfoEXTIf the inheritedConditionalRendering feature is not enabled, conditionalRenderingEnable must be VK_FALSE
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sTypeYNoneimplicitVkCommandBufferInheritanceConditionalRenderingInfoEXTsType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
VUID-VkCommandBufferInheritanceInfo-commonparentYNoneimplicitVkCommandBufferInheritanceInfoBoth 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-00056YNoneexplicitVkCommandBufferInheritanceInfoIf the inheritedQueries feature is not enabled, occlusionQueryEnable must be VK_FALSE
VUID-VkCommandBufferInheritanceInfo-pNext-pNextYNoneimplicitVkCommandBufferInheritanceInfoEach 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, VkMultiviewPerViewAttributesInfoNVX, VkRenderingAttachmentLocationInfoKHR, or VkRenderingInputAttachmentIndexInfoKHR
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058YNoneexplicitVkCommandBufferInheritanceInfoIf the pipelineStatisticsQuery feature is not enabled, pipelineStatistics must be 0
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789YNoneexplicitVkCommandBufferInheritanceInfoIf the pipelineStatisticsQuery feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values
VUID-VkCommandBufferInheritanceInfo-queryFlags-00057YNoneexplicitVkCommandBufferInheritanceInfoIf the inheritedQueries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values
VUID-VkCommandBufferInheritanceInfo-queryFlags-02788YNoneexplicitVkCommandBufferInheritanceInfoIf the inheritedQueries feature is not enabled, queryFlags must be 0
VUID-VkCommandBufferInheritanceInfo-sType-sTypeYNoneimplicitVkCommandBufferInheritanceInfosType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
VUID-VkCommandBufferInheritanceInfo-sType-uniqueYNoneimplicitVkCommandBufferInheritanceInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sTypeYNoneimplicitVkCommandBufferInheritanceRenderPassTransformInfoQCOMsType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864NNoneexplicitVkCommandBufferInheritanceRenderPassTransformInfoQCOMtransform 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-06004YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoIf colorAttachmentCount is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoIf 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-06200YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoIf depthAttachmentFormat is not VK_FORMAT_UNDEFINED and stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540YNegativeDynamicRendering.CommandBufferInheritanceDepthFormat, NegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoIf depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth component
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfodepthAttachmentFormat must be a valid VkFormat value
VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfoflags must be a valid combination of VkRenderingFlagBits values
VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoIf the multiview feature is not enabled, viewMask must be 0
VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06492YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoIf 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-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfoIf colorAttachmentCount is not 0, pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values
VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfoIf rasterizationSamples is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-sType-sTypeYNoneimplicitVkCommandBufferInheritanceRenderingInfosType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoIf 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.CommandBufferInheritanceRenderingInfo, NegativeDynamicRendering.InheritanceRenderingInfoStencilAttachmentFormatexplicitVkCommandBufferInheritanceRenderingInfoIf stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil aspect
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfostencilAttachmentFormat must be a valid VkFormat value
VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoIf the variableMultisampleRate feature is not enabled, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009YNegativeDynamicRendering.CommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfoThe index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sTypeYNoneimplicitVkCommandBufferInheritanceViewportScissorInfoNVsType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782YNegativeViewportInheritance.MissingFeatureexplicitVkCommandBufferInheritanceViewportScissorInfoNVIf the inheritedViewportScissor2D feature is not enabled, viewportScissor2D must be VK_FALSE
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783YNegativeViewportInheritance.ScissorMissingFeatureexplicitVkCommandBufferInheritanceViewportScissorInfoNVIf the multiViewport feature is not enabled and viewportScissor2D is VK_TRUE, then viewportDepthCount must be 1
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784YNegativeViewportInheritance.BasicUsageexplicitVkCommandBufferInheritanceViewportScissorInfoNVIf viewportScissor2D is VK_TRUE, then viewportDepthCount must be greater than 0
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785NNoneexplicitVkCommandBufferInheritanceViewportScissorInfoNVIf 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.BasicUsageexplicitVkCommandBufferInheritanceViewportScissorInfoNVIf viewportScissor2D is VK_TRUE, then the command buffer must be recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
VUID-VkCommandBufferSubmitInfo-commandBuffer-03890YNegativeSecondaryCommandBuffer.Sync2AsPrimaryexplicitVkCommandBufferSubmitInfocommandBuffer must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-VkCommandBufferSubmitInfo-commandBuffer-09445YNegativeDynamicRendering.RenderPassStripeInfoQueueSubmit2, NegativeRenderPass.RenderPassWithRenderPassStripedQueueSubmit2explicitVkCommandBufferSubmitInfoIf any render pass instance in commandBuffer was recorded with a VkRenderPassStripeBeginInfoARM structure in its pNext chain and did not specify the VK_RENDERING_RESUMING_BIT flag, a VkRenderPassStripeSubmitInfoARM must be included in the pNext chain
VUID-VkCommandBufferSubmitInfo-commandBuffer-parameterYNoneimplicitVkCommandBufferSubmitInfocommandBuffer must be a valid VkCommandBuffer handle
VUID-VkCommandBufferSubmitInfo-deviceMask-03891YNoneexplicitVkCommandBufferSubmitInfoIf deviceMask is not 0, it must be a valid device mask
VUID-VkCommandBufferSubmitInfo-pNext-09446YNegativeDynamicRendering.RenderPassStripeInfoQueueSubmit2, NegativeRenderPass.RenderPassWithRenderPassStripedQueueSubmit2explicitVkCommandBufferSubmitInfoIf 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 that did not specify the VK_RENDERING_RESUMING_BIT flag
VUID-VkCommandBufferSubmitInfo-pNext-pNextYNoneimplicitVkCommandBufferSubmitInfopNext must be NULL or a pointer to a valid instance of VkRenderPassStripeSubmitInfoARM
VUID-VkCommandBufferSubmitInfo-sType-sTypeYNoneimplicitVkCommandBufferSubmitInfosType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO
VUID-VkCommandBufferSubmitInfo-sType-uniqueYNoneimplicitVkCommandBufferSubmitInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandPoolCreateInfo-flags-02860YNegativeProtectedMemory.SubmitexplicitVkCommandPoolCreateInfoIf the protectedMemory feature is not enabled, the VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of flags must not be set
VUID-VkCommandPoolCreateInfo-flags-parameterYNoneimplicitVkCommandPoolCreateInfoflags must be a valid combination of VkCommandPoolCreateFlagBits values
VUID-VkCommandPoolCreateInfo-pNext-pNextYVkLayerTest.InvalidStructPNextimplicitVkCommandPoolCreateInfopNext must be NULL
VUID-VkCommandPoolCreateInfo-sType-sTypeYNoneimplicitVkCommandPoolCreateInfosType must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
VUID-VkComponentMapping-a-parameterYNoneimplicitVkComponentMappinga must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-b-parameterYNoneimplicitVkComponentMappingb must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-g-parameterYNoneimplicitVkComponentMappingg must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-r-parameterYNoneimplicitVkComponentMappingr must be a valid VkComponentSwizzle value
VUID-VkComputePipelineCreateInfo-None-09497YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkComputePipelineCreateInfo-commonparentYNoneimplicitVkComputePipelineCreateInfoBoth 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.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03366YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03367YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03368YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03369YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03370YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03576YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-04945YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-07367YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkComputePipelineCreateInfo-flags-07984YNoneexplicitVkComputePipelineCreateInfoIf 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.CreateComputePipelineWithBadBasePointerexplicitVkComputePipelineCreateInfoIf 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.CreateComputePipelineWithDerivativesexplicitVkComputePipelineCreateInfoIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkComputePipelineCreateInfo-flags-07996YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-09007YNoneexplicitVkComputePipelineCreateInfoIf the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines is not enabled, flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-09008NNoneexplicitVkComputePipelineCreateInfoIf 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-09178NNoneexplicitVkComputePipelineCreateInfoIf flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the shader specified by stage must not declare the ShaderEnqueueAMDX capability
VUID-VkComputePipelineCreateInfo-flags-11007YNoneexplicitVkComputePipelineCreateInfoIf flags includes VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the deviceGeneratedCommands feature must be enabled
VUID-VkComputePipelineCreateInfo-layout-01687YNegativePipeline.MaxPerStageResourcesexplicitVkComputePipelineCreateInfoThe number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources
VUID-VkComputePipelineCreateInfo-layout-07987YNoneexplicitVkComputePipelineCreateInfoIf a push constant block is declared in a shader, a push constant range in layout must match the shader stage
VUID-VkComputePipelineCreateInfo-layout-07988YNegativePipelineLayout.MissingDescriptorexplicitVkComputePipelineCreateInfoIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkComputePipelineCreateInfo-layout-07990YNegativePipelineLayout.DescriptorTypeMismatchComputeexplicitVkComputePipelineCreateInfoIf 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-07991YNoneexplicitVkComputePipelineCreateInfoIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkComputePipelineCreateInfo-layout-10069NNoneexplicitVkComputePipelineCreateInfoIf a push constant block is declared in a shader, the block must be contained inside the push constant range in layout that matches the stage
VUID-VkComputePipelineCreateInfo-layout-parameterYNoneimplicitVkComputePipelineCreateInfolayout must be a valid VkPipelineLayout handle
VUID-VkComputePipelineCreateInfo-pNext-pNextYNoneimplicitVkComputePipelineCreateInfoEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkComputePipelineIndirectBufferInfoNV, VkPipelineBinaryInfoKHR, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineRobustnessCreateInfoEXT, or VkSubpassShadingPipelineCreateInfoHUAWEI
VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875YNegativePipeline.PipelineCreationCacheControl, NegativePipeline.PipelineCreationFlags2CacheControlexplicitVkComputePipelineCreateInfoIf 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.CreationFeedbackCountComputeexplicitVkComputePipelineCreateInfoIf VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be 1
VUID-VkComputePipelineCreateInfo-sType-sTypeYNoneimplicitVkComputePipelineCreateInfosType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
VUID-VkComputePipelineCreateInfo-sType-uniqueYNoneimplicitVkComputePipelineCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177YNegativePipeline.CreateFlagsComputeexplicitVkComputePipelineCreateInfoIf shaderEnqueue is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkComputePipelineCreateInfo-stage-00701YNegativePipeline.ShaderStageBitexplicitVkComputePipelineCreateInfoThe stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkComputePipelineCreateInfo-stage-00702NNoneexplicitVkComputePipelineCreateInfoThe 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-parameterYNoneimplicitVkComputePipelineCreateInfostage must be a valid VkPipelineShaderStageCreateInfo structure
VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09011NNoneexplicitVkComputePipelineIndirectBufferInfoNVdeviceAddress must be aligned to the VkMemoryRequirements2::alignment, as returned by vkGetPipelineIndirectMemoryRequirementsNV
VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09012NNoneexplicitVkComputePipelineIndirectBufferInfoNVdeviceAddress 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-09009NNoneexplicitVkComputePipelineIndirectBufferInfoNVThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-VkComputePipelineIndirectBufferInfoNV-flags-09010NNoneexplicitVkComputePipelineIndirectBufferInfoNVThe pipeline creation flags in VkComputePipelineCreateInfo::flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09014NNoneexplicitVkComputePipelineIndirectBufferInfoNVIf pipelineDeviceAddressCaptureReplay is non-zero then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputeCaptureReplay feature must be enabled
VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09015NNoneexplicitVkComputePipelineIndirectBufferInfoNVIf 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-09016NNoneexplicitVkComputePipelineIndirectBufferInfoNVIf pipelineDeviceAddressCaptureReplay is non-zero, the pipeline must have been recreated for replay
VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09017NNoneexplicitVkComputePipelineIndirectBufferInfoNVpipelineDeviceAddressCaptureReplay must satisfy the alignment and size requirements similar to deviceAddress
VUID-VkComputePipelineIndirectBufferInfoNV-sType-sTypeYNoneimplicitVkComputePipelineIndirectBufferInfoNVsType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV
VUID-VkComputePipelineIndirectBufferInfoNV-size-09013NNoneexplicitVkComputePipelineIndirectBufferInfoNVsize must be greater than or equal to the VkMemoryRequirements2::size, as returned by vkGetPipelineIndirectMemoryRequirementsNV
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981YNoneexplicitVkConditionalRenderingBeginInfoEXTIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982YNegativeBuffer.ConditionalRenderingBufferUsageexplicitVkConditionalRenderingBeginInfoEXTbuffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set
VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameterYNoneimplicitVkConditionalRenderingBeginInfoEXTbuffer must be a valid VkBuffer handle
VUID-VkConditionalRenderingBeginInfoEXT-flags-parameterYNoneimplicitVkConditionalRenderingBeginInfoEXTflags must be a valid combination of VkConditionalRenderingFlagBitsEXT values
VUID-VkConditionalRenderingBeginInfoEXT-offset-01983YNegativeBuffer.ConditionalRenderingOffsetexplicitVkConditionalRenderingBeginInfoEXToffset must be less than the size of buffer by at least 32 bits
VUID-VkConditionalRenderingBeginInfoEXT-offset-01984YNegativeBuffer.ConditionalRenderingOffsetexplicitVkConditionalRenderingBeginInfoEXToffset must be a multiple of 4
VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNextYNoneimplicitVkConditionalRenderingBeginInfoEXTpNext must be NULL
VUID-VkConditionalRenderingBeginInfoEXT-sType-sTypeYNoneimplicitVkConditionalRenderingBeginInfoEXTsType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
VUID-VkCooperativeMatrixPropertiesKHR-pNext-pNextYNoneimplicitVkCooperativeMatrixPropertiesKHRpNext must be NULL
VUID-VkCooperativeMatrixPropertiesKHR-sType-sTypeYNoneimplicitVkCooperativeMatrixPropertiesKHRsType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR
VUID-VkCooperativeMatrixPropertiesNV-pNext-pNextYNoneimplicitVkCooperativeMatrixPropertiesNVpNext must be NULL
VUID-VkCooperativeMatrixPropertiesNV-sType-sTypeYNoneimplicitVkCooperativeMatrixPropertiesNVsType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHRThe buffer used to create src must be bound to device memory
VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHRThe buffer used to create dst must be bound to device memory
VUID-VkCopyAccelerationStructureInfoKHR-commonparentYNoneimplicitVkCopyAccelerationStructureInfoKHRBoth of dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyAccelerationStructureInfoKHR-dst-07791YNegativeRayTracing.CopyAccelerationStructureOverlappingMemoryexplicitVkCopyAccelerationStructureInfoKHRThe 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-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHRdst must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyAccelerationStructureInfoKHR-mode-03410YNoneexplicitVkCopyAccelerationStructureInfoKHRmode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
VUID-VkCopyAccelerationStructureInfoKHR-mode-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHRmode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNextYNoneimplicitVkCopyAccelerationStructureInfoKHRpNext must be NULL
VUID-VkCopyAccelerationStructureInfoKHR-sType-sTypeYNoneimplicitVkCopyAccelerationStructureInfoKHRsType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
VUID-VkCopyAccelerationStructureInfoKHR-src-03411YNoneexplicitVkCopyAccelerationStructureInfoKHRIf 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-04963YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyAccelerationStructureNoHostMem, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHRThe source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyAccelerationStructureInfoKHR-src-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHRsrc must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561NNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHRThe 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-03412YNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHRmode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHRmode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNextYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHRpNext must be NULL
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sTypeYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHRsType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959YNegativeRayTracing.CmdCopyAccelerationStructureToMemoryKHR, NegativeRayTracing.CopyAccelerationStructureToMemoryKHRexplicitVkCopyAccelerationStructureToMemoryInfoKHRThe source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHRsrc must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyBufferInfo2-commonparentYNoneimplicitVkCopyBufferInfo2Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferInfo2-dstBuffer-00120YNoneexplicitVkCopyBufferInfo2dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferInfo2-dstBuffer-00121YNoneexplicitVkCopyBufferInfo2If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2-dstBuffer-parameterYNoneimplicitVkCopyBufferInfo2dstBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2-dstOffset-00114YNegativeCopyBufferImage.ExtentsexplicitVkCopyBufferInfo2The dstOffset member of each element of pRegions must be less than the size of dstBuffer
VUID-VkCopyBufferInfo2-pNext-pNextYNoneimplicitVkCopyBufferInfo2pNext must be NULL
VUID-VkCopyBufferInfo2-pRegions-00117YNoneexplicitVkCopyBufferInfo2The 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-parameterYNoneimplicitVkCopyBufferInfo2pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2 structures
VUID-VkCopyBufferInfo2-regionCount-arraylengthYNoneimplicitVkCopyBufferInfo2regionCount must be greater than 0
VUID-VkCopyBufferInfo2-sType-sTypeYNoneimplicitVkCopyBufferInfo2sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2
VUID-VkCopyBufferInfo2-size-00115YNegativeCopyBufferImage.ExtentsexplicitVkCopyBufferInfo2The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset
VUID-VkCopyBufferInfo2-size-00116YNegativeCopyBufferImage.ExtentsexplicitVkCopyBufferInfo2The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset
VUID-VkCopyBufferInfo2-srcBuffer-00118YNegativeCopyBufferImage.CopyCommands2V13explicitVkCopyBufferInfo2srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferInfo2-srcBuffer-00119YNoneexplicitVkCopyBufferInfo2If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2-srcBuffer-parameterYNoneimplicitVkCopyBufferInfo2srcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2-srcOffset-00113YNegativeCopyBufferImage.ExtentsexplicitVkCopyBufferInfo2The srcOffset member of each element of pRegions must be less than the size of srcBuffer
VUID-VkCopyBufferToImageInfo2-bufferImageHeight-09107YNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-bufferRowLength-09106YNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-bufferRowLength-09108YNoneexplicitVkCopyBufferToImageInfo2For 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-commonparentYNoneimplicitVkCopyBufferToImageInfo2Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferToImageInfo2-dstImage-00177YNegativeCopyBufferImage.CopyCommands2V13, NegativeImage.UsageBitsexplicitVkCopyBufferToImageInfo2dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferToImageInfo2-dstImage-00207YNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-00208YNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-00209YNoneexplicitVkCopyBufferToImageInfo2For 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-01997YNoneexplicitVkCopyBufferToImageInfo2The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkCopyBufferToImageInfo2-dstImage-07274YNegativeCopyBufferImage.CompressedImageMipexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-07275YNegativeCopyBufferImage.CompressedImageMipexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-07276YNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-dstImage-07966YNoneexplicitVkCopyBufferToImageInfo2If 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-07969YNoneexplicitVkCopyBufferToImageInfo2dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyBufferToImageInfo2-dstImage-07973YNoneexplicitVkCopyBufferToImageInfo2dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyBufferToImageInfo2-dstImage-07975YNoneexplicitVkCopyBufferToImageInfo2If 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-07976YNoneexplicitVkCopyBufferToImageInfo2If 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-07978YNoneexplicitVkCopyBufferToImageInfo2If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyBufferToImageInfo2-dstImage-07979YNoneexplicitVkCopyBufferToImageInfo2If 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-07980YNoneexplicitVkCopyBufferToImageInfo2If 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-07981YNoneexplicitVkCopyBufferToImageInfo2If 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-07983YNoneexplicitVkCopyBufferToImageInfo2If 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-parameterYNoneimplicitVkCopyBufferToImageInfo2dstImage must be a valid VkImage handle
VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180YNoneexplicitVkCopyBufferToImageInfo2dstImageLayout 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-01396YNoneexplicitVkCopyBufferToImageInfo2dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameterYNoneimplicitVkCopyBufferToImageInfo2dstImageLayout must be a valid VkImageLayout value
VUID-VkCopyBufferToImageInfo2-imageOffset-09104YNoneexplicitVkCopyBufferToImageInfo2For 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-imageOffset-10051NNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, and imageOffset.x does not equal the width of the subresource specified by imageSubresource, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-10052NNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, and imageOffset.y does not equal the height of the subresource specified by imageSubresource, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-10053NNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference of imageOffset.x and extent.height must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-10054NNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.x and extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-10055NNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum of imageOffset.x and extent.height does not equal the width of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-10056NNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum of imageOffset.y and extent.width does not equal the height of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-10057NNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.y and extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-10058NNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference of imageOffset.y and extent.width must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyBufferToImageInfo2-imageSubresource-07967YNoneexplicitVkCopyBufferToImageInfo2The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyBufferToImageInfo2-imageSubresource-07968YNoneexplicitVkCopyBufferToImageInfo2If 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-09105YNoneexplicitVkCopyBufferToImageInfo2For each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyBufferToImageInfo2-pNext-pNextYNoneimplicitVkCopyBufferToImageInfo2pNext must be NULL
VUID-VkCopyBufferToImageInfo2-pRegions-00171YNoneexplicitVkCopyBufferToImageInfo2srcBuffer 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-00173YNoneexplicitVkCopyBufferToImageInfo2The 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-04565YNoneexplicitVkCopyBufferToImageInfo2The 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-06223YNoneexplicitVkCopyBufferToImageInfo2For 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-06224YNoneexplicitVkCopyBufferToImageInfo2For 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-07931NNoneexplicitVkCopyBufferToImageInfo2If 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-parameterYNoneimplicitVkCopyBufferToImageInfo2pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures
VUID-VkCopyBufferToImageInfo2-regionCount-arraylengthYNoneimplicitVkCopyBufferToImageInfo2regionCount must be greater than 0
VUID-VkCopyBufferToImageInfo2-sType-sTypeYNoneimplicitVkCopyBufferToImageInfo2sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2
VUID-VkCopyBufferToImageInfo2-srcBuffer-00174YNegativeImage.UsageBitsexplicitVkCopyBufferToImageInfo2srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferToImageInfo2-srcBuffer-00176YNoneexplicitVkCopyBufferToImageInfo2If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2-srcBuffer-parameterYNoneimplicitVkCopyBufferToImageInfo2srcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554NNoneexplicitVkCopyBufferToImageInfo2If 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-04555NNoneexplicitVkCopyBufferToImageInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must have a 1x1x1 texel block extent
VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203NNoneexplicitVkCopyBufferToImageInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must be of type VK_IMAGE_TYPE_2D
VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204NNoneexplicitVkCopyBufferToImageInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must not have a multi-planar format
VUID-VkCopyCommandTransformInfoQCOM-sType-sTypeYNoneimplicitVkCopyCommandTransformInfoQCOMsType must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
VUID-VkCopyCommandTransformInfoQCOM-transform-04560NNoneexplicitVkCopyCommandTransformInfoQCOMtransform 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-commonparentYNoneimplicitVkCopyDescriptorSetBoth of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyDescriptorSet-dstArrayElement-00348YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetThe 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.CopyDescriptorUpdateexplicitVkCopyDescriptorSetdstBinding must be a valid binding within dstSet
VUID-VkCopyDescriptorSet-dstBinding-02224YNegativeDescriptors.InlineUniformBlockEXTexplicitVkCopyDescriptorSetIf 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.CopyDescriptorUpdateexplicitVkCopyDescriptorSetThe type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet
VUID-VkCopyDescriptorSet-dstBinding-02753YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetIf 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.CopyMutableDescriptorsexplicitVkCopyDescriptorSetIf 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.CopyMutableDescriptorsexplicitVkCopyDescriptorSetIf 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.UpdateDestroyDescriptorSetLayoutimplicitVkCopyDescriptorSetdstSet must be a valid VkDescriptorSet handle
VUID-VkCopyDescriptorSet-pNext-pNextYNoneimplicitVkCopyDescriptorSetpNext must be NULL
VUID-VkCopyDescriptorSet-sType-sTypeYNoneimplicitVkCopyDescriptorSetsType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
VUID-VkCopyDescriptorSet-srcArrayElement-00346YNegativeDescriptors.CopyDescriptorUpdateexplicitVkCopyDescriptorSetThe 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.CopyDescriptorUpdateexplicitVkCopyDescriptorSetsrcBinding must be a valid binding within srcSet
VUID-VkCopyDescriptorSet-srcBinding-02223YNegativeDescriptors.InlineUniformBlockEXTexplicitVkCopyDescriptorSetIf 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.InlineUniformBlockEXTexplicitVkCopyDescriptorSetIf 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-00349YNoneexplicitVkCopyDescriptorSetIf 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.CopyDescriptorSetMissingSrcFlagexplicitVkCopyDescriptorSetIf 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.CopyDescriptorSetMissingSrcFlagexplicitVkCopyDescriptorSetIf 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.CopyMutableDescriptorsexplicitVkCopyDescriptorSetIf 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-04885YNoneexplicitVkCopyDescriptorSetIf 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-04887YNoneexplicitVkCopyDescriptorSetIf 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.UpdateDestroyDescriptorSetLayoutimplicitVkCopyDescriptorSetsrcSet must be a valid VkDescriptorSet handle
VUID-VkCopyImageInfo2-None-01549YNoneexplicitVkCopyImageInfo2In 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-07932YNoneexplicitVkCopyImageInfo2If 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-07933YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitVkCopyImageInfo2If 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-08969YNoneexplicitVkCopyImageInfo2If 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-06662YNoneexplicitVkCopyImageInfo2If 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-06663YNoneexplicitVkCopyImageInfo2If 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-06664YNoneexplicitVkCopyImageInfo2If 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-06665YNoneexplicitVkCopyImageInfo2If 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-00142YNoneexplicitVkCopyImageInfo2For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageInfo2-aspectMask-00143YNoneexplicitVkCopyImageInfo2For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyImageInfo2-commonparentYNoneimplicitVkCopyImageInfo2Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageInfo2-dstImage-00152YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitVkCopyImageInfo2If 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-01557YNoneexplicitVkCopyImageInfo2If 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-01732YNoneexplicitVkCopyImageInfo2For 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-01733YNoneexplicitVkCopyImageInfo2For 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-01734YNoneexplicitVkCopyImageInfo2For 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-01786YNoneexplicitVkCopyImageInfo2If 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-01788YNoneexplicitVkCopyImageInfo2If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0
VUID-VkCopyImageInfo2-dstImage-01792YNoneexplicitVkCopyImageInfo2If 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-01996YNoneexplicitVkCopyImageInfo2The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkCopyImageInfo2-dstImage-04444YNoneexplicitVkCopyImageInfo2If 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-07966YNegativeCopyBufferImage.ImageMemoryexplicitVkCopyImageInfo2If 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-07969YNoneexplicitVkCopyImageInfo2dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageInfo2-dstImage-08714YNoneexplicitVkCopyImageInfo2If 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-parameterYNoneimplicitVkCopyImageInfo2dstImage must be a valid VkImage handle
VUID-VkCopyImageInfo2-dstImageLayout-00133YNegativeImage.ImageLayoutexplicitVkCopyImageInfo2dstImageLayout 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.ImageLayoutexplicitVkCopyImageInfo2dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2-dstImageLayout-parameterYNoneimplicitVkCopyImageInfo2dstImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2-dstOffset-00150YNoneexplicitVkCopyImageInfo2For 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-00151YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitVkCopyImageInfo2For 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-00153YNoneexplicitVkCopyImageInfo2If 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-01784YNoneexplicitVkCopyImageInfo2The 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-07967YNoneexplicitVkCopyImageInfo2The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyImageInfo2-dstSubresource-07968YNoneexplicitVkCopyImageInfo2If 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-pNextYNoneimplicitVkCopyImageInfo2pNext must be NULL
VUID-VkCopyImageInfo2-pRegions-00124YNoneexplicitVkCopyImageInfo2The 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-07278YNoneexplicitVkCopyImageInfo2For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07279YNoneexplicitVkCopyImageInfo2For each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07280YNoneexplicitVkCopyImageInfo2For each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07281YNoneexplicitVkCopyImageInfo2For each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-07282YNoneexplicitVkCopyImageInfo2For each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-07283YNoneexplicitVkCopyImageInfo2For each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-parameterYNoneimplicitVkCopyImageInfo2pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures
VUID-VkCopyImageInfo2-regionCount-arraylengthYNoneimplicitVkCopyImageInfo2regionCount must be greater than 0
VUID-VkCopyImageInfo2-sType-sTypeYNoneimplicitVkCopyImageInfo2sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2
VUID-VkCopyImageInfo2-srcImage-00136YNoneexplicitVkCopyImageInfo2The sample count of srcImage and dstImage must match
VUID-VkCopyImageInfo2-srcImage-00146YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitVkCopyImageInfo2If 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-01548YNoneexplicitVkCopyImageInfo2If 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-01551YNoneexplicitVkCopyImageInfo2If 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-01556YNoneexplicitVkCopyImageInfo2If 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-01728YNoneexplicitVkCopyImageInfo2For 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-01729YNoneexplicitVkCopyImageInfo2For 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-01730YNoneexplicitVkCopyImageInfo2For 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-01785YNoneexplicitVkCopyImageInfo2If 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-01787YNoneexplicitVkCopyImageInfo2If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0
VUID-VkCopyImageInfo2-srcImage-01790YNoneexplicitVkCopyImageInfo2If 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-01791YNoneexplicitVkCopyImageInfo2If 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-01995YNoneexplicitVkCopyImageInfo2The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkCopyImageInfo2-srcImage-04443YNoneexplicitVkCopyImageInfo2If 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-07743YNoneexplicitVkCopyImageInfo2If 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-07966YNegativeCopyBufferImage.ImageMemoryexplicitVkCopyImageInfo2If 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-07969YNoneexplicitVkCopyImageInfo2srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageInfo2-srcImage-08713YNoneexplicitVkCopyImageInfo2If 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-08793YNoneexplicitVkCopyImageInfo2If 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-08794YNoneexplicitVkCopyImageInfo2If 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-09247YNoneexplicitVkCopyImageInfo2If 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-09460YNoneexplicitVkCopyImageInfo2If 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-parameterYNoneimplicitVkCopyImageInfo2srcImage must be a valid VkImage handle
VUID-VkCopyImageInfo2-srcImageLayout-00128YNegativeImage.ImageLayoutexplicitVkCopyImageInfo2srcImageLayout 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.ImageLayoutexplicitVkCopyImageInfo2srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2-srcImageLayout-parameterYNoneimplicitVkCopyImageInfo2srcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2-srcOffset-00144YNoneexplicitVkCopyImageInfo2For 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-00145YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitVkCopyImageInfo2For 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-00147YNoneexplicitVkCopyImageInfo2If 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-01783YNoneexplicitVkCopyImageInfo2The 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-07967YNoneexplicitVkCopyImageInfo2The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageInfo2-srcSubresource-07968YNoneexplicitVkCopyImageInfo2If 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-09107YNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-bufferRowLength-09106YNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-bufferRowLength-09108YNoneexplicitVkCopyImageToBufferInfo2For 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-commonparentYNoneimplicitVkCopyImageToBufferInfo2Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageToBufferInfo2-dstBuffer-00191YNegativeCopyBufferImage.CopyCommands2V13explicitVkCopyImageToBufferInfo2dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyImageToBufferInfo2-dstBuffer-00192YNoneexplicitVkCopyImageToBufferInfo2If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2-dstBuffer-parameterYNoneimplicitVkCopyImageToBufferInfo2dstBuffer must be a valid VkBuffer handle
VUID-VkCopyImageToBufferInfo2-imageOffset-00197YNoneexplicitVkCopyImageToBufferInfo2For 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-00198YNoneexplicitVkCopyImageToBufferInfo2For 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-09104YNoneexplicitVkCopyImageToBufferInfo2For 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-imageOffset-10051NNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, and imageOffset.x does not equal the width of the subresource specified by imageSubresource, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-10052NNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, and imageOffset.y does not equal the height of the subresource specified by imageSubresource, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-10053NNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference of imageOffset.x and extent.height must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-10054NNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.x and extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-10055NNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum of imageOffset.x and extent.height does not equal the width of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-10056NNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum of imageOffset.y and extent.width does not equal the height of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-10057NNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.y and extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-10058NNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference of imageOffset.y and extent.width must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-imageSubresource-07967YNoneexplicitVkCopyImageToBufferInfo2The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToBufferInfo2-imageSubresource-07968YNoneexplicitVkCopyImageToBufferInfo2If 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-09105YNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageToBufferInfo2-pNext-pNextYNoneimplicitVkCopyImageToBufferInfo2pNext must be NULL
VUID-VkCopyImageToBufferInfo2-pRegions-00183YNoneexplicitVkCopyImageToBufferInfo2dstBuffer 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-00184YNoneexplicitVkCopyImageToBufferInfo2The 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-04566YNoneexplicitVkCopyImageToBufferInfo2The 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-parameterYNoneimplicitVkCopyImageToBufferInfo2pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures
VUID-VkCopyImageToBufferInfo2-regionCount-arraylengthYNoneimplicitVkCopyImageToBufferInfo2regionCount must be greater than 0
VUID-VkCopyImageToBufferInfo2-sType-sTypeYNoneimplicitVkCopyImageToBufferInfo2sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2
VUID-VkCopyImageToBufferInfo2-srcImage-00186YNoneexplicitVkCopyImageToBufferInfo2srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyImageToBufferInfo2-srcImage-00207YNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-00208YNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-00209YNoneexplicitVkCopyImageToBufferInfo2For 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-01998YNoneexplicitVkCopyImageToBufferInfo2The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkCopyImageToBufferInfo2-srcImage-07274YNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-07275YNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-07276YNoneexplicitVkCopyImageToBufferInfo2For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageToBufferInfo2-srcImage-07966YNoneexplicitVkCopyImageToBufferInfo2If 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-07969YNoneexplicitVkCopyImageToBufferInfo2srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToBufferInfo2-srcImage-07973YNoneexplicitVkCopyImageToBufferInfo2srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyImageToBufferInfo2-srcImage-07975YNoneexplicitVkCopyImageToBufferInfo2If 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-07976YNoneexplicitVkCopyImageToBufferInfo2If 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-07978YNoneexplicitVkCopyImageToBufferInfo2If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyImageToBufferInfo2-srcImage-07979YNoneexplicitVkCopyImageToBufferInfo2If 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-07980YNoneexplicitVkCopyImageToBufferInfo2If 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-07981YNoneexplicitVkCopyImageToBufferInfo2If 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-07983YNoneexplicitVkCopyImageToBufferInfo2If 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-parameterYNoneimplicitVkCopyImageToBufferInfo2srcImage must be a valid VkImage handle
VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189YNoneexplicitVkCopyImageToBufferInfo2srcImageLayout 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-01397YNoneexplicitVkCopyImageToBufferInfo2srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameterYNoneimplicitVkCopyImageToBufferInfo2srcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557NNoneexplicitVkCopyImageToBufferInfo2If 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-04558NNoneexplicitVkCopyImageToBufferInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must have a 1x1x1 texel block extent
VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205NNoneexplicitVkCopyImageToBufferInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206NNoneexplicitVkCopyImageToBufferInfo2If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format
VUID-VkCopyImageToImageInfoEXT-commonparentYNoneimplicitVkCopyImageToImageInfoEXTBoth of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageToImageInfoEXT-dstImage-00207YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum of dstOffset.x and extent.width does not equal the width of the subresource specified by dstSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-00208YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum of dstOffset.y and extent.height does not equal the height of the subresource specified by dstSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-00209YNoneexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-07275YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstImage-07276YNoneexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageSubsampledexplicitVkCopyImageToImageInfoEXTdstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToImageInfoEXT-dstImage-07979YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.ImageMemorySparseUnboundexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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-parameterYNoneimplicitVkCopyImageToImageInfoEXTdstImage must be a valid VkImage handle
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071YNegativeHostImageCopy.CopyImageToImage, NegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToImageInfoEXTdstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegions
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09073YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTdstImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts
VUID-VkCopyImageToImageInfoEXT-dstImageLayout-parameterYNoneimplicitVkCopyImageToImageInfoEXTdstImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageToImageInfoEXT-dstOffset-09104YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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-dstOffset-10051NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, and dstOffset.x does not equal the width of the subresource specified by dstSubresource, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstOffset-10052NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, and dstOffset.y does not equal the height of the subresource specified by dstSubresource, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstOffset-10053NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference of dstOffset.x and extent.height must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstOffset-10054NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of dstOffset.x and extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstOffset-10055NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum of dstOffset.x and extent.height does not equal the width of the subresource specified by dstSubresource, extent.height must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstOffset-10056NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum of dstOffset.y and extent.width does not equal the height of the subresource specified by dstSubresource, extent.width must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstOffset-10057NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of dstOffset.y and extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstOffset-10058NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference of dstOffset.y and extent.width must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07967YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTThe 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTThe image region specified by each element of pRegions must be contained within the specified dstSubresource of dstImage
VUID-VkCopyImageToImageInfoEXT-dstSubresource-07971YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyImageToImageInfoEXT-flags-parameterYNoneimplicitVkCopyImageToImageInfoEXTflags must be a valid combination of VkHostImageCopyFlagBitsEXT values
VUID-VkCopyImageToImageInfoEXT-pNext-pNextYNoneimplicitVkCopyImageToImageInfoEXTpNext must be NULL
VUID-VkCopyImageToImageInfoEXT-pRegions-parameterYNoneimplicitVkCopyImageToImageInfoEXTpRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures
VUID-VkCopyImageToImageInfoEXT-regionCount-arraylengthYNoneimplicitVkCopyImageToImageInfoEXTregionCount must be greater than 0
VUID-VkCopyImageToImageInfoEXT-sType-sTypeYNoneimplicitVkCopyImageToImageInfoEXTsType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT
VUID-VkCopyImageToImageInfoEXT-srcImage-00207YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum of srcOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-00208YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum of srcOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-00209YNoneexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-07275YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcImage-07276YNoneexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageSubsampledexplicitVkCopyImageToImageInfoEXTsrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToImageInfoEXT-srcImage-07979YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTsrcImage and dstImage must have been created with identical image creation parameters
VUID-VkCopyImageToImageInfoEXT-srcImage-09109YNegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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-parameterYNoneimplicitVkCopyImageToImageInfoEXTsrcImage must be a valid VkImage handle
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTsrcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegions
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09072YNegativeHostImageCopy.CopyImageToImage, NegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyImageToImageInfoEXTsrcImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts
VUID-VkCopyImageToImageInfoEXT-srcImageLayout-parameterYNoneimplicitVkCopyImageToImageInfoEXTsrcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageToImageInfoEXT-srcOffset-09104YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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-srcOffset-10051NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, and srcOffset.x does not equal the width of the subresource specified by srcSubresource, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcOffset-10052NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, and srcOffset.y does not equal the height of the subresource specified by srcSubresource, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcOffset-10053NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference of srcOffset.x and extent.height must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcOffset-10054NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of srcOffset.x and extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcOffset-10055NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum of srcOffset.x and extent.height does not equal the width of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcOffset-10056NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum of srcOffset.y and extent.width does not equal the height of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcOffset-10057NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of srcOffset.y and extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcOffset-10058NNoneexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference of srcOffset.y and extent.width must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07967YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTThe 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTIf 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTThe image region specified by each element of pRegions must be contained within the specified srcSubresource of srcImage
VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971YNegativeHostImageCopy.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor 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.CopyImageToImageexplicitVkCopyImageToImageInfoEXTFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageToMemoryInfoEXT-flags-09394YNegativeHostImageCopy.ImageExtent2explicitVkCopyImageToMemoryInfoEXTIf flags includes VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0
VUID-VkCopyImageToMemoryInfoEXT-flags-parameterYNoneimplicitVkCopyImageToMemoryInfoEXTflags must be a valid combination of VkHostImageCopyFlagBitsEXT values
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09104YNegativeHostImageCopy.Image1D, NegativeHostImageCopy.ImageExtent, NegativeHostImageCopy.ImageSubresourceexplicitVkCopyImageToMemoryInfoEXTFor 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.ImageOffsetexplicitVkCopyImageToMemoryInfoEXTIf 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-imageOffset-10051NNoneexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, and imageOffset.x does not equal the width of the subresource specified by imageSubresource, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10052NNoneexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, and imageOffset.y does not equal the height of the subresource specified by imageSubresource, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10053NNoneexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference of imageOffset.x and extent.height must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10054NNoneexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.x and extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10055NNoneexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum of imageOffset.x and extent.height does not equal the width of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10056NNoneexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum of imageOffset.y and extent.width does not equal the height of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10057NNoneexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.y and extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageOffset-10058NNoneexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference of imageOffset.y and extent.width must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07967YNegativeHostImageCopy.ImageSubresourceexplicitVkCopyImageToMemoryInfoEXTThe 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.ImageExtent, NegativeHostImageCopy.ImageSubresourceexplicitVkCopyImageToMemoryInfoEXTIf 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.Image1D, NegativeHostImageCopy.ImageExtent, NegativeHostImageCopy.ImageSubresourceexplicitVkCopyImageToMemoryInfoEXTThe image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage
VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07971YNegativeHostImageCopy.ImageSubresourceexplicitVkCopyImageToMemoryInfoEXTFor 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.Image1D, NegativeHostImageCopy.ImageSubresourceexplicitVkCopyImageToMemoryInfoEXTFor 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.AspectMaskexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageToMemoryInfoEXT-memoryImageHeight-09107YNegativeHostImageCopy.CompressedFormatexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, memoryImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09106YNegativeHostImageCopy.CompressedFormatexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, memoryRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09108YNegativeHostImageCopy.CompressedFormatexplicitVkCopyImageToMemoryInfoEXTFor 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-pNextYNoneimplicitVkCopyImageToMemoryInfoEXTpNext must be NULL
VUID-VkCopyImageToMemoryInfoEXT-pRegions-parameterYNoneimplicitVkCopyImageToMemoryInfoEXTpRegions must be a valid pointer to an array of regionCount valid VkImageToMemoryCopyEXT structures
VUID-VkCopyImageToMemoryInfoEXT-regionCount-arraylengthYNoneimplicitVkCopyImageToMemoryInfoEXTregionCount must be greater than 0
VUID-VkCopyImageToMemoryInfoEXT-sType-sTypeYNoneimplicitVkCopyImageToMemoryInfoEXTsType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT
VUID-VkCopyImageToMemoryInfoEXT-srcImage-00207YNegativeHostImageCopy.CompressedFormatexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-00208YNegativeHostImageCopy.CompressedFormatexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-00209YNoneexplicitVkCopyImageToMemoryInfoEXTFor 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.CompressedFormatexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07275YNegativeHostImageCopy.CompressedFormatexplicitVkCopyImageToMemoryInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07276YNoneexplicitVkCopyImageToMemoryInfoEXTFor 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.CopyImageToFromMemoryNoMemoryexplicitVkCopyImageToMemoryInfoEXTIf 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.CopyImageToFromMemorySubsampledexplicitVkCopyImageToMemoryInfoEXTsrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07973YNegativeHostImageCopy.Image1DexplicitVkCopyImageToMemoryInfoEXTsrcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyImageToMemoryInfoEXT-srcImage-07979YNegativeHostImageCopy.Image1DexplicitVkCopyImageToMemoryInfoEXTIf 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.Image1DexplicitVkCopyImageToMemoryInfoEXTIf 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.MultiPlanarexplicitVkCopyImageToMemoryInfoEXTIf 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.ImageExtentexplicitVkCopyImageToMemoryInfoEXTIf 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.ImageMemorySparseUnboundexplicitVkCopyImageToMemoryInfoEXTIf 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.DepthStencilexplicitVkCopyImageToMemoryInfoEXTIf 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.DepthStencilexplicitVkCopyImageToMemoryInfoEXTIf 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.ImageOffsetexplicitVkCopyImageToMemoryInfoEXTIf 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.ImageOffsetexplicitVkCopyImageToMemoryInfoEXTIf 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-parameterYNoneimplicitVkCopyImageToMemoryInfoEXTsrcImage must be a valid VkImage handle
VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09064YNegativeHostImageCopy.ImageLayoutexplicitVkCopyImageToMemoryInfoEXTsrcImageLayout must specify the current layout of the image subresources of srcImage specified in pRegions
VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09065YNegativeHostImageCopy.ImageMemorySparseUnbound, NegativeHostImageCopy.NonSupportedLayoutexplicitVkCopyImageToMemoryInfoEXTsrcImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts
VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-parameterYNoneimplicitVkCopyImageToMemoryInfoEXTsrcImageLayout must be a valid VkImageLayout value
VUID-VkCopyMemoryIndirectCommandNV-dstAddress-07658NNoneexplicitVkCopyMemoryIndirectCommandNVThe dstAddress must be 4 byte aligned
VUID-VkCopyMemoryIndirectCommandNV-size-07659NNoneexplicitVkCopyMemoryIndirectCommandNVThe size must be 4 byte aligned
VUID-VkCopyMemoryIndirectCommandNV-srcAddress-07657NNoneexplicitVkCopyMemoryIndirectCommandNVThe srcAddress must be 4 byte aligned
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHRdst must have been created with a size greater than or equal to that used to serialize the data in src
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameterYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHRdst must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413YNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHRmode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameterYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHRmode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHRThe data in src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNextYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHRpNext must be NULL
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sTypeYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHRsType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHRThe 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-07680NNoneexplicitVkCopyMemoryToImageIndirectCommandNVbufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkCopyMemoryToImageIndirectCommandNV-bufferRowLength-07679NNoneexplicitVkCopyMemoryToImageIndirectCommandNVbufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkCopyMemoryToImageIndirectCommandNV-imageExtent-07682NNoneexplicitVkCopyMemoryToImageIndirectCommandNVimageExtent must specify a valid region in the destination image and can be 0
VUID-VkCopyMemoryToImageIndirectCommandNV-imageOffset-07681NNoneexplicitVkCopyMemoryToImageIndirectCommandNVimageOffset must specify a valid offset in the destination image
VUID-VkCopyMemoryToImageIndirectCommandNV-imageSubresource-parameterYNoneimplicitVkCopyMemoryToImageIndirectCommandNVimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkCopyMemoryToImageIndirectCommandNV-srcAddress-07678NNoneexplicitVkCopyMemoryToImageIndirectCommandNVThe srcAddress must be 4 byte aligned
VUID-VkCopyMemoryToImageInfoEXT-dstImage-00207YNegativeHostImageCopy.CompressedFormatexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-00208YNegativeHostImageCopy.CompressedFormatexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-00209YNoneexplicitVkCopyMemoryToImageInfoEXTFor 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.CompressedFormatexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07275YNegativeHostImageCopy.CompressedFormatexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07276YNoneexplicitVkCopyMemoryToImageInfoEXTFor 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.CopyImageToFromMemoryNoMemoryexplicitVkCopyMemoryToImageInfoEXTIf 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.CopyImageToFromMemorySubsampledexplicitVkCopyMemoryToImageInfoEXTdstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07973YNegativeHostImageCopy.Image1DexplicitVkCopyMemoryToImageInfoEXTdstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyMemoryToImageInfoEXT-dstImage-07979YNegativeHostImageCopy.Image1DexplicitVkCopyMemoryToImageInfoEXTIf 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.Image1DexplicitVkCopyMemoryToImageInfoEXTIf 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.MultiPlanarexplicitVkCopyMemoryToImageInfoEXTIf 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.ImageExtentexplicitVkCopyMemoryToImageInfoEXTIf 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.ImageMemorySparseUnboundexplicitVkCopyMemoryToImageInfoEXTIf 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.DepthStencilexplicitVkCopyMemoryToImageInfoEXTIf 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.DepthStencilexplicitVkCopyMemoryToImageInfoEXTIf 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.ImageOffsetexplicitVkCopyMemoryToImageInfoEXTIf 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.ImageOffsetexplicitVkCopyMemoryToImageInfoEXTIf 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-parameterYNoneimplicitVkCopyMemoryToImageInfoEXTdstImage must be a valid VkImage handle
VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09059YNegativeHostImageCopy.ImageLayout, NegativeHostImageCopy.ImageMemorySparseUnboundexplicitVkCopyMemoryToImageInfoEXTdstImageLayout must specify the current layout of the image subresources of dstImage specified in pRegions
VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060YNegativeHostImageCopy.NonSupportedLayoutexplicitVkCopyMemoryToImageInfoEXTdstImageLayout must be one of the image layouts returned in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts
VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameterYNoneimplicitVkCopyMemoryToImageInfoEXTdstImageLayout must be a valid VkImageLayout value
VUID-VkCopyMemoryToImageInfoEXT-flags-09393YNegativeHostImageCopy.ImageExtent2explicitVkCopyMemoryToImageInfoEXTIf flags includes VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0
VUID-VkCopyMemoryToImageInfoEXT-flags-parameterYNoneimplicitVkCopyMemoryToImageInfoEXTflags must be a valid combination of VkHostImageCopyFlagBitsEXT values
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09104YNegativeHostImageCopy.Image1D, NegativeHostImageCopy.ImageExtent, NegativeHostImageCopy.ImageSubresourceexplicitVkCopyMemoryToImageInfoEXTFor 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.ImageOffsetexplicitVkCopyMemoryToImageInfoEXTIf 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-imageOffset-10051NNoneexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, and imageOffset.x does not equal the width of the subresource specified by imageSubresource, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10052NNoneexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, and imageOffset.y does not equal the height of the subresource specified by imageSubresource, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10053NNoneexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference of imageOffset.x and extent.height must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10054NNoneexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.x and extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10055NNoneexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum of imageOffset.x and extent.height does not equal the width of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10056NNoneexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum of imageOffset.y and extent.width does not equal the height of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10057NNoneexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.y and extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageOffset-10058NNoneexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference of imageOffset.y and extent.width must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07967YNegativeHostImageCopy.ImageSubresourceexplicitVkCopyMemoryToImageInfoEXTThe 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.ImageExtent, NegativeHostImageCopy.ImageSubresourceexplicitVkCopyMemoryToImageInfoEXTIf 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.Image1D, NegativeHostImageCopy.ImageExtent, NegativeHostImageCopy.ImageSubresourceexplicitVkCopyMemoryToImageInfoEXTThe image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage
VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07971YNegativeHostImageCopy.ImageSubresourceexplicitVkCopyMemoryToImageInfoEXTFor 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.Image1D, NegativeHostImageCopy.ImageSubresourceexplicitVkCopyMemoryToImageInfoEXTFor 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.AspectMaskexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyMemoryToImageInfoEXT-memoryImageHeight-09107YNegativeHostImageCopy.CompressedFormatexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, memoryImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09106YNegativeHostImageCopy.CompressedFormatexplicitVkCopyMemoryToImageInfoEXTFor each element of pRegions, memoryRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09108YNegativeHostImageCopy.CompressedFormatexplicitVkCopyMemoryToImageInfoEXTFor 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-pNextYNoneimplicitVkCopyMemoryToImageInfoEXTpNext must be NULL
VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameterYNoneimplicitVkCopyMemoryToImageInfoEXTpRegions must be a valid pointer to an array of regionCount valid VkMemoryToImageCopyEXT structures
VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylengthYNoneimplicitVkCopyMemoryToImageInfoEXTregionCount must be greater than 0
VUID-VkCopyMemoryToImageInfoEXT-sType-sTypeYNoneimplicitVkCopyMemoryToImageInfoEXTsType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT
VUID-VkCopyMemoryToMicromapInfoEXT-dst-07550NNoneexplicitVkCopyMemoryToMicromapInfoEXTdst must have been created with a size greater than or equal to that used to serialize the data in src
VUID-VkCopyMemoryToMicromapInfoEXT-dst-parameterYNoneimplicitVkCopyMemoryToMicromapInfoEXTdst must be a valid VkMicromapEXT handle
VUID-VkCopyMemoryToMicromapInfoEXT-mode-07548NNoneexplicitVkCopyMemoryToMicromapInfoEXTmode must be VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT
VUID-VkCopyMemoryToMicromapInfoEXT-mode-parameterYNoneimplicitVkCopyMemoryToMicromapInfoEXTmode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMemoryToMicromapInfoEXT-pNext-pNextYNoneimplicitVkCopyMemoryToMicromapInfoEXTpNext must be NULL
VUID-VkCopyMemoryToMicromapInfoEXT-sType-sTypeYNoneimplicitVkCopyMemoryToMicromapInfoEXTsType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
VUID-VkCopyMemoryToMicromapInfoEXT-src-07547NNoneexplicitVkCopyMemoryToMicromapInfoEXTThe source memory pointed to by src must contain data previously serialized using vkCmdCopyMicromapToMemoryEXT
VUID-VkCopyMemoryToMicromapInfoEXT-src-07549NNoneexplicitVkCopyMemoryToMicromapInfoEXTThe data in src must have a format compatible with the destination physical device as returned by vkGetDeviceMicromapCompatibilityEXT
VUID-VkCopyMicromapInfoEXT-buffer-07534NNoneexplicitVkCopyMicromapInfoEXTThe buffer used to create src must be bound to device memory
VUID-VkCopyMicromapInfoEXT-buffer-07535NNoneexplicitVkCopyMicromapInfoEXTThe buffer used to create dst must be bound to device memory
VUID-VkCopyMicromapInfoEXT-commonparentYNoneimplicitVkCopyMicromapInfoEXTBoth of dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyMicromapInfoEXT-dst-parameterYNoneimplicitVkCopyMicromapInfoEXTdst must be a valid VkMicromapEXT handle
VUID-VkCopyMicromapInfoEXT-mode-07531NNoneexplicitVkCopyMicromapInfoEXTmode must be VK_COPY_MICROMAP_MODE_COMPACT_EXT or VK_COPY_MICROMAP_MODE_CLONE_EXT
VUID-VkCopyMicromapInfoEXT-mode-07533NNoneexplicitVkCopyMicromapInfoEXTIf 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-parameterYNoneimplicitVkCopyMicromapInfoEXTmode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMicromapInfoEXT-pNext-pNextYNoneimplicitVkCopyMicromapInfoEXTpNext must be NULL
VUID-VkCopyMicromapInfoEXT-sType-sTypeYNoneimplicitVkCopyMicromapInfoEXTsType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
VUID-VkCopyMicromapInfoEXT-src-07532NNoneexplicitVkCopyMicromapInfoEXTThe source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyMicromapInfoEXT-src-parameterYNoneimplicitVkCopyMicromapInfoEXTsrc must be a valid VkMicromapEXT handle
VUID-VkCopyMicromapToMemoryInfoEXT-dst-07541NNoneexplicitVkCopyMicromapToMemoryInfoEXTThe 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-07542NNoneexplicitVkCopyMicromapToMemoryInfoEXTmode must be VK_COPY_MICROMAP_MODE_SERIALIZE_EXT
VUID-VkCopyMicromapToMemoryInfoEXT-mode-parameterYNoneimplicitVkCopyMicromapToMemoryInfoEXTmode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMicromapToMemoryInfoEXT-pNext-pNextYNoneimplicitVkCopyMicromapToMemoryInfoEXTpNext must be NULL
VUID-VkCopyMicromapToMemoryInfoEXT-sType-sTypeYNoneimplicitVkCopyMicromapToMemoryInfoEXTsType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
VUID-VkCopyMicromapToMemoryInfoEXT-src-07540NNoneexplicitVkCopyMicromapToMemoryInfoEXTThe source micromap src must have been constructed prior to the execution of this command
VUID-VkCopyMicromapToMemoryInfoEXT-src-parameterYNoneimplicitVkCopyMicromapToMemoryInfoEXTsrc must be a valid VkMicromapEXT handle
VUID-VkCuFunctionCreateInfoNVX-module-parameterYNoneimplicitVkCuFunctionCreateInfoNVXmodule must be a valid VkCuModuleNVX handle
VUID-VkCuFunctionCreateInfoNVX-pName-parameterYNoneimplicitVkCuFunctionCreateInfoNVXpName must be a null-terminated UTF-8 string
VUID-VkCuFunctionCreateInfoNVX-pNext-pNextYNoneimplicitVkCuFunctionCreateInfoNVXpNext must be NULL
VUID-VkCuFunctionCreateInfoNVX-sType-sTypeYNoneimplicitVkCuFunctionCreateInfoNVXsType must be VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
VUID-VkCuLaunchInfoNVX-function-parameterYNoneimplicitVkCuLaunchInfoNVXfunction must be a valid VkCuFunctionNVX handle
VUID-VkCuLaunchInfoNVX-pExtras-parameterYNoneimplicitVkCuLaunchInfoNVXIf extraCount is not 0, pExtras must be a valid pointer to an array of extraCount bytes
VUID-VkCuLaunchInfoNVX-pNext-pNextYNoneimplicitVkCuLaunchInfoNVXpNext must be NULL
VUID-VkCuLaunchInfoNVX-pParams-parameterYNoneimplicitVkCuLaunchInfoNVXIf paramCount is not 0, pParams must be a valid pointer to an array of paramCount bytes
VUID-VkCuLaunchInfoNVX-sType-sTypeYNoneimplicitVkCuLaunchInfoNVXsType must be VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
VUID-VkCuModuleCreateInfoNVX-pData-parameterYNoneimplicitVkCuModuleCreateInfoNVXIf dataSize is not 0, pData must be a valid pointer to an array of dataSize bytes
VUID-VkCuModuleCreateInfoNVX-pNext-pNextYNoneimplicitVkCuModuleCreateInfoNVXpNext must be NULL
VUID-VkCuModuleCreateInfoNVX-sType-sTypeYNoneimplicitVkCuModuleCreateInfoNVXsType must be VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
VUID-VkCudaFunctionCreateInfoNV-module-parameterYNoneimplicitVkCudaFunctionCreateInfoNVmodule must be a valid VkCudaModuleNV handle
VUID-VkCudaFunctionCreateInfoNV-pName-parameterYNoneimplicitVkCudaFunctionCreateInfoNVpName must be a null-terminated UTF-8 string
VUID-VkCudaFunctionCreateInfoNV-pNext-pNextYNoneimplicitVkCudaFunctionCreateInfoNVpNext must be NULL
VUID-VkCudaFunctionCreateInfoNV-sType-sTypeYNoneimplicitVkCudaFunctionCreateInfoNVsType must be VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV
VUID-VkCudaLaunchInfoNV-extraCount-09411NNoneexplicitVkCudaLaunchInfoNVextraCount must be 0
VUID-VkCudaLaunchInfoNV-function-parameterYNoneimplicitVkCudaLaunchInfoNVfunction must be a valid VkCudaFunctionNV handle
VUID-VkCudaLaunchInfoNV-gridDimX-09406NNoneexplicitVkCudaLaunchInfoNVgridDimX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-VkCudaLaunchInfoNV-gridDimY-09407NNoneexplicitVkCudaLaunchInfoNVgridDimY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-VkCudaLaunchInfoNV-gridDimZ-09408NNoneexplicitVkCudaLaunchInfoNVgridDimZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-VkCudaLaunchInfoNV-pExtras-09412NNoneexplicitVkCudaLaunchInfoNVpExtras must be NULL
VUID-VkCudaLaunchInfoNV-pNext-pNextYNoneimplicitVkCudaLaunchInfoNVpNext must be NULL
VUID-VkCudaLaunchInfoNV-pParams-09410NNoneexplicitVkCudaLaunchInfoNVpParams must be a pointer to a table of paramCount parameters, corresponding to the arguments of function
VUID-VkCudaLaunchInfoNV-paramCount-09409NNoneexplicitVkCudaLaunchInfoNVparamCount must be the total amount of parameters listed in the pParams table
VUID-VkCudaLaunchInfoNV-sType-sTypeYNoneimplicitVkCudaLaunchInfoNVsType must be VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV
VUID-VkCudaModuleCreateInfoNV-dataSize-09413NNoneexplicitVkCudaModuleCreateInfoNVdataSize must be the total size in bytes of the PTX files or binary cache passed to pData
VUID-VkCudaModuleCreateInfoNV-dataSize-arraylengthYNoneimplicitVkCudaModuleCreateInfoNVdataSize must be greater than 0
VUID-VkCudaModuleCreateInfoNV-pData-parameterYNoneimplicitVkCudaModuleCreateInfoNVpData must be a valid pointer to an array of dataSize bytes
VUID-VkCudaModuleCreateInfoNV-pNext-pNextYNoneimplicitVkCudaModuleCreateInfoNVpNext must be NULL
VUID-VkCudaModuleCreateInfoNV-sType-sTypeYNoneimplicitVkCudaModuleCreateInfoNVsType must be VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV
VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameterYNoneimplicitVkD3D12FenceSubmitInfoKHRIf 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-parameterYNoneimplicitVkD3D12FenceSubmitInfoKHRIf 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-sTypeYNoneimplicitVkD3D12FenceSubmitInfoKHRsType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080YNegativeExternalMemorySync.D3D12FenceSubmitInfoexplicitVkD3D12FenceSubmitInfoKHRsignalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where this structure is in the pNext chain of a VkSubmitInfo structure
VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079YNegativeExternalMemorySync.D3D12FenceSubmitInfoexplicitVkD3D12FenceSubmitInfoKHRwaitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where this structure is in the pNext chain of a VkSubmitInfo structure
VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameterYNoneimplicitVkDebugMarkerMarkerInfoEXTpMarkerName must be a null-terminated UTF-8 string
VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerMarkerInfoEXTpNext must be NULL
VUID-VkDebugMarkerMarkerInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerMarkerInfoEXTsType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
VUID-VkDebugMarkerObjectNameInfoEXT-object-01491YNegativeDebugExtensions.DebugMarkerSetObjectexplicitVkDebugMarkerObjectNameInfoEXTobject must not be VK_NULL_HANDLE
VUID-VkDebugMarkerObjectNameInfoEXT-object-01492YNegativeDebugExtensions.DebugMarkerSetObject, NegativeDebugExtensions.SwapchainImagesDebugMarkerexplicitVkDebugMarkerObjectNameInfoEXTobject must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490YNegativeDebugExtensions.DebugMarkerSetObjectexplicitVkDebugMarkerObjectNameInfoEXTobjectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameterYNoneimplicitVkDebugMarkerObjectNameInfoEXTobjectType must be a valid VkDebugReportObjectTypeEXT value
VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerObjectNameInfoEXTpNext must be NULL
VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameterYNoneimplicitVkDebugMarkerObjectNameInfoEXTpObjectName must be a null-terminated UTF-8 string
VUID-VkDebugMarkerObjectNameInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerObjectNameInfoEXTsType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-object-01494YNegativeDebugExtensions.DebugMarkerSetUtilsexplicitVkDebugMarkerObjectTagInfoEXTobject must not be VK_NULL_HANDLE
VUID-VkDebugMarkerObjectTagInfoEXT-object-01495YNegativeDebugExtensions.DebugMarkerSetUtils, NegativeDebugExtensions.SwapchainImagesDebugMarkerexplicitVkDebugMarkerObjectTagInfoEXTobject must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493YNegativeDebugExtensions.DebugMarkerSetUtilsexplicitVkDebugMarkerObjectTagInfoEXTobjectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameterYNoneimplicitVkDebugMarkerObjectTagInfoEXTobjectType must be a valid VkDebugReportObjectTypeEXT value
VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerObjectTagInfoEXTpNext must be NULL
VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameterYNoneimplicitVkDebugMarkerObjectTagInfoEXTpTag must be a valid pointer to an array of tagSize bytes
VUID-VkDebugMarkerObjectTagInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerObjectTagInfoEXTsType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylengthYNoneimplicitVkDebugMarkerObjectTagInfoEXTtagSize must be greater than 0
VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameterYNoneimplicitVkDebugReportCallbackCreateInfoEXTflags must be a valid combination of VkDebugReportFlagBitsEXT values
VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameterYNoneimplicitVkDebugReportCallbackCreateInfoEXTpfnCallback must be a valid PFN_vkDebugReportCallbackEXT value
VUID-VkDebugReportCallbackCreateInfoEXT-sType-sTypeYNoneimplicitVkDebugReportCallbackCreateInfoEXTsType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
VUID-VkDebugUtilsLabelEXT-pLabelName-parameterYNoneimplicitVkDebugUtilsLabelEXTpLabelName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsLabelEXT-pNext-pNextYNoneimplicitVkDebugUtilsLabelEXTpNext must be NULL
VUID-VkDebugUtilsLabelEXT-sType-sTypeYNoneimplicitVkDebugUtilsLabelEXTsType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmaskYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTflags must be 0
VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTIf cmdBufLabelCount is not 0, pCmdBufLabels must be a valid pointer to an array of cmdBufLabelCount valid VkDebugUtilsLabelEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessage-parameterNNoneimplicitVkDebugUtilsMessengerCallbackDataEXTIf pMessage is not NULL, pMessage must be a null-terminated UTF-8 string
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTIf pMessageIdName is not NULL, pMessageIdName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNextYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTpNext must be NULL or a pointer to a valid instance of VkDeviceAddressBindingCallbackDataEXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTIf objectCount is not 0, pObjects must be a valid pointer to an array of objectCount valid VkDebugUtilsObjectNameInfoEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTIf queueLabelCount is not 0, pQueueLabels must be a valid pointer to an array of queueLabelCount valid VkDebugUtilsLabelEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sTypeYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTsType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-uniqueYNoneimplicitVkDebugUtilsMessengerCallbackDataEXTThe sType value of each struct in the pNext chain must be unique
VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTflags must be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTmessageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmaskYNegativeDebugExtensions.DebugUtilsParameterFlagsimplicitVkDebugUtilsMessengerCreateInfoEXTmessageSeverity must not be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTmessageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmaskYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTmessageType must not be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTpfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value
VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsMessengerCreateInfoEXTsType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589YNoneexplicitVkDebugUtilsObjectNameInfoEXTIf objectType is VK_OBJECT_TYPE_UNKNOWN, objectHandle must not be VK_NULL_HANDLE
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590YNegativeDebugExtensions.DebugUtilsName, NegativeDebugExtensions.SetDebugUtilsObjectDestroyedHandleexplicitVkDebugUtilsObjectNameInfoEXTIf 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-parameterYNoneimplicitVkDebugUtilsObjectNameInfoEXTobjectType must be a valid VkObjectType value
VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameterYNoneimplicitVkDebugUtilsObjectNameInfoEXTIf pObjectName is not NULL, pObjectName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsObjectNameInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsObjectNameInfoEXTsType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910YNoneexplicitVkDebugUtilsObjectTagInfoEXTobjectHandle 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-01908YNoneexplicitVkDebugUtilsObjectTagInfoEXTobjectType must not be VK_OBJECT_TYPE_UNKNOWN
VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameterYNoneimplicitVkDebugUtilsObjectTagInfoEXTobjectType must be a valid VkObjectType value
VUID-VkDebugUtilsObjectTagInfoEXT-pNext-pNextYNoneimplicitVkDebugUtilsObjectTagInfoEXTpNext must be NULL
VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameterYNoneimplicitVkDebugUtilsObjectTagInfoEXTpTag must be a valid pointer to an array of tagSize bytes
VUID-VkDebugUtilsObjectTagInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsObjectTagInfoEXTsType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylengthYNoneimplicitVkDebugUtilsObjectTagInfoEXTtagSize must be greater than 0
VUID-VkDecompressMemoryRegionNV-decompressedSize-07689NNoneexplicitVkDecompressMemoryRegionNVThe decompressedSize must be large enough to hold the decompressed data based on the decompressionMethod
VUID-VkDecompressMemoryRegionNV-decompressionMethod-07690NNoneexplicitVkDecompressMemoryRegionNVThe decompressionMethod must have a single bit set
VUID-VkDecompressMemoryRegionNV-decompressionMethod-09395NNoneexplicitVkDecompressMemoryRegionNVIf 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-parameterYNoneimplicitVkDecompressMemoryRegionNVdecompressionMethod must be a valid combination of VkMemoryDecompressionMethodFlagBitsNV values
VUID-VkDecompressMemoryRegionNV-decompressionMethod-requiredbitmaskYNoneimplicitVkDecompressMemoryRegionNVdecompressionMethod must not be 0
VUID-VkDecompressMemoryRegionNV-dstAddress-07687NNoneexplicitVkDecompressMemoryRegionNVThe dstAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionNV-dstAddress-07688NNoneexplicitVkDecompressMemoryRegionNVThe memory in range dstAddress and dstAddress + decompressedSize must be valid and bound to a VkDeviceMemory object
VUID-VkDecompressMemoryRegionNV-srcAddress-07685NNoneexplicitVkDecompressMemoryRegionNVThe srcAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionNV-srcAddress-07686NNoneexplicitVkDecompressMemoryRegionNVThe memory in range srcAddress and srcAddress + compressedSize must be valid and bound to a VkDeviceMemory object
VUID-VkDecompressMemoryRegionNV-srcAddress-07691NNoneexplicitVkDecompressMemoryRegionNVThe srcAddress to srcAddress + compressedSize region must not overlap with the dstAddress and dstAddress + decompressedSize region
VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sTypeYNoneimplicitVkDedicatedAllocationBufferCreateInfoNVsType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994NNoneexplicitVkDedicatedAllocationImageCreateInfoNVIf 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-sTypeYNoneimplicitVkDedicatedAllocationImageCreateInfoNVsType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVIf buffer is not VK_NULL_HANDLE, the buffer must have been created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVIf buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVIf 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-parameterYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNVIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparentYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNVBoth 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-00649NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVAt least one of image and buffer must be VK_NULL_HANDLE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVIf image is not VK_NULL_HANDLE, the image must have been created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVIf image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNVIf 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-parameterYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNVIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sTypeYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNVsType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
VUID-VkDependencyInfo-dependencyFlags-parameterYNoneimplicitVkDependencyInfodependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkDependencyInfo-pBufferMemoryBarriers-parameterYNoneimplicitVkDependencyInfoIf bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2 structures
VUID-VkDependencyInfo-pImageMemoryBarriers-parameterYNoneimplicitVkDependencyInfoIf imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2 structures
VUID-VkDependencyInfo-pMemoryBarriers-parameterYNoneimplicitVkDependencyInfoIf memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2 structures
VUID-VkDependencyInfo-pNext-pNextYNoneimplicitVkDependencyInfopNext must be NULL
VUID-VkDependencyInfo-sType-sTypeYNoneimplicitVkDependencyInfosType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO
VUID-VkDepthBiasInfoEXT-depthBiasClamp-08950YNegativeDynamicState.SetDepthBias2EXTDepthBiasClampDisabledexplicitVkDepthBiasInfoEXTIf the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0
VUID-VkDepthBiasInfoEXT-pNext-pNextYNoneimplicitVkDepthBiasInfoEXTpNext must be NULL or a pointer to a valid instance of VkDepthBiasRepresentationInfoEXT
VUID-VkDepthBiasInfoEXT-sType-sTypeYNoneimplicitVkDepthBiasInfoEXTsType must be VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT
VUID-VkDepthBiasInfoEXT-sType-uniqueYNoneimplicitVkDepthBiasInfoEXTThe sType value of each struct in the pNext chain must be unique
VUID-VkDepthBiasRepresentationInfoEXT-depthBiasExact-08949YNegativeDynamicState.SetDepthBias2EXTDepthBiasControlFeaturesDisabled, NegativePipeline.RasterStateWithDepthBiasRepresentationInfoexplicitVkDepthBiasRepresentationInfoEXTIf the depthBiasExact feature is not enabled, depthBiasExact must be VK_FALSE
VUID-VkDepthBiasRepresentationInfoEXT-depthBiasRepresentation-parameterYNoneimplicitVkDepthBiasRepresentationInfoEXTdepthBiasRepresentation must be a valid VkDepthBiasRepresentationEXT value
VUID-VkDepthBiasRepresentationInfoEXT-floatRepresentation-08948YNegativeDynamicState.SetDepthBias2EXTDepthBiasControlFeaturesDisabled, NegativePipeline.RasterStateWithDepthBiasRepresentationInfoexplicitVkDepthBiasRepresentationInfoEXTIf the floatRepresentation feature is not enabled, depthBiasRepresentation must not be VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT
VUID-VkDepthBiasRepresentationInfoEXT-leastRepresentableValueForceUnormRepresentation-08947YNegativeDynamicState.SetDepthBias2EXTDepthBiasControlFeaturesDisabled, NegativePipeline.RasterStateWithDepthBiasRepresentationInfoexplicitVkDepthBiasRepresentationInfoEXTIf the leastRepresentableValueForceUnormRepresentation feature is not enabled, depthBiasRepresentation must not be VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT
VUID-VkDepthBiasRepresentationInfoEXT-sType-sTypeYNoneimplicitVkDepthBiasRepresentationInfoEXTsType must be VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT
VUID-VkDepthClampRangeEXT-pDepthClampRange-00999YNegativePipeline.DepthClampControlMinMaxexplicitVkDepthClampRangeEXTminDepthClamp must be less than or equal to maxDepthClamp
VUID-VkDepthClampRangeEXT-pDepthClampRange-09648YNegativePipeline.DepthClampControlUnrestrictedexplicitVkDepthClampRangeEXTIf the VK_EXT_depth_range_unrestricted extension is not enabled, minDepthClamp must be greater than or equal to 0.0
VUID-VkDepthClampRangeEXT-pDepthClampRange-09649YNegativePipeline.DepthClampControlUnrestrictedexplicitVkDepthClampRangeEXTIf the VK_EXT_depth_range_unrestricted extension is not enabled, maxDepthClamp must be less than or equal to 1.0
VUID-VkDescriptorAddressInfoEXT-None-08044YNegativeDescriptorBuffer.DescriptorGetInfoexplicitVkDescriptorAddressInfoEXTIf address is not zero, address must be a valid device address at an offset within a VkBuffer
VUID-VkDescriptorAddressInfoEXT-None-09508YNegativeDescriptorBuffer.TexelBufferFormatexplicitVkDescriptorAddressInfoEXTIf address is not zero, and the descriptor is of type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, then format must not be VK_FORMAT_UNDEFINED
VUID-VkDescriptorAddressInfoEXT-address-08043YNegativeDescriptorBuffer.DescriptorGetInfoAddressRange, NegativeDescriptorBuffer.MaxTexelBufferElementsexplicitVkDescriptorAddressInfoEXTIf the nullDescriptor feature is not enabled, address must not be zero
VUID-VkDescriptorAddressInfoEXT-format-parameterYNoneimplicitVkDescriptorAddressInfoEXTformat must be a valid VkFormat value
VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938YNoneexplicitVkDescriptorAddressInfoEXTIf address is zero, range must be VK_WHOLE_SIZE
VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorAddressInfoEXTIf address is not zero, range must not be VK_WHOLE_SIZE
VUID-VkDescriptorAddressInfoEXT-pNext-pNextYNegativeDescriptorBuffer.DescriptorAddressInfoImplicitimplicitVkDescriptorAddressInfoEXTpNext must be NULL
VUID-VkDescriptorAddressInfoEXT-range-08045YNegativeDescriptorBuffer.DescriptorGetInfoAddressRangeexplicitVkDescriptorAddressInfoEXTrange 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.DescriptorGetInfoAddressRangeexplicitVkDescriptorAddressInfoEXTrange must not be zero
VUID-VkDescriptorAddressInfoEXT-sType-sTypeYNegativeDescriptorBuffer.DescriptorGetInfoValidPointerimplicitVkDescriptorAddressInfoEXTsType must be VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
VUID-VkDescriptorBufferBindingInfoEXT-None-09499YNegativeDescriptorBuffer.InvalidDescriptorBufferUsageexplicitVkDescriptorBufferBindingInfoEXTIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage must be a valid combination of VkBufferUsageFlagBits values
VUID-VkDescriptorBufferBindingInfoEXT-None-09500YNegativeDescriptorBuffer.InvalidDescriptorBufferUsageexplicitVkDescriptorBufferBindingInfoEXTIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage must not be 0
VUID-VkDescriptorBufferBindingInfoEXT-address-08057YNegativeDescriptorBuffer.DescriptorBufferOffsetAlignmentexplicitVkDescriptorBufferBindingInfoEXTaddress must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment
VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056YNegativeDescriptorBuffer.BindingInfoUsage, NegativeDescriptorBuffer.BufferlessPushDescriptorsOffexplicitVkDescriptorBufferBindingInfoEXTIf 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-pNextYNoneimplicitVkDescriptorBufferBindingInfoEXTEach 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-sTypeYNoneimplicitVkDescriptorBufferBindingInfoEXTsType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
VUID-VkDescriptorBufferBindingInfoEXT-sType-uniqueYNoneimplicitVkDescriptorBufferBindingInfoEXTThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorBufferBindingInfoEXT-usage-08122YNegativeDescriptorBuffer.BindingInfoUsage, NegativeDescriptorBuffer.BindingInfoUsageMultiBuffersexplicitVkDescriptorBufferBindingInfoEXTIf 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.BindingInfoUsageexplicitVkDescriptorBufferBindingInfoEXTIf 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.BindingInfoUsageexplicitVkDescriptorBufferBindingInfoEXTIf 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-parameterYNoneimplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXTbuffer must be a valid VkBuffer handle
VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-bufferlessPushDescriptors-08059YNegativeDescriptorBuffer.BufferlessPushDescriptorsexplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXTVkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE
VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-sType-sTypeYNoneimplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXTsType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
VUID-VkDescriptorBufferInfo-buffer-02998YNegativeDescriptors.DynamicOffsetWithNullBuffer, NegativeDescriptors.NullDescriptorsDisabledexplicitVkDescriptorBufferInfoIf the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE
VUID-VkDescriptorBufferInfo-buffer-02999YNegativeDescriptors.NullDescriptorsEnabledexplicitVkDescriptorBufferInfoIf buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE
VUID-VkDescriptorBufferInfo-buffer-parameterYNegativeObjectLifetime.DescriptorBufferInfoUpdateimplicitVkDescriptorBufferInfoIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkDescriptorBufferInfo-offset-00340YNegativePushDescriptor.DSBufferInfoexplicitVkDescriptorBufferInfooffset must be less than the size of buffer
VUID-VkDescriptorBufferInfo-range-00341YNegativePushDescriptor.DSBufferInfoexplicitVkDescriptorBufferInfoIf range is not equal to VK_WHOLE_SIZE, range must be greater than 0
VUID-VkDescriptorBufferInfo-range-00342YNegativePushDescriptor.DSBufferInfoexplicitVkDescriptorBufferInfoIf 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.DescriptorGetInfoAddressRangeexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoAddressRangeexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoAddressRangeexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoAddressRangeexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTIf 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.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and the nullDescriptor feature is not enabled, pUniformBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08040YNegativeDescriptorBuffer.DescriptorGetInfoSamplerexplicitVkDescriptorDataEXTIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and the nullDescriptor feature is not enabled, pStorageBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08041YNegativeDescriptorBuffer.DescriptorGetInfoASexplicitVkDescriptorDataEXTIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0
VUID-VkDescriptorDataEXT-type-08042YNegativeRayTracingNV.DescriptorGetInfoexplicitVkDescriptorDataEXTIf VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0
VUID-VkDescriptorGetInfoEXT-pCombinedImageSampler-parameterYNegativeDescriptorBuffer.DescriptorGetInfoValidPointer, NegativeDescriptorBuffer.NullCombinedImageSamplerimplicitVkDescriptorGetInfoEXTIf 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-parameterYNegativeDescriptorBuffer.DescriptorGetInfoValidPointerimplicitVkDescriptorGetInfoEXTIf 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-pNextYNoneimplicitVkDescriptorGetInfoEXTpNext must be NULL
VUID-VkDescriptorGetInfoEXT-pSampledImage-parameterYNoneimplicitVkDescriptorGetInfoEXTIf 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-parameterYNoneimplicitVkDescriptorGetInfoEXTIf type is VK_DESCRIPTOR_TYPE_SAMPLER, the pSampler member of data must be a valid pointer to a valid VkSampler handle
VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameterYNoneimplicitVkDescriptorGetInfoEXTIf 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-parameterYNoneimplicitVkDescriptorGetInfoEXTIf 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-parameterYNoneimplicitVkDescriptorGetInfoEXTIf 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-parameterYNoneimplicitVkDescriptorGetInfoEXTIf 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-parameterYNoneimplicitVkDescriptorGetInfoEXTIf 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-sTypeYNoneimplicitVkDescriptorGetInfoEXTsType must be VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
VUID-VkDescriptorGetInfoEXT-type-08018YNegativeDescriptorBuffer.DescriptorGetInfoBasicexplicitVkDescriptorGetInfoEXTtype 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.DescriptorGetInfoexplicitVkDescriptorGetInfoEXTIf 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.DescriptorGetInfoexplicitVkDescriptorGetInfoEXTIf 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.DescriptorGetInfo, NegativeDescriptorBuffer.NullHandleexplicitVkDescriptorGetInfoEXTIf type is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the pInputAttachmentImage->imageView member of data must be a VkImageView created on device
VUID-VkDescriptorGetInfoEXT-type-08022YNegativeDescriptorBuffer.DescriptorGetInfoexplicitVkDescriptorGetInfoEXTIf 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.DescriptorGetInfoexplicitVkDescriptorGetInfoEXTIf 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.DescriptorGetInfoexplicitVkDescriptorGetInfoEXTIf 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.DescriptorGetInfoexplicitVkDescriptorGetInfoEXTIf 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.DescriptorGetInfoexplicitVkDescriptorGetInfoEXTIf 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.DescriptorGetInfoexplicitVkDescriptorGetInfoEXTIf 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-08028NNoneexplicitVkDescriptorGetInfoEXTIf 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-08029YNegativeRayTracingNV.DescriptorBuffersexplicitVkDescriptorGetInfoEXTIf 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-09427YNegativeDescriptorBuffer.MaxTexelBufferElementsexplicitVkDescriptorGetInfoEXTIf 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-09428YNoneexplicitVkDescriptorGetInfoEXTIf 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-parameterYNoneimplicitVkDescriptorGetInfoEXTtype must be a valid VkDescriptorType value
VUID-VkDescriptorImageInfo-commonparentNNoneimplicitVkDescriptorImageInfoBoth 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.Image2DViewOf3DFeatureexplicitVkDescriptorImageInfoIf 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.Image2DViewOf3DFeatureexplicitVkDescriptorImageInfoIf 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.ImageLayoutexplicitVkDescriptorImageInfoimageLayout 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-09425YNoneexplicitVkDescriptorImageInfoIf 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-09426YNoneexplicitVkDescriptorImageInfoIf 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.InputAttachmentDepthStencilAspectexplicitVkDescriptorImageInfoIf 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.Image2DViewOf3DexplicitVkDescriptorImageInfoimageView must not be a 2D array image view created from a 3D image
VUID-VkDescriptorImageInfo-imageView-07795YNegativeDescriptors.InvalidImageInfoDescriptorTypeexplicitVkDescriptorImageInfoIf 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.Image2DViewOf3DexplicitVkDescriptorImageInfoIf 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.UpdateDescriptorSetsexplicitVkDescriptorImageInfoIf 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-01564YNoneexplicitVkDescriptorImageInfoIf 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.CreateDescriptorPoolexplicitVkDescriptorPoolCreateInfoIf 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.CreateDescriptorPoolFlagsexplicitVkDescriptorPoolCreateInfoIf 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.MissingMutableDescriptorTypeFeatureexplicitVkDescriptorPoolCreateInfoIf flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT bit set, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled
VUID-VkDescriptorPoolCreateInfo-flags-09228NNoneexplicitVkDescriptorPoolCreateInfoIf 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-parameterYNoneimplicitVkDescriptorPoolCreateInfoflags must be a valid combination of VkDescriptorPoolCreateFlagBits values
VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608YNegativeDescriptors.MissingMutableDescriptorTypeFeatureexplicitVkDescriptorPoolCreateInfoIf VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pPoolSizes must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkDescriptorPoolCreateInfo-pNext-pNextYNoneimplicitVkDescriptorPoolCreateInfoEach 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.MutableDescriptorPoolsWithPartialOverlapexplicitVkDescriptorPoolCreateInfoIf 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.MaxInlineUniformBlockBindingsexplicitVkDescriptorPoolCreateInfoIf 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-parameterYNoneimplicitVkDescriptorPoolCreateInfoIf poolSizeCount is not 0, pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures
VUID-VkDescriptorPoolCreateInfo-sType-sTypeYNoneimplicitVkDescriptorPoolCreateInfosType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
VUID-VkDescriptorPoolCreateInfo-sType-uniqueYNoneimplicitVkDescriptorPoolCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorPoolInlineUniformBlockCreateInfo-sType-sTypeYNoneimplicitVkDescriptorPoolInlineUniformBlockCreateInfosType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO
VUID-VkDescriptorPoolSize-descriptorCount-00302YNegativeDescriptors.CreateDescriptorPoolexplicitVkDescriptorPoolSizedescriptorCount must be greater than 0
VUID-VkDescriptorPoolSize-type-02218YNegativeDescriptors.InlineUniformBlockEXTexplicitVkDescriptorPoolSizeIf type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4
VUID-VkDescriptorPoolSize-type-parameterYNoneimplicitVkDescriptorPoolSizetype must be a valid VkDescriptorType value
VUID-VkDescriptorSetAllocateInfo-apiVersion-07895YNegativeDescriptors.AllocDescriptorFromEmptyPoolexplicitVkDescriptorSetAllocateInfoIf 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.AllocDescriptorFromEmptyPoolexplicitVkDescriptorSetAllocateInfoIf 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-commonparentYNoneimplicitVkDescriptorSetAllocateInfoBoth of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameterYNoneimplicitVkDescriptorSetAllocateInfodescriptorPool must be a valid VkDescriptorPool handle
VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitVkDescriptorSetAllocateInfodescriptorSetCount must be greater than 0
VUID-VkDescriptorSetAllocateInfo-pNext-pNextYNoneimplicitVkDescriptorSetAllocateInfopNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308YNegativePushDescriptor.AllocateSetexplicitVkDescriptorSetAllocateInfoEach element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044YNegativeDescriptorIndexing.SetLayoutexplicitVkDescriptorSetAllocateInfoIf 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.CreateDescriptorPoolAllocateFlagsexplicitVkDescriptorSetAllocateInfoIf 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.SetLayoutexplicitVkDescriptorSetAllocateInfoEach element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380YNegativeDescriptorIndexing.SetLayoutexplicitVkDescriptorSetAllocateInfoIf 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-parameterYNoneimplicitVkDescriptorSetAllocateInfopSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles
VUID-VkDescriptorSetAllocateInfo-sType-sTypeYNoneimplicitVkDescriptorSetAllocateInfosType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
VUID-VkDescriptorSetAllocateInfo-sType-uniqueYNoneimplicitVkDescriptorSetAllocateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetBindingReferenceVALVE-descriptorSetLayout-parameterYNoneimplicitVkDescriptorSetBindingReferenceVALVEdescriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-VkDescriptorSetBindingReferenceVALVE-pNext-pNextYNoneimplicitVkDescriptorSetBindingReferenceVALVEpNext must be NULL
VUID-VkDescriptorSetBindingReferenceVALVE-sType-sTypeYNoneimplicitVkDescriptorSetBindingReferenceVALVEsType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
VUID-VkDescriptorSetLayoutBinding-descriptorCount-09465YNegativeDescriptors.DescriptorSetLayoutStageFlagsexplicitVkDescriptorSetLayoutBindingIf 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.DescriptorSetLayoutNullImmutableSamplersexplicitVkDescriptorSetLayoutBindingIf 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.DescriptorSetLayoutMiscexplicitVkDescriptorSetLayoutBindingIf 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.InlineUniformBlockEXTexplicitVkDescriptorSetLayoutBindingIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4
VUID-VkDescriptorSetLayoutBinding-descriptorType-04604YNegativeDescriptors.InlineUniformBlockEXTFeatureexplicitVkDescriptorSetLayoutBindingIf the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkDescriptorSetLayoutBinding-descriptorType-04605YNegativeDescriptors.DescriptorSetLayoutBindingexplicitVkDescriptorSetLayoutBindingIf descriptorType is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL
VUID-VkDescriptorSetLayoutBinding-descriptorType-08004YNegativeDescriptorBuffer.SetLayoutInlineUniformBlockEXT, NegativeDescriptors.InlineUniformBlockEXTexplicitVkDescriptorSetLayoutBindingIf 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-parameterYNoneimplicitVkDescriptorSetLayoutBindingdescriptorType must be a valid VkDescriptorType value
VUID-VkDescriptorSetLayoutBinding-flags-08005YNegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutBindingIf VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLER
VUID-VkDescriptorSetLayoutBinding-flags-08006YNegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutBindingIf 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.SetLayoutexplicitVkDescriptorSetLayoutBindingIf 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-09466NNoneexplicitVkDescriptorSetLayoutBindingIf 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.CustomBorderColorexplicitVkDescriptorSetLayoutBindingThe 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.InvalidDescriptorSetLayoutFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoAll 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.SetLayoutexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570YNegativeRayTracing.DescriptorBindingUpdateAfterBindWithAccelerationStructureexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.InvalidDescriptorSetLayoutInlineUniformBlockFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.SetLayoutexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014YNegativeDescriptors.DescriptorIndexingMissingFeaturesexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003YNegativeDescriptors.IncompatibleDescriptorFlagsWithBindingFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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.IncompatibleDescriptorFlagsWithBindingFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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-03015YNegativeDescriptors.IncompatibleDescriptorFlagsWithBindingFlagsexplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf 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-parameterYNegativeDescriptorIndexing.SetLayoutimplicitVkDescriptorSetLayoutBindingFlagsCreateInfoIf bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sTypeYNoneimplicitVkDescriptorSetLayoutBindingFlagsCreateInfosType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
VUID-VkDescriptorSetLayoutCreateInfo-binding-00279YNegativeDescriptors.DuplicateDescriptorBindingexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutBindingsexplicitVkDescriptorSetLayoutCreateInfoIf 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.MutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfoIf a binding has a descriptorType value of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL
VUID-VkDescriptorSetLayoutCreateInfo-flags-00280YNegativePushDescriptor.GetSupportSetLayout, NegativePushDescriptor.SetLayoutexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutexplicitVkDescriptorSetLayoutCreateInfoIf 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-02208YNoneexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutMutableDescriptorexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutMutableDescriptorexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutMutableDescriptorexplicitVkDescriptorSetLayoutCreateInfoIf 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.MutableDescriptorSetLayoutMissingFeatureexplicitVkDescriptorSetLayoutCreateInfoIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled
VUID-VkDescriptorSetLayoutCreateInfo-flags-08000YNegativeDescriptorBuffer.GetSupportSetLayout, NegativeDescriptorBuffer.SetLayoutexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutexplicitVkDescriptorSetLayoutCreateInfoIf 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.SetLayoutMutableDescriptorEXTexplicitVkDescriptorSetLayoutCreateInfoIf 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-09463NNoneexplicitVkDescriptorSetLayoutCreateInfoIf flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV, then perStageDescriptorSet must be enabled
VUID-VkDescriptorSetLayoutCreateInfo-flags-09464NNoneexplicitVkDescriptorSetLayoutCreateInfoIf 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-parameterYNegativeDescriptorIndexing.SetLayoutWithoutExtension, NegativePushDescriptor.SetLayoutWithoutExtensionimplicitVkDescriptorSetLayoutCreateInfoflags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values
VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595YNegativeDescriptors.MutableDescriptorSetLayoutMissingFeatureexplicitVkDescriptorSetLayoutCreateInfoIf VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pBindings must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkDescriptorSetLayoutCreateInfo-pBindings-07303YNegativeDescriptors.GetSupportMutableDescriptorType, NegativeDescriptors.MutableDescriptorSetLayout, NegativePushDescriptor.SetLayoutMutableDescriptorexplicitVkDescriptorSetLayoutCreateInfoIf any element pBindings[i] has a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then the pNext chain must include a VkMutableDescriptorTypeCreateInfoEXT structure, and mutableDescriptorTypeListCount must be greater than i
VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameterYNoneimplicitVkDescriptorSetLayoutCreateInfoIf bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures
VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNextYNegativeDescriptors.MutableDescriptorSetLayoutMissingFeatureimplicitVkDescriptorSetLayoutCreateInfoEach 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-sTypeYNoneimplicitVkDescriptorSetLayoutCreateInfosType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
VUID-VkDescriptorSetLayoutCreateInfo-sType-uniqueYNoneimplicitVkDescriptorSetLayoutCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-pNext-pNextNNoneimplicitVkDescriptorSetLayoutHostMappingInfoVALVEpNext must be NULL
VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-sType-sTypeYNoneimplicitVkDescriptorSetLayoutHostMappingInfoVALVEsType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
VUID-VkDescriptorSetLayoutSupport-pNext-pNextYNoneimplicitVkDescriptorSetLayoutSupportpNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport
VUID-VkDescriptorSetLayoutSupport-sType-sTypeYNoneimplicitVkDescriptorSetLayoutSupportsType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
VUID-VkDescriptorSetLayoutSupport-sType-uniqueYNoneimplicitVkDescriptorSetLayoutSupportThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045YNegativeDescriptors.IncompatibleDescriptorFlagsWithBindingFlagsexplicitVkDescriptorSetVariableDescriptorCountAllocateInfoIf descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameterYNoneimplicitVkDescriptorSetVariableDescriptorCountAllocateInfoIf descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sTypeYNoneimplicitVkDescriptorSetVariableDescriptorCountAllocateInfosType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sTypeYNoneimplicitVkDescriptorSetVariableDescriptorCountLayoutSupportsType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
VUID-VkDescriptorUpdateTemplateCreateInfo-commonparentYNoneimplicitVkDescriptorUpdateTemplateCreateInfoBoth 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-arraylengthYNoneimplicitVkDescriptorUpdateTemplateCreateInfodescriptorUpdateEntryCount must be greater than 0
VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmaskYNoneimplicitVkDescriptorUpdateTemplateCreateInfoflags must be 0
VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameterYNoneimplicitVkDescriptorUpdateTemplateCreateInfopDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures
VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNextYNoneimplicitVkDescriptorUpdateTemplateCreateInfopNext must be NULL
VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sTypeYNoneimplicitVkDescriptorUpdateTemplateCreateInfosType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350YNegativePushDescriptor.CreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfoIf templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351YNegativePushDescriptor.CreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfoIf templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352YNegativePushDescriptor.CreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfoIf templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353YNegativePushDescriptor.CreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfoIf 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.DescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfoIf 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-parameterYNoneimplicitVkDescriptorUpdateTemplateCreateInfotemplateType must be a valid VkDescriptorUpdateTemplateType value
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226YNegativePushDescriptor.DescriptorUpdateTemplateEntryWithInlineUniformBlockexplicitVkDescriptorUpdateTemplateEntryIf descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227YNegativePushDescriptor.DescriptorUpdateTemplateEntryWithInlineUniformBlockexplicitVkDescriptorUpdateTemplateEntryIf descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameterYNoneimplicitVkDescriptorUpdateTemplateEntrydescriptorType must be a valid VkDescriptorType value
VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355NNoneexplicitVkDescriptorUpdateTemplateEntrydstArrayElement 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-00354NNoneexplicitVkDescriptorUpdateTemplateEntrydstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors
VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameterYNoneimplicitVkDeviceAddressBindingCallbackDataEXTbindingType must be a valid VkDeviceAddressBindingTypeEXT value
VUID-VkDeviceAddressBindingCallbackDataEXT-flags-parameterYNoneimplicitVkDeviceAddressBindingCallbackDataEXTflags must be a valid combination of VkDeviceAddressBindingFlagBitsEXT values
VUID-VkDeviceAddressBindingCallbackDataEXT-sType-sTypeYNoneimplicitVkDeviceAddressBindingCallbackDataEXTsType must be VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameterYNoneimplicitVkDeviceBufferMemoryRequirementspCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure
VUID-VkDeviceBufferMemoryRequirements-pNext-pNextYNoneimplicitVkDeviceBufferMemoryRequirementspNext must be NULL
VUID-VkDeviceBufferMemoryRequirements-sType-sTypeYNoneimplicitVkDeviceBufferMemoryRequirementssType must be VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS
VUID-VkDeviceCreateInfo-None-04896YVkLayerTest.InvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfoIf sparseImageInt64Atomics is enabled, shaderImageInt64Atomics must be enabled
VUID-VkDeviceCreateInfo-None-04897YVkLayerTest.InvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfoIf sparseImageFloat32Atomics is enabled, shaderImageFloat32Atomics must be enabled
VUID-VkDeviceCreateInfo-None-04898YVkLayerTest.InvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfoIf sparseImageFloat32AtomicAdd is enabled, shaderImageFloat32AtomicAdd must be enabled
VUID-VkDeviceCreateInfo-None-08095YNegativeDescriptorBuffer.ExtensionCombinationexplicitVkDeviceCreateInfoIf descriptorBuffer is enabled, ppEnabledExtensionNames must not contain VK_AMD_shader_fragment_mask
VUID-VkDeviceCreateInfo-flags-zerobitmaskYNoneimplicitVkDeviceCreateInfoflags must be 0
VUID-VkDeviceCreateInfo-fragmentDensityMap-04481YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfoIf the fragmentDensityMap feature is enabled, the pipelineFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-fragmentDensityMap-04482YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfoIf the fragmentDensityMap feature is enabled, the primitiveFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-fragmentDensityMap-04483YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfoIf the fragmentDensityMap feature is enabled, the attachmentFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-pEnabledFeatures-parameterYNoneimplicitVkDeviceCreateInfoIf pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure
VUID-VkDeviceCreateInfo-pNext-00373YNoneexplicitVkDeviceCreateInfoIf the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL
VUID-VkDeviceCreateInfo-pNext-02829YVkLayerTest.Features12Features13AndpNextexplicitVkDeviceCreateInfoIf 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.Features12Features13AndpNextexplicitVkDeviceCreateInfoIf 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.Features12AndppEnabledExtensionNamesexplicitVkDeviceCreateInfoIf 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.Features12Features13AndpNextexplicitVkDeviceCreateInfoIf 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-09396NNoneexplicitVkDeviceCreateInfoIf 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-09397NNoneexplicitVkDeviceCreateInfoIf 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.Features11WithoutVulkan12, VkLayerTest.MissingExtensionPhysicalDeviceFeature, VkLayerTest.MissingExtensionPhysicalDeviceFeatureMultiple, VkLayerTest.MissingExtensionPhysicalDeviceFeaturePromoted, VkLayerTest.RequiredPromotedFeaturesExtensions, VkPortabilitySubsetTest.FeatureWithoutExtensionimplicitVkDeviceCreateInfoEach 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, VkDevicePipelineBinaryInternalCacheControlKHR, VkDevicePrivateDataCreateInfo, VkDeviceQueueShaderCoreControlCreateInfoARM, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAntiLagFeaturesAMD, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCudaKernelLaunchFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostImageCopyFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageAlignmentControlFeaturesMESA, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesKHR, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesKHR, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5FeaturesKHR, VkPhysicalDeviceMaintenance6FeaturesKHR, VkPhysicalDeviceMaintenance7FeaturesKHR, VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerStageDescriptorSetFeaturesNV, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineBinaryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRawAccessChainsFeaturesNV, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRayTracingValidationFeaturesNV, VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, VkPhysicalDeviceRenderPassStripedFeaturesARM, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSchedulingControlsFeaturesARM, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, VkPhysicalDeviceShaderExpectAssumeFeaturesKHR, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderFloatControls2FeaturesKHR, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderQuadControlFeaturesKHR, VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR, 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.DeviceexplicitVkDeviceCreateInfoIf the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include "VK_KHR_portability_subset"
VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654YNegativeDeviceQueue.MismatchedGlobalPriorityexplicitVkDeviceCreateInfoIf 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.QueuesSameQueueFamilyexplicitVkDeviceCreateInfoIf 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-parameterYNoneimplicitVkDeviceCreateInfopQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374YVkLayerTest.Maintenance1AndNegativeViewportexplicitVkDeviceCreateInfoppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840YVkLayerTest.ApiVersion1_1AndNegativeViewportexplicitVkDeviceCreateInfoIf VkPhysicalDeviceProperties::apiVersion advertises Vulkan 1.1 or later, ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831YVkLayerTest.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfoIf 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.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfoIf 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.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfoIf 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.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfoIf 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.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfoIf 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-03328YNoneexplicitVkDeviceCreateInfoppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476YVkLayerTest.RequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfoIf 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-parameterYNoneimplicitVkDeviceCreateInfoIf enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameterYNoneimplicitVkDeviceCreateInfoIf enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylengthYNoneimplicitVkDeviceCreateInfoqueueCreateInfoCount must be greater than 0
VUID-VkDeviceCreateInfo-queueFamilyIndex-02802YNegativeDeviceQueue.FamilyIndexUnique, NegativeDeviceQueue.MismatchedGlobalPriority, NegativeProtectedMemory.UniqueQueueDeviceCreationBothProtectedexplicitVkDeviceCreateInfoThe 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-sTypeYNoneimplicitVkDeviceCreateInfosType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
VUID-VkDeviceCreateInfo-sType-uniqueYNoneimplicitVkDeviceCreateInfoThe 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.DeviceFeatureCombinationsexplicitVkDeviceCreateInfoIf the shadingRateImage feature is enabled, the pipelineFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-shadingRateImage-04479YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfoIf the shadingRateImage feature is enabled, the primitiveFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-shadingRateImage-04480YNegativeFragmentShadingRate.DeviceFeatureCombinationsexplicitVkDeviceCreateInfoIf the shadingRateImage feature is enabled, the attachmentFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975YVkLayerTest.InvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfoIf sparseImageFloat32AtomicMinMax is enabled, shaderImageFloat32AtomicMinMax must be enabled
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXTflags must be 0
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameterYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXTpUserData must be a pointer value
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameterYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXTpfnUserCallback must be a valid PFN_vkDeviceMemoryReportCallbackEXT value
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-sType-sTypeYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXTsType must be VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameterYNoneimplicitVkDeviceDiagnosticsConfigCreateInfoNVflags must be a valid combination of VkDeviceDiagnosticsConfigFlagBitsNV values
VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sTypeYNoneimplicitVkDeviceDiagnosticsConfigCreateInfoNVsType must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
VUID-VkDeviceEventInfoEXT-deviceEvent-parameterYNoneimplicitVkDeviceEventInfoEXTdeviceEvent must be a valid VkDeviceEventTypeEXT value
VUID-VkDeviceEventInfoEXT-pNext-pNextYNoneimplicitVkDeviceEventInfoEXTpNext must be NULL
VUID-VkDeviceEventInfoEXT-sType-sTypeYNoneimplicitVkDeviceEventInfoEXTsType must be VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
VUID-VkDeviceFaultAddressInfoEXT-addressType-parameterNNoneimplicitVkDeviceFaultAddressInfoEXTaddressType must be a valid VkDeviceFaultAddressTypeEXT value
VUID-VkDeviceFaultCountsEXT-pNext-pNextNNoneimplicitVkDeviceFaultCountsEXTpNext must be NULL
VUID-VkDeviceFaultCountsEXT-sType-sTypeYNoneimplicitVkDeviceFaultCountsEXTsType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
VUID-VkDeviceFaultInfoEXT-pNext-pNextYNoneimplicitVkDeviceFaultInfoEXTpNext must be NULL
VUID-VkDeviceFaultInfoEXT-sType-sTypeYNoneimplicitVkDeviceFaultInfoEXTsType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerSize-07340NNoneexplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXTheaderSize must be 56
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-07341NNoneexplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXTheaderVersion must be VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-parameterNNoneimplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXTheaderVersion must be a valid VkDeviceFaultVendorBinaryHeaderVersionEXT value
VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119NNoneexplicitVkDeviceGroupBindSparseInfoEach memory allocation bound in this batch must have allocated an instance for memoryDeviceIndex
VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118NNoneexplicitVkDeviceGroupBindSparseInforesourceDeviceIndex and memoryDeviceIndex must both be valid device indices
VUID-VkDeviceGroupBindSparseInfo-sType-sTypeYNoneimplicitVkDeviceGroupBindSparseInfosType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00106YNegativeWsi.DeviceMaskexplicitVkDeviceGroupCommandBufferBeginInfodeviceMask must be a valid device mask value
VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00107YNegativeWsi.DeviceMaskexplicitVkDeviceGroupCommandBufferBeginInfodeviceMask must not be zero
VUID-VkDeviceGroupCommandBufferBeginInfo-sType-sTypeYNoneimplicitVkDeviceGroupCommandBufferBeginInfosType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375YVkLayerTest.DuplicatePhysicalDevicesexplicitVkDeviceGroupDeviceCreateInfoEach element of pPhysicalDevices must be unique
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376NNoneexplicitVkDeviceGroupDeviceCreateInfoAll elements of pPhysicalDevices must be in the same device group as enumerated by vkEnumeratePhysicalDeviceGroups
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameterYNoneimplicitVkDeviceGroupDeviceCreateInfoIf physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles
VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377NNoneexplicitVkDeviceGroupDeviceCreateInfoIf physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices
VUID-VkDeviceGroupDeviceCreateInfo-sType-sTypeYNoneimplicitVkDeviceGroupDeviceCreateInfosType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNextYNoneimplicitVkDeviceGroupPresentCapabilitiesKHRpNext must be NULL
VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sTypeYNoneimplicitVkDeviceGroupPresentCapabilitiesKHRsType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
VUID-VkDeviceGroupPresentInfoKHR-mode-01298NNoneexplicitVkDeviceGroupPresentInfoKHRIf 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-01299NNoneexplicitVkDeviceGroupPresentInfoKHRIf 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-01300NNoneexplicitVkDeviceGroupPresentInfoKHRIf 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-01301NNoneexplicitVkDeviceGroupPresentInfoKHRIf 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-01303NNoneexplicitVkDeviceGroupPresentInfoKHRmode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes
VUID-VkDeviceGroupPresentInfoKHR-mode-parameterYNoneimplicitVkDeviceGroupPresentInfoKHRmode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302NNoneexplicitVkDeviceGroupPresentInfoKHRThe 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-parameterYNoneimplicitVkDeviceGroupPresentInfoKHRIf swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values
VUID-VkDeviceGroupPresentInfoKHR-sType-sTypeYNoneimplicitVkDeviceGroupPresentInfoKHRsType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297NNoneexplicitVkDeviceGroupPresentInfoKHRswapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905YNegativeWsi.DeviceMaskexplicitVkDeviceGroupRenderPassBeginInfodeviceMask must be a valid device mask value
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906YNegativeWsi.DeviceMaskexplicitVkDeviceGroupRenderPassBeginInfodeviceMask must not be zero
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907YNegativeWsi.DeviceMaskexplicitVkDeviceGroupRenderPassBeginInfodeviceMask must be a subset of the command buffer's initial device mask
VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908YNegativeWsi.DeviceMaskexplicitVkDeviceGroupRenderPassBeginInfodeviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkDeviceGroupRenderPassBeginInfo-extent-08998YNegativeDynamicRendering.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfoThe extent.width member of any element of pDeviceRenderAreas must be greater than 0
VUID-VkDeviceGroupRenderPassBeginInfo-extent-08999YNegativeDynamicRendering.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfoThe extent.height member of any element of pDeviceRenderAreas must be greater than 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166YNegativeDynamicRendering.DeviceGroupRenderArea, NegativeRenderPass.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfoThe offset.x member of any element of pDeviceRenderAreas must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167YNegativeDynamicRendering.DeviceGroupRenderArea, NegativeRenderPass.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfoThe offset.y member of any element of pDeviceRenderAreas must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168YNegativeDynamicRendering.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfoThe 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.DeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfoThe 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-parameterYNoneimplicitVkDeviceGroupRenderPassBeginInfoIf deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures
VUID-VkDeviceGroupRenderPassBeginInfo-sType-sTypeYNoneimplicitVkDeviceGroupRenderPassBeginInfosType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083YNegativeWsi.DeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfocommandBufferCount must equal VkSubmitInfo::commandBufferCount
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-00086YNegativeWsi.DeviceMaskexplicitVkDeviceGroupSubmitInfoAll elements of pCommandBufferDeviceMasks must be valid device masks
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameterYNoneimplicitVkDeviceGroupSubmitInfoIf commandBufferCount is not 0, pCommandBufferDeviceMasks must be a valid pointer to an array of commandBufferCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-pSignalSemaphoreDeviceIndices-parameterYNoneimplicitVkDeviceGroupSubmitInfoIf signalSemaphoreCount is not 0, pSignalSemaphoreDeviceIndices must be a valid pointer to an array of signalSemaphoreCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085NNoneexplicitVkDeviceGroupSubmitInfoAll elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameterYNoneimplicitVkDeviceGroupSubmitInfoIf waitSemaphoreCount is not 0, pWaitSemaphoreDeviceIndices must be a valid pointer to an array of waitSemaphoreCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-sType-sTypeYNoneimplicitVkDeviceGroupSubmitInfosType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084YNegativeWsi.DeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfosignalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount
VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082YNegativeWsi.DeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfowaitSemaphoreCount must equal VkSubmitInfo::waitSemaphoreCount
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameterYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHRmodes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmaskYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHRmodes must not be 0
VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHRsType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06416YNegativeMemory.DeviceImageMemoryRequirementsSwapchainexplicitVkDeviceImageMemoryRequirementsThe pCreateInfo->pNext chain must not contain a VkImageSwapchainCreateInfoKHR structure
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06417YNegativeMemory.DeviceImageMemoryRequirementsDisjointexplicitVkDeviceImageMemoryRequirementsIf 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.DeviceImageMemoryRequirementsDisjointexplicitVkDeviceImageMemoryRequirementsIf 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-06420NNoneexplicitVkDeviceImageMemoryRequirementsIf 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.DeviceImageMemoryRequirementsexplicitVkDeviceImageMemoryRequirementsThe pCreateInfo->pNext chain must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameterYNoneimplicitVkDeviceImageMemoryRequirementspCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-VkDeviceImageMemoryRequirements-pNext-06996YNegativeAndroidHardwareBuffer.DeviceImageMemoryReqexplicitVkDeviceImageMemoryRequirementsApplications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatANDROID structure with non-zero externalFormat
VUID-VkDeviceImageMemoryRequirements-pNext-08962NNoneexplicitVkDeviceImageMemoryRequirementsApplications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatQNX structure with non-zero externalFormat
VUID-VkDeviceImageMemoryRequirements-pNext-pNextYNoneimplicitVkDeviceImageMemoryRequirementspNext must be NULL
VUID-VkDeviceImageMemoryRequirements-planeAspect-parameterYNoneimplicitVkDeviceImageMemoryRequirementsIf planeAspect is not 0, planeAspect must be a valid VkImageAspectFlagBits value
VUID-VkDeviceImageMemoryRequirements-sType-sTypeYNoneimplicitVkDeviceImageMemoryRequirementssType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS
VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717YNegativeImage.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRThe arrayLayer member of pSubresource must be less than the arrayLayers specified in pCreateInfo
VUID-VkDeviceImageSubresourceInfoKHR-aspectMask-00997YNegativeImage.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRThe aspectMask member of pSubresource must only have a single bit set
VUID-VkDeviceImageSubresourceInfoKHR-format-04462YNoneexplicitVkDeviceImageSubresourceInfoKHRIf format of the pCreateInfo has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT
VUID-VkDeviceImageSubresourceInfoKHR-format-04463YNoneexplicitVkDeviceImageSubresourceInfoKHRIf format of the pCreateInfo has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkDeviceImageSubresourceInfoKHR-format-04464YNegativeImage.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRIf 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.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRIf 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.DeviceImageSubresourceInfoKHRexplicitVkDeviceImageSubresourceInfoKHRThe mipLevel member of pSubresource must be less than the mipLevels specified in pCreateInfo
VUID-VkDeviceImageSubresourceInfoKHR-pCreateInfo-parameterYNoneimplicitVkDeviceImageSubresourceInfoKHRpCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-VkDeviceImageSubresourceInfoKHR-pNext-pNextYNoneimplicitVkDeviceImageSubresourceInfoKHRpNext must be NULL
VUID-VkDeviceImageSubresourceInfoKHR-pSubresource-parameterYNoneimplicitVkDeviceImageSubresourceInfoKHRpSubresource must be a valid pointer to a valid VkImageSubresource2KHR structure
VUID-VkDeviceImageSubresourceInfoKHR-sType-sTypeYNoneimplicitVkDeviceImageSubresourceInfoKHRsType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717YNoneexplicitVkDeviceImageSubresourceInfoKHRIf 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.BufferDeviceAddressKHRDisabledexplicitVkDeviceMemoryOpaqueCaptureAddressInfomemory must have been allocated with VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameterYNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfomemory must be a valid VkDeviceMemory handle
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNextYNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfopNext must be NULL
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sTypeYNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfosType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameterYNoneimplicitVkDeviceMemoryOverallocationCreateInfoAMDoverallocationBehavior must be a valid VkMemoryOverallocationBehaviorAMD value
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sTypeYNoneimplicitVkDeviceMemoryOverallocationCreateInfoAMDsType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNextNNoneimplicitVkDeviceMemoryReportCallbackDataEXTpNext must be NULL
VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sTypeNNoneimplicitVkDeviceMemoryReportCallbackDataEXTsType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
VUID-VkDevicePipelineBinaryInternalCacheControlKHR-disableInternalCache-09602YNegativePipelineBinary.CacheControlexplicitVkDevicePipelineBinaryInternalCacheControlKHRIf VkPhysicalDevicePipelineBinaryPropertiesKHR::pipelineBinaryInternalCacheControl is VK_FALSE, disableInternalCache must be VK_FALSE
VUID-VkDevicePipelineBinaryInternalCacheControlKHR-sType-sTypeYNoneimplicitVkDevicePipelineBinaryInternalCacheControlKHRsType must be VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR
VUID-VkDevicePrivateDataCreateInfo-sType-sTypeYNoneimplicitVkDevicePrivateDataCreateInfosType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-flags-02861YNegativeProtectedMemory.GetDeviceQueueexplicitVkDeviceQueueCreateInfoIf 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.QueueexplicitVkDeviceQueueCreateInfoIf 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-parameterYNoneimplicitVkDeviceQueueCreateInfoflags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueCreateInfo-pNext-09398NNoneexplicitVkDeviceQueueCreateInfoIf the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure then VkPhysicalDeviceSchedulingControlsPropertiesARM::schedulingControlsFlags must contain VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM
VUID-VkDeviceQueueCreateInfo-pNext-pNextYNoneimplicitVkDeviceQueueCreateInfoEach 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.QueuePrioritiesexplicitVkDeviceQueueCreateInfoEach element of pQueuePriorities must be between 0.0 and 1.0 inclusive
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameterYNoneimplicitVkDeviceQueueCreateInfopQueuePriorities must be a valid pointer to an array of queueCount float values
VUID-VkDeviceQueueCreateInfo-queueCount-00382YNegativeDeviceQueue.QueueCountexplicitVkDeviceQueueCreateInfoqueueCount 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-arraylengthYNoneimplicitVkDeviceQueueCreateInfoqueueCount must be greater than 0
VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381YNegativeDeviceQueue.FamilyIndexexplicitVkDeviceQueueCreateInfoqueueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties
VUID-VkDeviceQueueCreateInfo-sType-sTypeYNoneimplicitVkDeviceQueueCreateInfosType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-sType-uniqueYNoneimplicitVkDeviceQueueCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameterYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoKHRglobalPriority must be a valid VkQueueGlobalPriorityKHR value
VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-sType-sTypeYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoKHRsType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
VUID-VkDeviceQueueInfo2-flags-06225YNegativeProtectedMemory.GetDeviceQueueexplicitVkDeviceQueueInfo2flags must be equal to VkDeviceQueueCreateInfo::flags for a VkDeviceQueueCreateInfo structure for the queue family indicated by queueFamilyIndex when device was created
VUID-VkDeviceQueueInfo2-flags-parameterYNoneimplicitVkDeviceQueueInfo2flags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueInfo2-pNext-pNextYNoneimplicitVkDeviceQueueInfo2pNext must be NULL
VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842YNegativeProtectedMemory.GetDeviceQueueexplicitVkDeviceQueueInfo2queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure
VUID-VkDeviceQueueInfo2-queueIndex-01843YNegativeProtectedMemory.GetDeviceQueueexplicitVkDeviceQueueInfo2queueIndex 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-sTypeYNoneimplicitVkDeviceQueueInfo2sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
VUID-VkDeviceQueueShaderCoreControlCreateInfoARM-sType-sTypeYNoneimplicitVkDeviceQueueShaderCoreControlCreateInfoARMsType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM
VUID-VkDeviceQueueShaderCoreControlCreateInfoARM-shaderCoreCount-09399NNoneexplicitVkDeviceQueueShaderCoreControlCreateInfoARMshaderCoreCount 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-zerobitmaskYNoneimplicitVkDirectDriverLoadingInfoLUNARGflags must be 0
VUID-VkDirectDriverLoadingInfoLUNARG-sType-sTypeYNoneimplicitVkDirectDriverLoadingInfoLUNARGsType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
VUID-VkDirectDriverLoadingListLUNARG-driverCount-arraylengthYNoneimplicitVkDirectDriverLoadingListLUNARGdriverCount must be greater than 0
VUID-VkDirectDriverLoadingListLUNARG-mode-parameterYNoneimplicitVkDirectDriverLoadingListLUNARGmode must be a valid VkDirectDriverLoadingModeLUNARG value
VUID-VkDirectDriverLoadingListLUNARG-pDrivers-parameterYNoneimplicitVkDirectDriverLoadingListLUNARGpDrivers must be a valid pointer to an array of driverCount valid VkDirectDriverLoadingInfoLUNARG structures
VUID-VkDirectDriverLoadingListLUNARG-sType-sTypeYNoneimplicitVkDirectDriverLoadingListLUNARGsType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117NNoneexplicitVkDirectFBSurfaceCreateInfoEXTdfb must point to a valid DirectFB IDirectFB
VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDirectFBSurfaceCreateInfoEXTflags must be 0
VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkDirectFBSurfaceCreateInfoEXTpNext must be NULL
VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkDirectFBSurfaceCreateInfoEXTsType must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118NNoneexplicitVkDirectFBSurfaceCreateInfoEXTsurface must point to a valid DirectFB IDirectFBSurface
VUID-VkDispatchGraphInfoAMDX-payloadCount-09171NNoneexplicitVkDispatchGraphInfoAMDXpayloadCount must be no greater than maxExecutionGraphShaderPayloadCount
VUID-VkDispatchIndirectCommand-x-00417YNegativeGpuAVIndirectBuffer.DispatchWorkgroupSize, NegativeGpuAVIndirectBuffer.DispatchWorkgroupSizeShaderObjectsexplicitVkDispatchIndirectCommandx must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-VkDispatchIndirectCommand-y-00418YNegativeGpuAVIndirectBuffer.DispatchWorkgroupSize, NegativeGpuAVIndirectBuffer.DispatchWorkgroupSizeShaderObjectsexplicitVkDispatchIndirectCommandy must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-VkDispatchIndirectCommand-z-00419YNegativeGpuAVIndirectBuffer.DispatchWorkgroupSize, NegativeGpuAVIndirectBuffer.DispatchWorkgroupSizeShaderObjectsexplicitVkDispatchIndirectCommandz must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-VkDisplayEventInfoEXT-displayEvent-parameterYNoneimplicitVkDisplayEventInfoEXTdisplayEvent must be a valid VkDisplayEventTypeEXT value
VUID-VkDisplayEventInfoEXT-pNext-pNextYNoneimplicitVkDisplayEventInfoEXTpNext must be NULL
VUID-VkDisplayEventInfoEXT-sType-sTypeYNoneimplicitVkDisplayEventInfoEXTsType must be VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkDisplayModeCreateInfoKHRflags must be 0
VUID-VkDisplayModeCreateInfoKHR-pNext-pNextYNoneimplicitVkDisplayModeCreateInfoKHRpNext must be NULL
VUID-VkDisplayModeCreateInfoKHR-parameters-parameterYNoneimplicitVkDisplayModeCreateInfoKHRparameters must be a valid VkDisplayModeParametersKHR structure
VUID-VkDisplayModeCreateInfoKHR-sType-sTypeYNoneimplicitVkDisplayModeCreateInfoKHRsType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
VUID-VkDisplayModeParametersKHR-height-01991YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplayModeParametersKHRThe height member of visibleRegion must be greater than 0
VUID-VkDisplayModeParametersKHR-refreshRate-01992YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplayModeParametersKHRrefreshRate must be greater than 0
VUID-VkDisplayModeParametersKHR-width-01990YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplayModeParametersKHRThe width member of visibleRegion must be greater than 0
VUID-VkDisplayModeProperties2KHR-pNext-pNextYNoneimplicitVkDisplayModeProperties2KHRpNext must be NULL
VUID-VkDisplayModeProperties2KHR-sType-sTypeYNoneimplicitVkDisplayModeProperties2KHRsType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
VUID-VkDisplayNativeHdrSurfaceCapabilitiesAMD-sType-sTypeYNoneimplicitVkDisplayNativeHdrSurfaceCapabilitiesAMDsType must be VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneCapabilities2KHRpNext must be NULL
VUID-VkDisplayPlaneCapabilities2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneCapabilities2KHRsType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
VUID-VkDisplayPlaneInfo2KHR-mode-parameterYNoneimplicitVkDisplayPlaneInfo2KHRmode must be a valid VkDisplayModeKHR handle
VUID-VkDisplayPlaneInfo2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneInfo2KHRpNext must be NULL
VUID-VkDisplayPlaneInfo2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneInfo2KHRsType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
VUID-VkDisplayPlaneProperties2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneProperties2KHRpNext must be NULL
VUID-VkDisplayPlaneProperties2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneProperties2KHRsType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
VUID-VkDisplayPowerInfoEXT-pNext-pNextYNoneimplicitVkDisplayPowerInfoEXTpNext must be NULL
VUID-VkDisplayPowerInfoEXT-powerState-parameterYNoneimplicitVkDisplayPowerInfoEXTpowerState must be a valid VkDisplayPowerStateEXT value
VUID-VkDisplayPowerInfoEXT-sType-sTypeYNoneimplicitVkDisplayPowerInfoEXTsType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
VUID-VkDisplayPresentInfoKHR-dstRect-01258NNoneexplicitVkDisplayPresentInfoKHRdstRect 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-01259NNoneexplicitVkDisplayPresentInfoKHRIf 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-sTypeYNoneimplicitVkDisplayPresentInfoKHRsType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
VUID-VkDisplayPresentInfoKHR-srcRect-01257YNegativeWsi.DisplayPresentInfoSrcRectexplicitVkDisplayPresentInfoKHRsrcRect must specify a rectangular region that is a subset of the image being presented
VUID-VkDisplayProperties2KHR-pNext-pNextYNoneimplicitVkDisplayProperties2KHRpNext must be NULL
VUID-VkDisplayProperties2KHR-sType-sTypeYNoneimplicitVkDisplayProperties2KHRsType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHRIf alphaMode is VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR then globalAlpha must be between 0 and 1, inclusive
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHRalphaMode must be one of the bits present in the supportedAlpha member of VkDisplayPlaneCapabilitiesKHR for the display plane corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHRalphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value
VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHRdisplayMode must be a valid VkDisplayModeKHR handle
VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkDisplaySurfaceCreateInfoKHRflags must be 0
VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkDisplaySurfaceCreateInfoKHRpNext must be NULL
VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHRplaneIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR
VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253NNoneexplicitVkDisplaySurfaceCreateInfoKHRIf 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-sTypeYNoneimplicitVkDisplaySurfaceCreateInfoKHRsType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
VUID-VkDisplaySurfaceCreateInfoKHR-transform-06740NNoneexplicitVkDisplaySurfaceCreateInfoKHRtransform must be one of the bits present in the supportedTransforms member of VkDisplayPropertiesKHR for the display corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHRtransform must be a valid VkSurfaceTransformFlagBitsKHR value
VUID-VkDisplaySurfaceCreateInfoKHR-width-01256YNegativeWsi.DisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHRThe width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D
VUID-VkDrawIndexedIndirectCommand-None-09462NNoneexplicitVkDrawIndexedIndirectCommandIf 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.FirstInstanceexplicitVkDrawIndexedIndirectCommandIf the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0
VUID-VkDrawIndexedIndirectCommand-pNext-09461NNoneexplicitVkDrawIndexedIndirectCommandIf 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-08798NNoneexplicitVkDrawIndexedIndirectCommandIf 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-09462NNoneexplicitVkDrawIndirectCommandIf 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.FirstInstanceexplicitVkDrawIndirectCommandIf the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0
VUID-VkDrawIndirectCommand-pNext-09461NNoneexplicitVkDrawIndirectCommandIf 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-VkDrawIndirectCountIndirectCommandEXT-None-11122NNoneexplicitVkDrawIndirectCountIndirectCommandEXTThe buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkDrawIndirectCountIndirectCommandEXT-None-11123NNoneexplicitVkDrawIndirectCountIndirectCommandEXTEach 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-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322YNegativeGpuAVIndirectBuffer.MeshexplicitVkDrawMeshTasksIndirectCommandEXTIf 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.MeshexplicitVkDrawMeshTasksIndirectCommandEXTIf 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.MeshexplicitVkDrawMeshTasksIndirectCommandEXTIf 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.MeshexplicitVkDrawMeshTasksIndirectCommandEXTIf 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.MeshexplicitVkDrawMeshTasksIndirectCommandEXTIf 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.MeshexplicitVkDrawMeshTasksIndirectCommandEXTIf 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.MeshexplicitVkDrawMeshTasksIndirectCommandEXTIf 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.MeshexplicitVkDrawMeshTasksIndirectCommandEXTIf 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-02175NNoneexplicitVkDrawMeshTasksIndirectCommandNVtaskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount
VUID-VkDrmFormatModifierPropertiesList2EXT-sType-sTypeYNoneimplicitVkDrmFormatModifierPropertiesList2EXTsType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
VUID-VkDrmFormatModifierPropertiesListEXT-sType-sTypeYNoneimplicitVkDrmFormatModifierPropertiesListEXTsType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
VUID-VkEventCreateInfo-flags-parameterYNoneimplicitVkEventCreateInfoflags must be a valid combination of VkEventCreateFlagBits values
VUID-VkEventCreateInfo-pNext-06790YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkEventCreateInfoIf 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-pNextYNoneimplicitVkEventCreateInfoEach 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-sTypeYNoneimplicitVkEventCreateInfosType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
VUID-VkEventCreateInfo-sType-uniqueYNoneimplicitVkEventCreateInfoThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkExecutionGraphPipelineCreateInfoAMDX-CoalescedInputCountAMDX-09137NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXThere 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-09134NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXThere must be no two nodes in the pipeline that share both the same shader name and index, as specified by VkPipelineShaderStageNodeCreateInfoAMDX
VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09135NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXThere 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-09136NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXThere must be no two nodes in the pipeline that share the same name but have different execution models
VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09497NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkExecutionGraphPipelineCreateInfoAMDX-PayloadNodeNameAMDX-09139NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf 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-09138NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXThere must be no two nodes in the pipeline that share the same name where one includes StaticNumWorkgroupsAMDX and the other does not
VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparentYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXBoth 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-03365NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03366NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03367NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03368NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03369NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03370NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03576NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-04945NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXflags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07984NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf 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-07985NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf 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-07986NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines is not enabled, flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09008NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf 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-flags-11007NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf flags includes VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the deviceGeneratedCommands feature must be enabled
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07987NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf a push constant block is declared in a shader, a push constant range in layout must match the shader stage
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07988NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07990NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf 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-07991NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09130NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXlayout must be consistent with the layout of the shaders specified in pStages
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09132NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXThe 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-10069NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf a push constant block is declared in a shader, the block must be contained inside the push constant range in layout that matches the stage
VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-parameterYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXlayout must be a valid VkPipelineLayout handle
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09131NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf 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-09133NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf pLibraryInfo is not NULL, each element of pLibraryInfo->libraries must be either a compute pipeline or an execution graph pipeline
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-parameterYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXIf pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure
VUID-VkExecutionGraphPipelineCreateInfoAMDX-pNext-pNextYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXEach 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-09129NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXThe 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-parameterYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXIf 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-02875NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXIf 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-sTypeYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXsType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX
VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-uniqueYNoneimplicitVkExecutionGraphPipelineCreateInfoAMDXThe sType value of each struct in the pNext chain must be unique
VUID-VkExecutionGraphPipelineCreateInfoAMDX-stage-09128NNoneexplicitVkExecutionGraphPipelineCreateInfoAMDXThe stage member of any element of pStages must be VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkExecutionGraphPipelineScratchSizeAMDX-sType-sTypeYNoneimplicitVkExecutionGraphPipelineScratchSizeAMDXsType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX
VUID-VkExportFenceCreateInfo-handleTypes-01446YNegativeExternalMemorySync.FenceExportWithIncompatibleHandleType, NegativeExternalMemorySync.FenceExportWithUnsupportedHandleTypeexplicitVkExportFenceCreateInfoThe bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties
VUID-VkExportFenceCreateInfo-handleTypes-parameterYNoneimplicitVkExportFenceCreateInfohandleTypes must be a valid combination of VkExternalFenceHandleTypeFlagBits values
VUID-VkExportFenceCreateInfo-sType-sTypeYNoneimplicitVkExportFenceCreateInfosType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447NNoneexplicitVkExportFenceWin32HandleInfoKHRIf 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-parameterYNoneimplicitVkExportFenceWin32HandleInfoKHRIf pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportFenceWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportFenceWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
VUID-VkExportMemoryAllocateInfo-handleTypes-00656YNegativeExternalMemorySync.BufferMemoryWithIncompatibleHandleTypes, NegativeExternalMemorySync.BufferMemoryWithUnsupportedHandleType, NegativeExternalMemorySync.ImageMemoryWithIncompatibleHandleTypes, NegativeExternalMemorySync.ImageMemoryWithUnsupportedHandleTypeexplicitVkExportMemoryAllocateInfoThe bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkExportMemoryAllocateInfo-handleTypes-parameterYNoneimplicitVkExportMemoryAllocateInfohandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExportMemoryAllocateInfo-sType-sTypeYNoneimplicitVkExportMemoryAllocateInfosType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameterYNoneimplicitVkExportMemoryAllocateInfoNVhandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkExportMemoryAllocateInfoNV-sType-sTypeYNoneimplicitVkExportMemoryAllocateInfoNVsType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657NNoneexplicitVkExportMemoryWin32HandleInfoKHRIf 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-parameterYNoneimplicitVkExportMemoryWin32HandleInfoKHRIf pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportMemoryWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportMemoryWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameterYNoneimplicitVkExportMemoryWin32HandleInfoNVIf pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportMemoryWin32HandleInfoNV-sType-sTypeYNoneimplicitVkExportMemoryWin32HandleInfoNVsType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
VUID-VkExportMetalBufferInfoEXT-memory-parameterYNoneimplicitVkExportMetalBufferInfoEXTmemory must be a valid VkDeviceMemory handle
VUID-VkExportMetalBufferInfoEXT-sType-sTypeYNoneimplicitVkExportMetalBufferInfoEXTsType must be VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
VUID-VkExportMetalCommandQueueInfoEXT-queue-parameterYNoneimplicitVkExportMetalCommandQueueInfoEXTqueue must be a valid VkQueue handle
VUID-VkExportMetalCommandQueueInfoEXT-sType-sTypeYNoneimplicitVkExportMetalCommandQueueInfoEXTsType must be VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
VUID-VkExportMetalDeviceInfoEXT-sType-sTypeYNoneimplicitVkExportMetalDeviceInfoEXTsType must be VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
VUID-VkExportMetalIOSurfaceInfoEXT-image-parameterYNoneimplicitVkExportMetalIOSurfaceInfoEXTimage must be a valid VkImage handle
VUID-VkExportMetalIOSurfaceInfoEXT-sType-sTypeYNoneimplicitVkExportMetalIOSurfaceInfoEXTsType must be VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
VUID-VkExportMetalObjectCreateInfoEXT-exportObjectType-parameterYNoneimplicitVkExportMetalObjectCreateInfoEXTIf exportObjectType is not 0, exportObjectType must be a valid VkExportMetalObjectTypeFlagBitsEXT value
VUID-VkExportMetalObjectCreateInfoEXT-sType-sTypeYNoneimplicitVkExportMetalObjectCreateInfoEXTsType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
VUID-VkExportMetalObjectsInfoEXT-pNext-06791YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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.ExportMetalObjectsexplicitVkExportMetalObjectsInfoEXTIf 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-pNextYNoneimplicitVkExportMetalObjectsInfoEXTEach 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-sTypeYNoneimplicitVkExportMetalObjectsInfoEXTsType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
VUID-VkExportMetalObjectsInfoEXT-sType-uniqueYNoneimplicitVkExportMetalObjectsInfoEXTThe 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-commonparentYNoneimplicitVkExportMetalSharedEventInfoEXTBoth 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-parameterYNoneimplicitVkExportMetalSharedEventInfoEXTIf event is not VK_NULL_HANDLE, event must be a valid VkEvent handle
VUID-VkExportMetalSharedEventInfoEXT-sType-sTypeYNoneimplicitVkExportMetalSharedEventInfoEXTsType must be VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
VUID-VkExportMetalSharedEventInfoEXT-semaphore-parameterYNoneimplicitVkExportMetalSharedEventInfoEXTIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-VkExportMetalTextureInfoEXT-bufferView-parameterYNoneimplicitVkExportMetalTextureInfoEXTIf bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle
VUID-VkExportMetalTextureInfoEXT-commonparentYNoneimplicitVkExportMetalTextureInfoEXTEach 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-parameterYNoneimplicitVkExportMetalTextureInfoEXTIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkExportMetalTextureInfoEXT-imageView-parameterYNoneimplicitVkExportMetalTextureInfoEXTIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkExportMetalTextureInfoEXT-plane-parameterYNoneimplicitVkExportMetalTextureInfoEXTplane must be a valid VkImageAspectFlagBits value
VUID-VkExportMetalTextureInfoEXT-sType-sTypeYNoneimplicitVkExportMetalTextureInfoEXTsType must be VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
VUID-VkExportSemaphoreCreateInfo-handleTypes-01124YNegativeExternalMemorySync.SemaphoreExportWithIncompatibleHandleType, NegativeExternalMemorySync.SemaphoreExportWithUnsupportedHandleTypeexplicitVkExportSemaphoreCreateInfoThe bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties
VUID-VkExportSemaphoreCreateInfo-handleTypes-parameterYNoneimplicitVkExportSemaphoreCreateInfohandleTypes must be a valid combination of VkExternalSemaphoreHandleTypeFlagBits values
VUID-VkExportSemaphoreCreateInfo-sType-sTypeYNoneimplicitVkExportSemaphoreCreateInfosType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125NNoneexplicitVkExportSemaphoreWin32HandleInfoKHRIf 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-parameterYNoneimplicitVkExportSemaphoreWin32HandleInfoKHRIf pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportSemaphoreWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportSemaphoreWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
VUID-VkExternalBufferProperties-pNext-pNextYNoneimplicitVkExternalBufferPropertiespNext must be NULL
VUID-VkExternalBufferProperties-sType-sTypeYNoneimplicitVkExternalBufferPropertiessType must be VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
VUID-VkExternalFenceProperties-pNext-pNextYNoneimplicitVkExternalFencePropertiespNext must be NULL
VUID-VkExternalFenceProperties-sType-sTypeYNoneimplicitVkExternalFencePropertiessType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
VUID-VkExternalFormatANDROID-externalFormat-01894YNegativeAndroidExternalResolve.Framebuffer, NegativeAndroidExternalResolve.ImagelessFramebuffer, NegativeAndroidHardwareBuffer.ImageCreateexplicitVkExternalFormatANDROIDexternalFormat must be 0 or a value returned in the externalFormat member of VkAndroidHardwareBufferFormatPropertiesANDROID by an earlier call to vkGetAndroidHardwareBufferPropertiesANDROID
VUID-VkExternalFormatANDROID-sType-sTypeYNoneimplicitVkExternalFormatANDROIDsType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
VUID-VkExternalFormatQNX-externalFormat-08956NNoneexplicitVkExternalFormatQNXexternalFormat must be 0 or a value returned in the externalFormat member of VkScreenBufferFormatPropertiesQNX by an earlier call to vkGetScreenBufferPropertiesQNX
VUID-VkExternalFormatQNX-sType-sTypeYNoneimplicitVkExternalFormatQNXsType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX
VUID-VkExternalImageFormatProperties-sType-sTypeYNoneimplicitVkExternalImageFormatPropertiessType must be VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
VUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922NNoneexplicitVkExternalMemoryAcquireUnmodifiedEXTIf 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-sTypeYNoneimplicitVkExternalMemoryAcquireUnmodifiedEXTsType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT
VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameterYNoneimplicitVkExternalMemoryBufferCreateInfohandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExternalMemoryBufferCreateInfo-sType-sTypeYNoneimplicitVkExternalMemoryBufferCreateInfosType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameterYNoneimplicitVkExternalMemoryImageCreateInfohandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExternalMemoryImageCreateInfo-sType-sTypeYNoneimplicitVkExternalMemoryImageCreateInfosType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameterYNoneimplicitVkExternalMemoryImageCreateInfoNVhandleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkExternalMemoryImageCreateInfoNV-sType-sTypeYNoneimplicitVkExternalMemoryImageCreateInfoNVsType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
VUID-VkExternalSemaphoreProperties-pNext-pNextYNoneimplicitVkExternalSemaphorePropertiespNext must be NULL
VUID-VkExternalSemaphoreProperties-sType-sTypeYNoneimplicitVkExternalSemaphorePropertiessType must be VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
VUID-VkFenceCreateInfo-flags-parameterYNoneimplicitVkFenceCreateInfoflags must be a valid combination of VkFenceCreateFlagBits values
VUID-VkFenceCreateInfo-pNext-pNextYNoneimplicitVkFenceCreateInfoEach 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-sTypeYNoneimplicitVkFenceCreateInfosType must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
VUID-VkFenceCreateInfo-sType-uniqueYNoneimplicitVkFenceCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkFenceGetFdInfoKHR-fence-01455YNegativeExternalMemorySync.SyncFdExportFromImportedFenceexplicitVkFenceGetFdInfoKHRfence 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-parameterYNoneimplicitVkFenceGetFdInfoKHRfence must be a valid VkFence handle
VUID-VkFenceGetFdInfoKHR-handleType-01453YNegativeExternalMemorySync.FenceexplicitVkFenceGetFdInfoKHRhandleType must have been included in VkExportFenceCreateInfo::handleTypes when fence's current payload was created
VUID-VkFenceGetFdInfoKHR-handleType-01454YNegativeExternalMemorySync.Fence, NegativeExternalMemorySync.SyncFdFenceexplicitVkFenceGetFdInfoKHRIf 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.FenceexplicitVkFenceGetFdInfoKHRhandleType must be defined as a POSIX file descriptor handle
VUID-VkFenceGetFdInfoKHR-handleType-parameterYNoneimplicitVkFenceGetFdInfoKHRhandleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkFenceGetFdInfoKHR-pNext-pNextYNoneimplicitVkFenceGetFdInfoKHRpNext must be NULL
VUID-VkFenceGetFdInfoKHR-sType-sTypeYNoneimplicitVkFenceGetFdInfoKHRsType must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
VUID-VkFenceGetWin32HandleInfoKHR-fence-01450YNegativeExternalMemorySync.Win32ExportFromImportedFenceexplicitVkFenceGetWin32HandleInfoKHRfence 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-parameterYNoneimplicitVkFenceGetWin32HandleInfoKHRfence must be a valid VkFence handle
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448YNegativeExternalMemorySync.FenceexplicitVkFenceGetWin32HandleInfoKHRhandleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence's current payload was created
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449NNoneexplicitVkFenceGetWin32HandleInfoKHRIf 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-01451NNoneexplicitVkFenceGetWin32HandleInfoKHRIf 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.FenceexplicitVkFenceGetWin32HandleInfoKHRhandleType must be defined as an NT handle or a global share handle
VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkFenceGetWin32HandleInfoKHRhandleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkFenceGetWin32HandleInfoKHRpNext must be NULL
VUID-VkFenceGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkFenceGetWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627NNoneexplicitVkFilterCubicImageViewImageFormatPropertiesEXTIf 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-sTypeYNoneimplicitVkFilterCubicImageViewImageFormatPropertiesEXTsType must be VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
VUID-VkFormatProperties2-pNext-pNextYNoneimplicitVkFormatProperties2Each 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-sTypeYNoneimplicitVkFormatProperties2sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2
VUID-VkFormatProperties2-sType-uniqueYNoneimplicitVkFormatProperties2The sType value of each struct in the pNext chain must be unique
VUID-VkFormatProperties3-sType-sTypeYNoneimplicitVkFormatProperties3sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524YNegativeFragmentShadingRate.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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.AttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHRIf 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-parameterYNoneimplicitVkFragmentShadingRateAttachmentInfoKHRIf pFragmentShadingRateAttachment is not NULL, pFragmentShadingRateAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sTypeYNoneimplicitVkFragmentShadingRateAttachmentInfoKHRsType must be VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
VUID-VkFrameBoundaryEXT-commonparentYNoneimplicitVkFrameBoundaryEXTBoth 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-parameterYNoneimplicitVkFrameBoundaryEXTflags must be a valid combination of VkFrameBoundaryFlagBitsEXT values
VUID-VkFrameBoundaryEXT-pBuffers-parameterYNoneimplicitVkFrameBoundaryEXTIf 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-parameterYNoneimplicitVkFrameBoundaryEXTIf 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-parameterYNoneimplicitVkFrameBoundaryEXTIf tagSize is not 0, and pTag is not NULL, pTag must be a valid pointer to an array of tagSize bytes
VUID-VkFrameBoundaryEXT-sType-sTypeYNoneimplicitVkFrameBoundaryEXTsType must be VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT
VUID-VkFramebufferAttachmentImageInfo-flags-parameterYNoneimplicitVkFramebufferAttachmentImageInfoflags must be a valid combination of VkImageCreateFlagBits values
VUID-VkFramebufferAttachmentImageInfo-pNext-pNextYNegativeImagelessFramebuffer.AttachmentImagePNextimplicitVkFramebufferAttachmentImageInfopNext must be NULL
VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameterYNoneimplicitVkFramebufferAttachmentImageInfoIf viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values
VUID-VkFramebufferAttachmentImageInfo-sType-sTypeYNoneimplicitVkFramebufferAttachmentImageInfosType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
VUID-VkFramebufferAttachmentImageInfo-usage-parameterYNoneimplicitVkFramebufferAttachmentImageInfousage must be a valid combination of VkImageUsageFlagBits values
VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmaskYNoneimplicitVkFramebufferAttachmentImageInfousage must not be 0
VUID-VkFramebufferAttachmentImageInfo-viewFormatCount-09536YNegativeImagelessFramebuffer.AttachmentImageFormatexplicitVkFramebufferAttachmentImageInfoIf viewFormatCount is not 0, and the render pass is not being used with an external format resolve attachment, each element of pViewFormats must not be VK_FORMAT_UNDEFINED
VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameterYNoneimplicitVkFramebufferAttachmentsCreateInfoIf attachmentImageInfoCount is not 0, pAttachmentImageInfos must be a valid pointer to an array of attachmentImageInfoCount valid VkFramebufferAttachmentImageInfo structures
VUID-VkFramebufferAttachmentsCreateInfo-sType-sTypeYNoneimplicitVkFramebufferAttachmentsCreateInfosType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
VUID-VkFramebufferCreateInfo-attachmentCount-00876YNoneexplicitVkFramebufferCreateInfoattachmentCount must be equal to the attachment count specified in renderPass
VUID-VkFramebufferCreateInfo-commonparentYNegativeParent.RenderPassFramebufferimplicitVkFramebufferCreateInfoBoth 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.FramebufferAttachmentPointersexplicitVkFramebufferCreateInfoIf 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.FeatureEnableexplicitVkFramebufferCreateInfoIf the imagelessFramebuffer feature is not enabled, flags must not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT
VUID-VkFramebufferCreateInfo-flags-03190YNegativeImagelessFramebuffer.BasicUsageexplicitVkFramebufferCreateInfoIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include a VkFramebufferAttachmentsCreateInfo structure
VUID-VkFramebufferCreateInfo-flags-03191YNegativeImagelessFramebuffer.BasicUsageexplicitVkFramebufferCreateInfoIf 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-03196YNegativeFragmentShadingRate.ImagelessAttachmentFragmentDensityexplicitVkFramebufferCreateInfoIf 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-03197YNegativeFragmentShadingRate.ImagelessAttachmentFragmentDensityexplicitVkFramebufferCreateInfoIf 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.ImagelessFramebufferexplicitVkFramebufferCreateInfoIf 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.AttachmentImageUsageMismatchexplicitVkFramebufferCreateInfoIf 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.DepthStencilResolveAttachmentexplicitVkFramebufferCreateInfoIf 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.AttachmentImageUsageMismatchexplicitVkFramebufferCreateInfoIf 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.BasicUsageexplicitVkFramebufferCreateInfoIf 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.RenderPassBeginImageView3DexplicitVkFramebufferCreateInfoIf 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-04533YNoneexplicitVkFramebufferCreateInfoIf 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-04534YNoneexplicitVkFramebufferCreateInfoIf 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-04535YNoneexplicitVkFramebufferCreateInfoIf 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.FramebufferDimensionsMultiviewexplicitVkFramebufferCreateInfoIf 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.FramebufferDimensionsexplicitVkFramebufferCreateInfoIf 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.FramebufferDimensionsexplicitVkFramebufferCreateInfoIf maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, 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.FramebufferDimensionsexplicitVkFramebufferCreateInfoIf maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, 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.BasicUsageexplicitVkFramebufferCreateInfoIf 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.BasicUsageexplicitVkFramebufferCreateInfoIf 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.FragmentShadingRateDimensionsexplicitVkFramebufferCreateInfoIf maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, and 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.FragmentShadingRateDimensionsexplicitVkFramebufferCreateInfoIf maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, and 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.FragmentShadingRateDimensionsexplicitVkFramebufferCreateInfoIf 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.FramebufferUsageexplicitVkFramebufferCreateInfoIf 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.FragmentShadingRateUsageexplicitVkFramebufferCreateInfoIf 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-04587YNegativeImagelessFramebuffer.FragmentShadingRateDimensionsMultiviewexplicitVkFramebufferCreateInfoIf flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and renderPass was specified with non-zero view masks, 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 the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-flags-parameterYNoneimplicitVkFramebufferCreateInfoflags must be a valid combination of VkFramebufferCreateFlagBits values
VUID-VkFramebufferCreateInfo-height-00887YNoneexplicitVkFramebufferCreateInfoheight must be greater than 0
VUID-VkFramebufferCreateInfo-height-00888YNoneexplicitVkFramebufferCreateInfoheight must be less than or equal to maxFramebufferHeight
VUID-VkFramebufferCreateInfo-layers-00889YNoneexplicitVkFramebufferCreateInfolayers must be greater than 0
VUID-VkFramebufferCreateInfo-layers-00890YNoneexplicitVkFramebufferCreateInfolayers must be less than or equal to maxFramebufferLayers
VUID-VkFramebufferCreateInfo-nullColorAttachmentWithExternalFormatResolve-09349YNegativeAndroidExternalResolve.RenderPassAndFramebufferexplicitVkFramebufferCreateInfoIf 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.InvalidFramebufferAttachmentImageUsageexplicitVkFramebufferCreateInfoIf 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.InvalidFramebufferAttachmentImageUsageexplicitVkFramebufferCreateInfoIf 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.FramebufferDepthStencilResolveAttachmentexplicitVkFramebufferCreateInfoIf 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-00881YNoneexplicitVkFramebufferCreateInfoIf 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-00883YNoneexplicitVkFramebufferCreateInfoIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip level
VUID-VkFramebufferCreateInfo-pAttachments-00884YNoneexplicitVkFramebufferCreateInfoIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzle
VUID-VkFramebufferCreateInfo-pAttachments-00891YNoneexplicitVkFramebufferCreateInfoIf 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-02552YNegativeFragmentShadingRate.AttachmentFragmentDensityFlagsexplicitVkFramebufferCreateInfoEach 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-02555YNoneexplicitVkFramebufferCreateInfoIf 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-02556YNoneexplicitVkFramebufferCreateInfoIf 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-02633YNoneexplicitVkFramebufferCreateInfoIf 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.FramebufferDepthStencilResolveAttachmentexplicitVkFramebufferCreateInfoIf 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.FramebufferexplicitVkFramebufferCreateInfoIf 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.AttachmentImagePNextimplicitVkFramebufferCreateInfopNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo
VUID-VkFramebufferCreateInfo-renderPass-02531YNoneexplicitVkFramebufferCreateInfoIf renderPass was specified with non-zero view masks, layers must be 1
VUID-VkFramebufferCreateInfo-renderPass-02553YNegativeFragmentShadingRate.FragmentDensityMapNonSubsampledImagesexplicitVkFramebufferCreateInfoIf 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.FragmentDensityMapReferenceAttachmentexplicitVkFramebufferCreateInfoEach 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.DepthStencilResolveAttachmentexplicitVkFramebufferCreateInfoIf 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-04536YNoneexplicitVkFramebufferCreateInfoIf 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.BasicUsageexplicitVkFramebufferCreateInfoIf 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.FragmentDensityMapOffsetQCOMexplicitVkFramebufferCreateInfoIf 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-parameterYNoneimplicitVkFramebufferCreateInforenderPass must be a valid VkRenderPass handle
VUID-VkFramebufferCreateInfo-sType-sTypeYNoneimplicitVkFramebufferCreateInfosType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
VUID-VkFramebufferCreateInfo-sType-uniqueYNoneimplicitVkFramebufferCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkFramebufferCreateInfo-samples-06881YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkFramebufferCreateInfoIf 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.MultisampledRenderToSingleSampledexplicitVkFramebufferCreateInfoIf 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-00885YNoneexplicitVkFramebufferCreateInfowidth must be greater than 0
VUID-VkFramebufferCreateInfo-width-00886YNoneexplicitVkFramebufferCreateInfowidth must be less than or equal to maxFramebufferWidth
VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNextYNoneimplicitVkFramebufferMixedSamplesCombinationNVpNext must be NULL
VUID-VkFramebufferMixedSamplesCombinationNV-sType-sTypeYNoneimplicitVkFramebufferMixedSamplesCombinationNVsType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
VUID-VkGeneratedCommandsInfoEXT-commonparentYNoneimplicitVkGeneratedCommandsInfoEXTBoth of indirectCommandsLayout, and indirectExecutionSet that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGeneratedCommandsInfoEXT-indirectAddress-11074YNoneexplicitVkGeneratedCommandsInfoEXTindirectAddress must be aligned to 4
VUID-VkGeneratedCommandsInfoEXT-indirectAddress-11076YNegativeDeviceGeneratedCommands.GeneratedCommandsInfoAddressesexplicitVkGeneratedCommandsInfoEXTindirectAddress must not be NULL
VUID-VkGeneratedCommandsInfoEXT-indirectAddressSize-11077YNegativeDeviceGeneratedCommands.GeneratedCommandsInfoAddressesexplicitVkGeneratedCommandsInfoEXTindirectAddressSize must be greater than zero
VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11002YNegativeDeviceGeneratedCommands.ExecuteShaderObjectStages, NegativeDeviceGeneratedCommands.ExecuteStageMismatchexplicitVkGeneratedCommandsInfoEXTIf indirectCommandsLayout was created with a token sequence that contained the VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the shader stages used to create the initial shader state of indirectExecutionSet must equal the VkIndirectCommandsExecutionSetTokenEXT::shaderStages used to create indirectCommandsLayout
VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11065NNoneexplicitVkGeneratedCommandsInfoEXTIf the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT, then the indirectExecutionSet's push constant layout must contain the updateRange specified in VkIndirectCommandsPushConstantTokenEXT
VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11066NNoneexplicitVkGeneratedCommandsInfoEXTIf the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT, then the indirectExecutionSet's push constant layout must contain the updateRange specified in VkIndirectCommandsPushConstantTokenEXT
VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11079YNegativeDeviceGeneratedCommands.GeneratedCommandsInfoDynamicVertexexplicitVkGeneratedCommandsInfoEXTIf indirectCommandsLayout was created using a VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT token and shader objects are not bound then the currently bound graphics pipeline must have been created with VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE in pDynamicStates
VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11083YNoneexplicitVkGeneratedCommandsInfoEXTIf the token sequence of the passed indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the indirectExecutionSet must not be VK_NULL_HANDLE
VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11144NNoneexplicitVkGeneratedCommandsInfoEXTIf the indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, then the descriptor and push constant layout info provided either by pipelineLayout or through a VkPipelineLayoutCreateInfo in pNext of the VkIndirectCommandsLayoutCreateInfoEXT used to create indirectCommandsLayout must be compatible with the descriptor and push constant layout info used by indirectExecutionSet
VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-parameterYNoneimplicitVkGeneratedCommandsInfoEXTindirectCommandsLayout must be a valid VkIndirectCommandsLayoutEXT handle
VUID-VkGeneratedCommandsInfoEXT-indirectExecutionSet-11080YNoneexplicitVkGeneratedCommandsInfoEXTIf indirectExecutionSet is VK_NULL_HANDLE, a VkGeneratedCommandsPipelineInfoEXT or VkGeneratedCommandsShaderInfoEXT must be included in the pNext chain
VUID-VkGeneratedCommandsInfoEXT-indirectExecutionSet-parameterYNoneimplicitVkGeneratedCommandsInfoEXTIf indirectExecutionSet is not VK_NULL_HANDLE, indirectExecutionSet must be a valid VkIndirectExecutionSetEXT handle
VUID-VkGeneratedCommandsInfoEXT-maxDrawCount-11078YNegativeDeviceGeneratedCommands.GeneratedCommandsInfoMultiDrawLimitexplicitVkGeneratedCommandsInfoEXTWhen not ignored, maxDrawCount × maxSequenceCount must be less than 2^24
VUID-VkGeneratedCommandsInfoEXT-maxSequenceCount-11067YNoneexplicitVkGeneratedCommandsInfoEXTmaxSequenceCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoEXT::maxSequencesCount that was used to determine the preprocessSize
VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11063YNegativeDeviceGeneratedCommands.GeneratedCommandsInfoMultiDrawLimitexplicitVkGeneratedCommandsInfoEXTIf vkGetGeneratedCommandsMemoryRequirementsEXT returns a non-zero size, preprocessAddress must not be NULL
VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11064NNoneexplicitVkGeneratedCommandsInfoEXTVkDeviceMemory objects bound to the underlying buffer for preprocessAddress must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned by vkGetGeneratedCommandsMemoryRequirementsEXT
VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11069YNegativeDeviceGeneratedCommands.ExecutePreprocessBufferUsageexplicitVkGeneratedCommandsInfoEXTThe underlying buffer for preprocessAddress must have the VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT bit set in its usage flag
VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11070YNegativeDeviceGeneratedCommands.ExecutePreprocessBufferUsageexplicitVkGeneratedCommandsInfoEXTIf the underlying buffer for preprocessAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkGeneratedCommandsInfoEXT-preprocessSize-11071YNegativeDeviceGeneratedCommands.GeneratedCommandsInfoMultiDrawLimitexplicitVkGeneratedCommandsInfoEXTpreprocessSize must be greater than or equal to the memory requirement's size returned by vkGetGeneratedCommandsMemoryRequirementsEXT using the matching inputs (indirectCommandsLayout, ...) as within this structure
VUID-VkGeneratedCommandsInfoEXT-sType-sTypeYNoneimplicitVkGeneratedCommandsInfoEXTsType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT
VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11068NNoneexplicitVkGeneratedCommandsInfoEXTIf sequenceCountAddress is not NULL, the value contained in the address must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoEXT::maxSequencesCount that was used to determine the preprocessSize
VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11072YNegativeDeviceGeneratedCommands.ExecuteSequenceCountBufferUsageexplicitVkGeneratedCommandsInfoEXTThe underlying buffer for sequenceCountAddress must have the VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT bit set in its usage flag
VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11073YNegativeDeviceGeneratedCommands.GeneratedCommandsInfoAddressesexplicitVkGeneratedCommandsInfoEXTIf sequenceCountAddress is not NULL, sequenceCountAddress must be aligned to 4
VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11075YNegativeDeviceGeneratedCommands.ExecuteSequenceCountBufferUsageexplicitVkGeneratedCommandsInfoEXTIf the underlying buffer for sequenceCountAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkGeneratedCommandsInfoEXT-shaderStages-parameterYNoneimplicitVkGeneratedCommandsInfoEXTshaderStages must be a valid combination of VkShaderStageFlagBits values
VUID-VkGeneratedCommandsInfoEXT-shaderStages-requiredbitmaskYNoneimplicitVkGeneratedCommandsInfoEXTshaderStages must not be 0
VUID-VkGeneratedCommandsInfoNV-commonparentYNoneimplicitVkGeneratedCommandsInfoNVEach 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-02913NNoneexplicitVkGeneratedCommandsInfoNVIf 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-02914NNoneexplicitVkGeneratedCommandsInfoNVIf 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-02915NNoneexplicitVkGeneratedCommandsInfoNVIf 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-07078NNoneexplicitVkGeneratedCommandsInfoNVIf 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-07079NNoneexplicitVkGeneratedCommandsInfoNVIf 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-parameterYNoneimplicitVkGeneratedCommandsInfoNVindirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-VkGeneratedCommandsInfoNV-pNext-pNextYNoneimplicitVkGeneratedCommandsInfoNVpNext must be NULL
VUID-VkGeneratedCommandsInfoNV-pStreams-parameterYNoneimplicitVkGeneratedCommandsInfoNVpStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures
VUID-VkGeneratedCommandsInfoNV-pipeline-02912NNoneexplicitVkGeneratedCommandsInfoNVThe provided pipeline must match the pipeline bound at execution time
VUID-VkGeneratedCommandsInfoNV-pipeline-parameterYNoneimplicitVkGeneratedCommandsInfoNVIf pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09084NNoneexplicitVkGeneratedCommandsInfoNVIf 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-09085NNoneexplicitVkGeneratedCommandsInfoNVIf 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-09086NNoneexplicitVkGeneratedCommandsInfoNVIf 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-09087NNoneexplicitVkGeneratedCommandsInfoNVIf 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-parameterYNoneimplicitVkGeneratedCommandsInfoNVpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918NNoneexplicitVkGeneratedCommandsInfoNVpreprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971NNoneexplicitVkGeneratedCommandsInfoNVIf preprocessBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameterYNoneimplicitVkGeneratedCommandsInfoNVpreprocessBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919NNoneexplicitVkGeneratedCommandsInfoNVpreprocessOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920NNoneexplicitVkGeneratedCommandsInfoNVpreprocessSize 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-sTypeYNoneimplicitVkGeneratedCommandsInfoNVsType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917NNoneexplicitVkGeneratedCommandsInfoNVsequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoNV::maxSequencesCount that was used to determine the preprocessSize
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921NNoneexplicitVkGeneratedCommandsInfoNVsequencesCountBuffer 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-02922NNoneexplicitVkGeneratedCommandsInfoNVIf sequencesCountBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923NNoneexplicitVkGeneratedCommandsInfoNVIf sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesCountBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972NNoneexplicitVkGeneratedCommandsInfoNVIf 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-parameterYNoneimplicitVkGeneratedCommandsInfoNVIf sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924NNoneexplicitVkGeneratedCommandsInfoNVIf 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-02925NNoneexplicitVkGeneratedCommandsInfoNVIf sequencesIndexBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926NNoneexplicitVkGeneratedCommandsInfoNVIf sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesIndexBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973NNoneexplicitVkGeneratedCommandsInfoNVIf 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-parameterYNoneimplicitVkGeneratedCommandsInfoNVIf sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-streamCount-02916NNoneexplicitVkGeneratedCommandsInfoNVstreamCount must match the indirectCommandsLayout's streamCount
VUID-VkGeneratedCommandsInfoNV-streamCount-arraylengthYNoneimplicitVkGeneratedCommandsInfoNVstreamCount must be greater than 0
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-commonparentYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoEXTBoth of indirectCommandsLayout, and indirectExecutionSet that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11010YNegativeDeviceGeneratedCommands.GetRequirementsExecutionSetTokenexplicitVkGeneratedCommandsMemoryRequirementsInfoEXTIf indirectCommandsLayout was created with a token sequence that contained the VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, indirectExecutionSet must not be VK_NULL_HANDLE
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11011YNegativeDeviceGeneratedCommands.GetRequirementsNoExecutionTokenNullIESexplicitVkGeneratedCommandsMemoryRequirementsInfoEXTIf indirectCommandsLayout was not created with a token sequence that contained the VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, indirectExecutionSet must be VK_NULL_HANDLE
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11151YNegativeDeviceGeneratedCommands.GetRequirementsExecutionSetTokenStageexplicitVkGeneratedCommandsMemoryRequirementsInfoEXTIf indirectCommandsLayout was created with a token sequence that contained the VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the shader stages used to create the initial shader state of indirectExecutionSet must equal the VkIndirectCommandsExecutionSetTokenEXT::shaderStages used to create indirectCommandsLayout
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoEXTindirectCommandsLayout must be a valid VkIndirectCommandsLayoutEXT handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectExecutionSet-11012YNegativeDeviceGeneratedCommands.GetRequirementsNullIESexplicitVkGeneratedCommandsMemoryRequirementsInfoEXTIf indirectExecutionSet is VK_NULL_HANDLE, either a VkGeneratedCommandsPipelineInfoEXT or a VkGeneratedCommandsShaderInfoEXT must be included in the pNext chain
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectExecutionSet-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoEXTIf indirectExecutionSet is not VK_NULL_HANDLE, indirectExecutionSet must be a valid VkIndirectExecutionSetEXT handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-maxDrawCount-11146YNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoEXTWhen not ignored, maxDrawCount × maxSequenceCount must be less than 2^24
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-maxSequencesCount-11009YNegativeDeviceGeneratedCommands.GetRequirementsMaxIndirectSequenceCountexplicitVkGeneratedCommandsMemoryRequirementsInfoEXTmaxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectSequenceCount
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-pNext-pNextYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoEXTEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkGeneratedCommandsPipelineInfoEXT or VkGeneratedCommandsShaderInfoEXT
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-sType-sTypeYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoEXTsType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT
VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-sType-uniqueYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoEXTThe sType value of each struct in the pNext chain must be unique
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparentYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVBoth 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-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVindirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNVmaxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNextYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVpNext must be NULL
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVIf pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNVIf pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_GRAPHICS, then pipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNVIf 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-09077NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNVIf 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 VK_NULL_HANDLE
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sTypeYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNVsType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
VUID-VkGeneratedCommandsPipelineInfoEXT-pipeline-parameterYNoneimplicitVkGeneratedCommandsPipelineInfoEXTpipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsPipelineInfoEXT-sType-sTypeYNoneimplicitVkGeneratedCommandsPipelineInfoEXTsType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT
VUID-VkGeneratedCommandsShaderInfoEXT-pShaders-11127NNoneexplicitVkGeneratedCommandsShaderInfoEXTpShaders must not contain more than one shader object for a given VkShaderStageFlagBits stage
VUID-VkGeneratedCommandsShaderInfoEXT-pShaders-parameterYNoneimplicitVkGeneratedCommandsShaderInfoEXTpShaders must be a valid pointer to an array of shaderCount valid VkShaderEXT handles
VUID-VkGeneratedCommandsShaderInfoEXT-sType-sTypeYNoneimplicitVkGeneratedCommandsShaderInfoEXTsType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT
VUID-VkGeneratedCommandsShaderInfoEXT-shaderCount-arraylengthYNoneimplicitVkGeneratedCommandsShaderInfoEXTshaderCount must be greater than 0
VUID-VkGeometryAABBNV-aabbData-parameterYNoneimplicitVkGeometryAABBNVIf aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle
VUID-VkGeometryAABBNV-offset-02439YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryAABBNVoffset must be less than the size of aabbData
VUID-VkGeometryAABBNV-offset-02440YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryAABBNVoffset must be a multiple of 8
VUID-VkGeometryAABBNV-pNext-pNextYNoneimplicitVkGeometryAABBNVpNext must be NULL
VUID-VkGeometryAABBNV-sType-sTypeYNoneimplicitVkGeometryAABBNVsType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV
VUID-VkGeometryAABBNV-stride-02441YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryAABBNVstride must be a multiple of 8
VUID-VkGeometryDataNV-aabbs-parameterNNoneimplicitVkGeometryDataNVaabbs must be a valid VkGeometryAABBNV structure
VUID-VkGeometryDataNV-triangles-parameterNNoneimplicitVkGeometryDataNVtriangles must be a valid VkGeometryTrianglesNV structure
VUID-VkGeometryNV-flags-parameterYNoneimplicitVkGeometryNVflags must be a valid combination of VkGeometryFlagBitsKHR values
VUID-VkGeometryNV-geometry-parameterNNoneimplicitVkGeometryNVgeometry must be a valid VkGeometryDataNV structure
VUID-VkGeometryNV-geometryType-03503YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryNVgeometryType must be VK_GEOMETRY_TYPE_TRIANGLES_NV or VK_GEOMETRY_TYPE_AABBS_NV
VUID-VkGeometryNV-geometryType-parameterYNegativeRayTracingNV.ValidateGeometryimplicitVkGeometryNVgeometryType must be a valid VkGeometryTypeKHR value
VUID-VkGeometryNV-pNext-pNextYNoneimplicitVkGeometryNVpNext must be NULL
VUID-VkGeometryNV-sType-sTypeYNoneimplicitVkGeometryNVsType must be VK_STRUCTURE_TYPE_GEOMETRY_NV
VUID-VkGeometryTrianglesNV-commonparentYNoneimplicitVkGeometryTrianglesNVEach 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.ValidateGeometryexplicitVkGeometryTrianglesNVindexCount must be 0 if indexType is VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-02434YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVindexData must be VK_NULL_HANDLE if indexType is VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-02435NNoneexplicitVkGeometryTrianglesNVindexData must be a valid VkBuffer handle if indexType is not VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-parameterYNoneimplicitVkGeometryTrianglesNVIf indexData is not VK_NULL_HANDLE, indexData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-indexOffset-02431YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVindexOffset must be less than the size of indexData
VUID-VkGeometryTrianglesNV-indexOffset-02432YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVindexOffset must be a multiple of the element size of indexType
VUID-VkGeometryTrianglesNV-indexType-02433YNoneexplicitVkGeometryTrianglesNVindexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexType-parameterYNoneimplicitVkGeometryTrianglesNVindexType must be a valid VkIndexType value
VUID-VkGeometryTrianglesNV-pNext-pNextYNoneimplicitVkGeometryTrianglesNVpNext must be NULL
VUID-VkGeometryTrianglesNV-sType-sTypeYNoneimplicitVkGeometryTrianglesNVsType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
VUID-VkGeometryTrianglesNV-transformData-parameterYNoneimplicitVkGeometryTrianglesNVIf transformData is not VK_NULL_HANDLE, transformData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-transformOffset-02437YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVtransformOffset must be less than the size of transformData
VUID-VkGeometryTrianglesNV-transformOffset-02438YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVtransformOffset must be a multiple of 16
VUID-VkGeometryTrianglesNV-vertexData-parameterYNegativeRayTracingNV.ValidateGeometryimplicitVkGeometryTrianglesNVIf vertexData is not VK_NULL_HANDLE, vertexData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-vertexFormat-02430YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVvertexFormat 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-parameterYNoneimplicitVkGeometryTrianglesNVvertexFormat must be a valid VkFormat value
VUID-VkGeometryTrianglesNV-vertexOffset-02428YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVvertexOffset must be less than the size of vertexData
VUID-VkGeometryTrianglesNV-vertexOffset-02429YNegativeRayTracingNV.ValidateGeometryexplicitVkGeometryTrianglesNVvertexOffset must be a multiple of the component size of vertexFormat
VUID-VkGeometryTrianglesNV-vertexStride-03818NNoneexplicitVkGeometryTrianglesNVvertexStride must be less than or equal to 232-1
VUID-VkGetLatencyMarkerInfoNV-pTimings-parameterNNoneimplicitVkGetLatencyMarkerInfoNVIf 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-sTypeYNoneimplicitVkGetLatencyMarkerInfoNVsType must be VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV
VUID-VkGraphicsPipelineCreateInfo-Geometry-07726YNegativeGeometryTessellation.PointSizeGeomShaderWriteexplicitVkGraphicsPipelineCreateInfoIf 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-06632NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.AttributeNotProvidedexplicitVkGraphicsPipelineCreateInfoIf 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.AttributeTypeMismatchexplicitVkGraphicsPipelineCreateInfoIf 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.BasicUsageexplicitVkGraphicsPipelineCreateInfoIf 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-04574NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-04575NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-04889NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06569NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.ImplicitVUIDsexplicitVkGraphicsPipelineCreateInfoIf 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-09043NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.CreateFlagsexplicitVkGraphicsPipelineCreateInfoIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkGraphicsPipelineCreateInfo-None-09526YNegativeDynamicRendering.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfoIf the dynamicRenderingLocalRead feature is not enabled, 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-PrimitiveId-06264NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-07063NNoneexplicitVkGraphicsPipelineCreateInfoThe 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.PipelineTessellationMissingPointSizeexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineTessellationPointSizeexplicitVkGraphicsPipelineCreateInfoIf 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.AlphaToCoverageOutputIndex1, NegativeShaderInterface.AlphaToCoverageOutputLocation0, NegativeShaderInterface.AlphaToCoverageOutputNoAlphaexplicitVkGraphicsPipelineCreateInfoIf 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-commonparentYNoneimplicitVkGraphicsPipelineCreateInfoEach 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.GeometryShaderConservativeRasterizationexplicitVkGraphicsPipelineCreateInfoIf 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.MeshShaderConservativeRasterizationexplicitVkGraphicsPipelineCreateInfoIf 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.VertexPointOutputConservativeRasterizationexplicitVkGraphicsPipelineCreateInfoIf 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.FramebufferMixedSamplesCoverageReductionexplicitVkGraphicsPipelineCreateInfoIf 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.CreateGraphicsPipelineWithAttachmentSampleCountexplicitVkGraphicsPipelineCreateInfoIf 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, NegativeGraphicsLibrary.VertexInputexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires vertex input state, and related dynamic state is not set, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576YNegativeDynamicRendering.CreatePipelineWithoutFeature, NegativeGraphicsLibrary.ImplicitVUIDs, NegativePipeline.NullRenderPassexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledAlphaToCoverageEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledAlphaToOneEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledColorBlendAdvancedexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledColorBlendEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledColorBlendEquationexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledColorWriteMaskexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledConservativeRasterizationModeexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledCoverageModulationModeexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledCoverageModulationTableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledCoverageModulationTableEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledCoverageReductionModeexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledCoverageToColorEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledCoverageToColorLocationexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledDepthClampEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledDepthClipEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledDepthClipNegativeOneToOneexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledExtraPrimitiveOverestimationSizeexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledLineRasterizationModeexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledLineStippleEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledLogicOpEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledPolygonModeexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledProvokingVertexModeexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledRasterizationSamplesexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledRasterizationStreamexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledRepresentativeFragmentTestEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledSampleLocationsEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledSampleMaskexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledShadingRateImageEnableexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledTessellationDomainOriginexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledViewportSwizzleexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureDisabledViewportWScalingEnableexplicitVkGraphicsPipelineCreateInfoIf 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-09301YNoneexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRasterizationSamplesDynamicRenderingexplicitVkGraphicsPipelineCreateInfoIf 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-09305YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09306YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09307YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09308NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09309YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09310YNoneexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRasterizationSamplesexplicitVkGraphicsPipelineCreateInfoIf 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-09314YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09315YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09316YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09317NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-VkGraphicsPipelineCreateInfo-flags-02877YNegativePipeline.IndirectBindablePipelineWithoutFeatureexplicitVkGraphicsPipelineCreateInfoIf flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the deviceGeneratedCommands feature must be enabled
VUID-VkGraphicsPipelineCreateInfo-flags-02966NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03373YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03374YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03375YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03376YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03377YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03577YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-04901NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-04902NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkGraphicsPipelineCreateInfo-flags-06482YNegativeDynamicRendering.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfoIf the dynamicRenderingLocalRead feature is not enabled, 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-06591YNegativePipeline.RasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfoIf 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-06596NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06598NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.CreateLibraryFlagexplicitVkGraphicsPipelineCreateInfoIf 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.LinkOptimizationexplicitVkGraphicsPipelineCreateInfoIf 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.LinkOptimizationexplicitVkGraphicsPipelineCreateInfoIf 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.SetLayoutCountexplicitVkGraphicsPipelineCreateInfoIf 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.IndependentSetsLinkCreateexplicitVkGraphicsPipelineCreateInfoIf 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-06616NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06618NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06620YNoneexplicitVkGraphicsPipelineCreateInfoIf 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.LibraryViewMaskexplicitVkGraphicsPipelineCreateInfoIf 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-06633YNegativeGraphicsLibrary.MultisampleStateFragOutputLibraryexplicitVkGraphicsPipelineCreateInfoIf 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-06637YNoneexplicitVkGraphicsPipelineCreateInfoIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState->sampleShadingEnable is VK_TRUE, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pMultisampleState must be identically defined to that used to create the library
VUID-VkGraphicsPipelineCreateInfo-flags-06638YNegativeGraphicsLibrary.FragmentShadingRateStateFragShaderLibraryexplicitVkGraphicsPipelineCreateInfoIf 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.NullStagesexplicitVkGraphicsPipelineCreateInfoIf 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.PreRasterStateNoLayoutexplicitVkGraphicsPipelineCreateInfoIf 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-06643YNegativeGraphicsLibrary.BadRenderPassFragmentOutput, NegativeGraphicsLibrary.BadRenderPassFragmentShader, NegativeGraphicsLibrary.BadRenderPassPreRasterexplicitVkGraphicsPipelineCreateInfoIf 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-06644YNegativeGraphicsLibrary.MissingShaderStages, NegativeGraphicsLibrary.StageCountexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineExecutablePropertiesexplicitVkGraphicsPipelineCreateInfoIf 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.NullDSL, NegativeGraphicsLibrary.NullLayoutPreRasterFragShaderexplicitVkGraphicsPipelineCreateInfoIf 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-06682YNegativeGraphicsLibrary.NullLayoutPreRasterFragShaderexplicitVkGraphicsPipelineCreateInfoIf 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-06683YNegativeGraphicsLibrary.NullLayoutPreRasterDiscardEnableexplicitVkGraphicsPipelineCreateInfoIf 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-06684NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06729NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06730YNegativeGraphicsLibrary.IndependentSetLayoutCompatible, NegativeGraphicsLibrary.IndependentSetLayoutNullexplicitVkGraphicsPipelineCreateInfoIf 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.DSLShaderBindingsNullInCreateexplicitVkGraphicsPipelineCreateInfoIf 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.DSLShaderBindingsNullInLinkexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineProtectedAccessexplicitVkGraphicsPipelineCreateInfoflags 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.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-07984YNegativePipeline.CreateGraphicsPipelineWithBadBasePointerexplicitVkGraphicsPipelineCreateInfoIf 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.GraphicsPipelineWithBadBasePointerexplicitVkGraphicsPipelineCreateInfoIf 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.GraphicsPipelineWithBadBasePointerexplicitVkGraphicsPipelineCreateInfoIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-07997YNegativePipeline.CreateFlagsexplicitVkGraphicsPipelineCreateInfoflags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
VUID-VkGraphicsPipelineCreateInfo-flags-08897YNegativeGraphicsLibrary.VertexInputWithVertexShaderexplicitVkGraphicsPipelineCreateInfoIf 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-08898YNegativeGraphicsLibrary.VertexInputexplicitVkGraphicsPipelineCreateInfoIf 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-08899NNoneexplicitVkGraphicsPipelineCreateInfoIf 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 vertex input state or include that state in a linked pipeline library
VUID-VkGraphicsPipelineCreateInfo-flags-08900NNoneexplicitVkGraphicsPipelineCreateInfoIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT the pipeline must define pre-rasterization shader state
VUID-VkGraphicsPipelineCreateInfo-flags-08901YNegativeGraphicsLibrary.MissingPreRasterizationexplicitVkGraphicsPipelineCreateInfoIf 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-08903NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-08904NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-08906NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-08907NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-08909YNegativeGraphicsLibrary.MissingFragmentOutput, NegativeGraphicsLibrary.MissingFragmentShaderexplicitVkGraphicsPipelineCreateInfoIf 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.LinkOptimizationexplicitVkGraphicsPipelineCreateInfoIf flags includes VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, flags must also include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-11000YNoneexplicitVkGraphicsPipelineCreateInfoIf flags includes VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the deviceGeneratedCommands feature must be enabled
VUID-VkGraphicsPipelineCreateInfo-flags-11001YNoneexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires pre-rasterization shader state and flags includes VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then all stages must not specify Xfb execution mode
VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506YNegativeFragmentShadingRate.Ops, NegativeFragmentShadingRate.PipelineCombinerOpsLimitexplicitVkGraphicsPipelineCreateInfoIf 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-04573NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.GeometryStreamsCapabilityexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineCreateFlags2explicitVkGraphicsPipelineCreateInfoIf the graphicsPipelineLibrary feature is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-layout-01688YNegativePipeline.MaxPerStageResourcesexplicitVkGraphicsPipelineCreateInfoThe 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-06602YNegativeGraphicsLibrary.CreateStateGPL, NegativeGraphicsLibrary.ImplicitVUIDsexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires fragment shader state or pre-rasterization shader state, layout must be a valid VkPipelineLayout handle
VUID-VkGraphicsPipelineCreateInfo-layout-07827YNegativeGraphicsLibrary.IncompatibleLayouts, NegativeGraphicsLibrary.IncompatibleLayoutsMultipleSubsets, NegativeGraphicsLibrary.MissingLinkingLayoutexplicitVkGraphicsPipelineCreateInfoIf 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.NotInLayoutexplicitVkGraphicsPipelineCreateInfoIf a push constant block is declared in a shader, a push constant range in layout must match the shader stage
VUID-VkGraphicsPipelineCreateInfo-layout-07988YNegativeDescriptors.BindInvalidPipelineLayout, NegativeGraphicsLibrary.DSLShaderStageMask, NegativePipelineLayout.DescriptorNotAccessible, NegativePipelineLayout.UniformBlockNotProvided, NegativeSubpass.SubpassInputNotBoundDescriptorSetexplicitVkGraphicsPipelineCreateInfoIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkGraphicsPipelineCreateInfo-layout-07990YNegativePipelineLayout.DescriptorTypeMismatch, NegativePipelineLayout.DescriptorTypeMismatchNonCombinedImageSamplerexplicitVkGraphicsPipelineCreateInfoIf 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.DescriptorCountConstantexplicitVkGraphicsPipelineCreateInfoIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkGraphicsPipelineCreateInfo-layout-10069NNoneexplicitVkGraphicsPipelineCreateInfoIf a push constant block is declared in a shader, the block must be contained inside the push constant range in layout that matches the stage
VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06649NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.LineRasterizationexplicitVkGraphicsPipelineCreateInfoIf 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 VkPipelineRasterizationLineStateCreateInfoKHR structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.NumSamplesMismatchexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfoIf 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.AttachmentSampleCountexplicitVkGraphicsPipelineCreateInfoIf the fragment output interface state, elements of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV must be valid VkSampleCountFlagBits values
VUID-VkGraphicsPipelineCreateInfo-pColorBlendState-09038YNoneexplicitVkGraphicsPipelineCreateInfoIf pColorBlendState is not NULL it must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029YNoneexplicitVkGraphicsPipelineCreateInfoIf pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09034YNoneexplicitVkGraphicsPipelineCreateInfoIf pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09036YNoneexplicitVkGraphicsPipelineCreateInfoIf pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494YNegativeFragmentShadingRate.PipelineexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfoIf 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-04569NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-04570NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-04571NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-04572NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.OpsexplicitVkGraphicsPipelineCreateInfoIf 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.OpsexplicitVkGraphicsPipelineCreateInfoIf 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-06570NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06571NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06572NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09639YNegativeDynamicState.PipelineFeatureDisabledConservativeRasterizationMode, NegativeDynamicState.RasterizationConservativeexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires pre-rasterization shader state, pDynamicState includes VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT, and pDynamicState does not include VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT, pRasterizationState must include a VkPipelineRasterizationConservativeStateCreateInfoEXT in its pNext chain
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameterYNoneimplicitVkGraphicsPipelineCreateInfoIf pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749YNegativeDynamicState.LineWidthexplicitVkGraphicsPipelineCreateInfoIf 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.InvalidPipelineDepthBiasexplicitVkGraphicsPipelineCreateInfoIf 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.ViewportWScalingNVexplicitVkGraphicsPipelineCreateInfoIf 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.DepthRangeUnrestrictedexplicitVkGraphicsPipelineCreateInfoIf 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.ExtendedDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfoIf 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.ViewportCountWithExtendedDynamicStateexplicitVkGraphicsPipelineCreateInfoIf 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.ScissorWithCountexplicitVkGraphicsPipelineCreateInfoIf 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.NonGraphicsexplicitVkGraphicsPipelineCreateInfoAll elements of the pDynamicStates member of pDynamicState must not be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056YNegativeCommand.ExclusiveScissorNVexplicitVkGraphicsPipelineCreateInfoIf 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.ShadingRateImageNVexplicitVkGraphicsPipelineCreateInfoIf 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-04058NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.ViewportexplicitVkGraphicsPipelineCreateInfoIf 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.ViewportexplicitVkGraphicsPipelineCreateInfoIf 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.ExtendedDynamicStateViewportScissorPipelineexplicitVkGraphicsPipelineCreateInfoIf 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.ExtendedDynamicStateViewportScissorPipelineexplicitVkGraphicsPipelineCreateInfoIf 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.ColorWriteDisabledexplicitVkGraphicsPipelineCreateInfoIf 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.VertexInputDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfoIf 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.ExtendedDynamicState2DisabledexplicitVkGraphicsPipelineCreateInfoIf 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.ExtendedDynamicState2LogicOpDisabledexplicitVkGraphicsPipelineCreateInfoIf 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.ExtendedDynamicState2PatchControlPointsDisabledexplicitVkGraphicsPipelineCreateInfoIf 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.BasicUsageexplicitVkGraphicsPipelineCreateInfoIf 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.BasicUsageexplicitVkGraphicsPipelineCreateInfoIf 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.BasicUsageexplicitVkGraphicsPipelineCreateInfoIf 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.SampleLocationsexplicitVkGraphicsPipelineCreateInfoIf 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.SampleLocationsexplicitVkGraphicsPipelineCreateInfoIf 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.SampleLocationsexplicitVkGraphicsPipelineCreateInfoIf 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-07730NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-07731NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-07854YNoneexplicitVkGraphicsPipelineCreateInfoIf 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.DiscardRectanglesVersionexplicitVkGraphicsPipelineCreateInfoIf 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-07856YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-09032YNoneexplicitVkGraphicsPipelineCreateInfoIf pInputAssemblyState is not NULL it must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06599NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06611NNoneexplicitVkGraphicsPipelineCreateInfoAny 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.SetLayoutCountLinkingexplicitVkGraphicsPipelineCreateInfoIf 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.IndependentSetsLinkOnlyexplicitVkGraphicsPipelineCreateInfoIf 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-06617NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06619NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.PushConstantStagesexplicitVkGraphicsPipelineCreateInfoIf 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-06623NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.LibrariesViewMaskexplicitVkGraphicsPipelineCreateInfoIf 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-06628NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06634YNegativeGraphicsLibrary.MultisampleStateFragOutputNull, NegativeGraphicsLibrary.MultisampleStateFragShaderLibraryexplicitVkGraphicsPipelineCreateInfoIf 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-06635YNegativeGraphicsLibrary.MultisampleStateBothLibrary, NegativeGraphicsLibrary.MultisampleStateMultipleSubsets, NegativeGraphicsLibrary.MultisampleStateSampleMaskArray, NegativeGraphicsLibrary.MultisampleStateSampleMaskArrayNullexplicitVkGraphicsPipelineCreateInfoIf 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-06636YNoneexplicitVkGraphicsPipelineCreateInfoIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState->sampleShadingEnable 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-06639YNegativeGraphicsLibrary.FragmentShadingRateStateBothLibraryexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineExecutablePropertiesexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineExecutablePropertiesexplicitVkGraphicsPipelineCreateInfoIf 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.NullDSLLinkingexplicitVkGraphicsPipelineCreateInfoIf 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.DSLShaderBindingsLinkOnlyexplicitVkGraphicsPipelineCreateInfoIf 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-pLibraries-09567YNegativeGraphicsLibrary.MultisampleStateFragShaderNullexplicitVkGraphicsPipelineCreateInfoIf one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState->sampleShadingEnable equal VK_TRUE, and if VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pMultisampleState must be identically defined to that used to create the library
VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026YNegativeDynamicRendering.MissingMultisampleState, NegativeDynamicRendering.PipelineMissingMultisampleState, NegativeDynamicState.MultisampleStateIgnored, NegativeDynamicState.MultisampleStateIgnoredAlphaToOne, NegativeGraphicsLibrary.MultisampleStateFragOutputNullexplicitVkGraphicsPipelineCreateInfoIf 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-09027YNoneexplicitVkGraphicsPipelineCreateInfoIf pMultisampleState is not NULL it must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pNext-pNextYNoneimplicitVkGraphicsPipelineCreateInfoEach 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, VkPipelineBinaryInfoKHR, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, VkPipelineRepresentativeFragmentTestStateCreateInfoNV, VkPipelineRobustnessCreateInfoEXT, VkRenderingAttachmentLocationInfoKHR, or VkRenderingInputAttachmentIndexInfoKHR
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-06601YNegativePipeline.NoRasterizationState, NegativePipeline.NoRasterizationStateDynamicRenderingexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires pre-rasterization shader state, and related dynamic state is not set, pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039YNoneexplicitVkGraphicsPipelineCreateInfoIf VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and related dynamic state is not set, then pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040YNoneexplicitVkGraphicsPipelineCreateInfoIf pRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-00729YNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.TessellationexplicitVkGraphicsPipelineCreateInfoIf 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.TessellationexplicitVkGraphicsPipelineCreateInfoIf 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.MismatchedTessellationExecutionModesexplicitVkGraphicsPipelineCreateInfoIf 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.MismatchedTessellationExecutionModesexplicitVkGraphicsPipelineCreateInfoIf 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.MismatchedTessellationExecutionModesexplicitVkGraphicsPipelineCreateInfoIf 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.MismatchedTessellationExecutionModesexplicitVkGraphicsPipelineCreateInfoIf 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.IncompatiblePrimitiveTopologyexplicitVkGraphicsPipelineCreateInfoIf 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.IncompatibleTessGeomPrimitiveTopologyexplicitVkGraphicsPipelineCreateInfoIf 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-00740NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-00742NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-01565NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.BasicUsageNVexplicitVkGraphicsPipelineCreateInfoIf 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.BasicUsageNVexplicitVkGraphicsPipelineCreateInfoIf 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-02317NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.XfbExecutionModePipelineexplicitVkGraphicsPipelineCreateInfoIf 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.ImplicitVUIDsexplicitVkGraphicsPipelineCreateInfoIf 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.RasterizerDiscardWithFragmentShaderexplicitVkGraphicsPipelineCreateInfoIf 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.FragmentStateWithPreRasterexplicitVkGraphicsPipelineCreateInfoIf 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.ShaderStageNameexplicitVkGraphicsPipelineCreateInfoIf 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.ShaderTileImageexplicitVkGraphicsPipelineCreateInfoIf 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.ShaderTileImageexplicitVkGraphicsPipelineCreateInfoIf 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.TessellationexplicitVkGraphicsPipelineCreateInfoIf 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.TessellationexplicitVkGraphicsPipelineCreateInfoIf 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-pStages-09631YNegativeMesh.DrawIndexMeshexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires pre-rasterization shader state and pStages contains both VK_SHADER_STAGE_TASK_BIT_EXT and VK_SHADER_STAGE_MESH_BIT_EXT, then the mesh shader's entry point must not declare a variable with a DrawIndex BuiltIn decoration
VUID-VkGraphicsPipelineCreateInfo-pTessellationState-09023YNoneexplicitVkGraphicsPipelineCreateInfoIf pTessellationState is not NULL it must be a pointer to a valid VkPipelineTessellationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08929YNegativeVertexInput.Attribute64bitInputAttributeexplicitVkGraphicsPipelineCreateInfoIf 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.Attribute64bitShaderInputexplicitVkGraphicsPipelineCreateInfoIf 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.Attribute64bitUnusedComponentexplicitVkGraphicsPipelineCreateInfoIf 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-09025YNoneexplicitVkGraphicsPipelineCreateInfoIf pViewportState is not NULL it must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878YNegativePipeline.PipelineCreationCacheControl, NegativePipeline.PipelineCreationFlags2CacheControlexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineProtectedAccessexplicitVkGraphicsPipelineCreateInfoIf 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.CreationFeedbackCountexplicitVkGraphicsPipelineCreateInfoIf VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503YNegativeFragmentShadingRate.PrimitiveWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfoIf 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.PrimitiveWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfoIf 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.PrimitiveWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfoIf 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.RenderPassShaderResolveQCOMexplicitVkGraphicsPipelineCreateInfoIf 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-02319NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-02320NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.MissingPipelineViewportStateexplicitVkGraphicsPipelineCreateInfoIf 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 related dynamic state is not set, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06038YNegativeSubpass.InputAttachmentMissing, NegativeSubpass.InputAttachmentMissingArray, NegativeSubpass.InputAttachmentSharingVariable, NegativeSubpass.SubpassInputNotBoundDescriptorSetexplicitVkGraphicsPipelineCreateInfoIf 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.BlendingOnFormatWithoutBlendingSupportexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineSubpassOutOfBoundsexplicitVkGraphicsPipelineCreateInfoIf renderPass is not VK_NULL_HANDLE, subpass must be a valid subpass within renderPass
VUID-VkGraphicsPipelineCreateInfo-renderPass-06047YNegativeMultiview.FeaturesDisabledexplicitVkGraphicsPipelineCreateInfoIf 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.FeaturesDisabledexplicitVkGraphicsPipelineCreateInfoIf 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-06050YNoneexplicitVkGraphicsPipelineCreateInfoIf 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.ColorAttachmentMismatch, NegativeDynamicRendering.ColorAttachmentMismatchDefaultexplicitVkGraphicsPipelineCreateInfoIf 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.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfoIf 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.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfoIf 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.ShaderLayerBuiltInexplicitVkGraphicsPipelineCreateInfoIf 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.InputAttachmentCapabilityexplicitVkGraphicsPipelineCreateInfoIf the dynamicRenderingLocalRead feature is not enabled, 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.GraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfoIf 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.MismatchingMixedAttachmentSamplesColorexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRenderingViewMaskParameterexplicitVkGraphicsPipelineCreateInfoIf 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.RenderingInfoColorAttachmentFormatexplicitVkGraphicsPipelineCreateInfoIf 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.RenderingInfoColorAttachmentFormatexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRenderingInfoInvalidFormatsexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRenderingInfoInvalidFormatsexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::stencilAttachmentFormat must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06585YNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06586YNoneexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRenderingInfoInvalidFormatsexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRenderingInfoInvalidFormatsexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfoIf 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-06595NNoneexplicitVkGraphicsPipelineCreateInfoIf 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-06603YNegativeDynamicRendering.BadRenderPassexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires 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.MultisampledRenderToSingleSampledexplicitVkGraphicsPipelineCreateInfoIf 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-07064YNoneexplicitVkGraphicsPipelineCreateInfoIf 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.NumBlendAttachMismatch, NegativePipelineAdvancedBlend.BlendOpsexplicitVkGraphicsPipelineCreateInfoIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, the pColorBlendState pointer is not NULL, the attachmentCount member of pColorBlendState is not ignored, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass
VUID-VkGraphicsPipelineCreateInfo-renderPass-07720YNegativeMesh.BasicUsageexplicitVkGraphicsPipelineCreateInfoIf 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.ShaderTileImageexplicitVkGraphicsPipelineCreateInfoIf 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-08744NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.DepthStencilRequiredexplicitVkGraphicsPipelineCreateInfoIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, and related dynamic state is not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-09030YNegativeDynamicState.ColorBlendStateIgnored, NegativePipeline.PipelineRenderpassCompatibilityexplicitVkGraphicsPipelineCreateInfoIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, and related dynamic state is not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-09033YNegativeDynamicRendering.GraphicsPipelineCreateInfo, NegativeGraphicsLibrary.MissingDSStateWithFragOutputStateexplicitVkGraphicsPipelineCreateInfoIf 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.MissingDSStateexplicitVkGraphicsPipelineCreateInfoIf 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.MissingColorBlendStateexplicitVkGraphicsPipelineCreateInfoIf renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and any element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, 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-09527YNegativePipeline.RasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires fragment output interface state, renderPass is not VK_NULL_HANDLE, 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-renderPass-09528YNegativePipeline.RasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires fragment shader state, renderPass is not VK_NULL_HANDLE, 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-renderPass-09529YNegativePipeline.RasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires fragment shader state, renderPass is not VK_NULL_HANDLE, 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-renderPass-09531YNegativeDynamicRenderingLocalRead.InputAttachmentIndexColorAttachmentCount, NegativeDynamicRenderingLocalRead.RemappingAtCreatePipelineexplicitVkGraphicsPipelineCreateInfoIf the pipeline is being created with fragment shader state and fragment output state, the value of renderPass is VK_NULL_HANDLE, and VkRenderingInputAttachmentIndexInfoKHR is included, VkRenderingInputAttachmentIndexInfoKHR::colorAttachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-09532YNegativeDynamicRenderingLocalRead.RemappingAtCreatePipelineexplicitVkGraphicsPipelineCreateInfoIf the pipeline is being created with fragment output state, and the value of renderPass is VK_NULL_HANDLE, VkRenderingAttachmentLocationInfoKHR::colorAttachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-09652NNoneexplicitVkGraphicsPipelineCreateInfoIf the pipeline is being created with fragment shader state and fragment output state, the value of renderPass is VK_NULL_HANDLE, and VkRenderingInputAttachmentIndexInfoKHR is not included, the fragment shader must not contain any input attachments with a InputAttachmentIndex greater than or equal to VkPipelineRenderingCreateInfo::colorAttachmentCount
VUID-VkGraphicsPipelineCreateInfo-renderpass-06624NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.LibraryRenderPassexplicitVkGraphicsPipelineCreateInfoIf 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.PipelineMissingMultisampleStateexplicitVkGraphicsPipelineCreateInfoIf 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-sTypeYNoneimplicitVkGraphicsPipelineCreateInfosType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
VUID-VkGraphicsPipelineCreateInfo-sType-uniqueYNoneimplicitVkGraphicsPipelineCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524NNoneexplicitVkGraphicsPipelineCreateInfoIf 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.RenderPassShaderResolveQCOMexplicitVkGraphicsPipelineCreateInfoIf 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.PointSizeGeomShaderDontWriteexplicitVkGraphicsPipelineCreateInfoIf 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.ShaderStageNameexplicitVkGraphicsPipelineCreateInfoIf 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.DuplicateStageexplicitVkGraphicsPipelineCreateInfoIf 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-09530YNegativeGraphicsLibrary.ImplicitVUIDsexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires pre-rasterization shader state, stageCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-stageCount-09587YNegativeGraphicsLibrary.FragmentOutputIgnoreStages, NegativeGraphicsLibrary.LinkedPipelineIgnoreStages, NegativeGraphicsLibrary.VertexInputIgnoreStagesexplicitVkGraphicsPipelineCreateInfoIf the pipeline does not require pre-rasterization shader state or fragment shader state, stageCount must be zero
VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767YNegativePipeline.LineRasterizationexplicitVkGraphicsPipelineCreateInfoIf the pipeline requires pre-rasterization shader state, the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoKHR is VK_TRUE, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoKHR must be in the range [1,256]
VUID-VkGraphicsPipelineCreateInfo-subpass-00758YNegativeSubpass.FramebufferNoAttachmentsSampleCountsexplicitVkGraphicsPipelineCreateInfoIf 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.FramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfoIf 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.FramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfoIf 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.AMDMixedAttachmentSamplesValidateGraphicsPipelineexplicitVkGraphicsPipelineCreateInfoIf 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.PointSizeNonDynamicAndUnrestrictedexplicitVkGraphicsPipelineCreateInfoIf 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.PrimitiveTopologyListRestartexplicitVkGraphicsPipelineCreateInfoIf 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-parameterYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXTflags must be a valid combination of VkGraphicsPipelineLibraryFlagBitsEXT values
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-requiredbitmaskYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXTflags must not be 0
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-sType-sTypeYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXTsType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVThe deviceGeneratedCommands feature must be enabled
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVgroupCount must be at least 1 and as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVThe sum of groupCount including those groups added from referenced pPipelines must also be as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVThe state of the first element of pGroups must match its equivalent within the parent's VkGraphicsPipelineCreateInfo
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVEach element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVAll 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-02885NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVMesh and regular primitive shading stages cannot be mixed across pGroups
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNVIf groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNVEach 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-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNVIf pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sTypeYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNVsType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNextNNoneimplicitVkGraphicsShaderGroupCreateInfoNVpNext must be NULL
VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889NNoneexplicitVkGraphicsShaderGroupCreateInfoNVFor pStages, the same restrictions as in VkGraphicsPipelineCreateInfo::pStages apply
VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameterYNoneimplicitVkGraphicsShaderGroupCreateInfoNVpStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891NNoneexplicitVkGraphicsShaderGroupCreateInfoNVFor pTessellationState, the same restrictions as in VkGraphicsPipelineCreateInfo::pTessellationState apply
VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890NNoneexplicitVkGraphicsShaderGroupCreateInfoNVFor pVertexInputState, the same restrictions as in VkGraphicsPipelineCreateInfo::pVertexInputState apply
VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sTypeYNoneimplicitVkGraphicsShaderGroupCreateInfoNVsType must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888NNoneexplicitVkGraphicsShaderGroupCreateInfoNVFor stageCount, the same restrictions as in VkGraphicsPipelineCreateInfo::stageCount apply
VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylengthYNoneimplicitVkGraphicsShaderGroupCreateInfoNVstageCount must be greater than 0
VUID-VkHdrMetadataEXT-pNext-pNextYNoneimplicitVkHdrMetadataEXTpNext must be NULL
VUID-VkHdrMetadataEXT-sType-sTypeYNoneimplicitVkHdrMetadataEXTsType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT
VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkHeadlessSurfaceCreateInfoEXTflags must be 0
VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkHeadlessSurfaceCreateInfoEXTpNext must be NULL
VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkHeadlessSurfaceCreateInfoEXTsType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
VUID-VkHostImageCopyDevicePerformanceQueryEXT-sType-sTypeYNoneimplicitVkHostImageCopyDevicePerformanceQueryEXTsType must be VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT
VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08702YNegativeHostImageCopy.TransitionImageLayoutDepthStencilexplicitVkHostImageLayoutTransitionInfoEXTIf 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.TransitionImageLayoutDepthStencilexplicitVkHostImageLayoutTransitionInfoEXTIf 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.TransitionImageLayoutMultiPlanarexplicitVkHostImageLayoutTransitionInfoEXTIf 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.TransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkHostImageLayoutTransitionInfoEXT-image-03319YNegativeHostImageCopy.TransitionImageLayoutDepthStencilexplicitVkHostImageLayoutTransitionInfoEXTIf 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.TransitionImageLayoutDepthStencilexplicitVkHostImageLayoutTransitionInfoEXTIf 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.TransitionImageLayoutUsageexplicitVkHostImageLayoutTransitionInfoEXTimage must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
VUID-VkHostImageLayoutTransitionInfoEXT-image-09241YNegativeHostImageCopy.TransitionImageLayout, NegativeHostImageCopy.TransitionImageLayoutDepthStencilexplicitVkHostImageLayoutTransitionInfoEXTIf 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-09242YNoneexplicitVkHostImageLayoutTransitionInfoEXTIf 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-parameterYNoneimplicitVkHostImageLayoutTransitionInfoEXTimage must be a valid VkImage handle
VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057YNegativeHostImageCopy.TransitionImageLayoutNotSupportedexplicitVkHostImageLayoutTransitionInfoEXTnewLayout must be one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts
VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameterYNoneimplicitVkHostImageLayoutTransitionInfoEXTnewLayout must be a valid VkImageLayout value
VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09229YNegativeHostImageCopy.TransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXToldLayout must be either VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources as specified in subresourceRange
VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09230YNegativeHostImageCopy.TransitionImageLayoutNotSupportedexplicitVkHostImageLayoutTransitionInfoEXTIf 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-parameterYNoneimplicitVkHostImageLayoutTransitionInfoEXToldLayout must be a valid VkImageLayout value
VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNextYNoneimplicitVkHostImageLayoutTransitionInfoEXTpNext must be NULL
VUID-VkHostImageLayoutTransitionInfoEXT-sType-sTypeYNoneimplicitVkHostImageLayoutTransitionInfoEXTsType must be VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01486YNegativeHostImageCopy.TransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTsubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01488YNegativeHostImageCopy.TransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTsubresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01724YNegativeHostImageCopy.TransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTIf 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.TransitionImageLayoutexplicitVkHostImageLayoutTransitionInfoEXTIf 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-09601NNoneexplicitVkHostImageLayoutTransitionInfoEXTsubresourceRange.aspectMask must be valid for the format the image was created with
VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-parameterYNoneimplicitVkHostImageLayoutTransitionInfoEXTsubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmaskYNoneimplicitVkIOSSurfaceCreateInfoMVKflags must be 0
VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNextYNoneimplicitVkIOSSurfaceCreateInfoMVKpNext must be NULL
VUID-VkIOSSurfaceCreateInfoMVK-pView-01316NNoneexplicitVkIOSSurfaceCreateInfoMVKIf 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-04143NNoneexplicitVkIOSSurfaceCreateInfoMVKIf pView is a CAMetalLayer object, it must be a valid CAMetalLayer
VUID-VkIOSSurfaceCreateInfoMVK-sType-sTypeYNoneimplicitVkIOSSurfaceCreateInfoMVKsType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
VUID-VkImageAlignmentControlCreateInfoMESA-imageAlignmentControl-09657YNegativeImage.ImageAlignmentControlFeatureexplicitVkImageAlignmentControlCreateInfoMESAimageAlignmentControl must be enabled on the device
VUID-VkImageAlignmentControlCreateInfoMESA-maximumRequestedAlignment-09655YNegativeImage.ImageAlignmentControlPowerOfTwoexplicitVkImageAlignmentControlCreateInfoMESAIf maximumRequestedAlignment is not 0, maximumRequestedAlignment must be a power of two
VUID-VkImageAlignmentControlCreateInfoMESA-maximumRequestedAlignment-09656YNegativeImage.ImageAlignmentControlBitmask, NegativeImage.ImageAlignmentControlFeature, NegativeImage.ImageAlignmentControlPowerOfTwoexplicitVkImageAlignmentControlCreateInfoMESAIf maximumRequestedAlignment is not 0, the bitwise-and of maximumRequestedAlignment and supportedImageAlignmentMask must be non-zero
VUID-VkImageAlignmentControlCreateInfoMESA-sType-sTypeYNoneimplicitVkImageAlignmentControlCreateInfoMESAsType must be VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA
VUID-VkImageBlit-aspectMask-00238YNegativeImage.BlitColorToDepthexplicitVkImageBlitThe aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageBlit-dstSubresource-parameterYNoneimplicitVkImageBlitdstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit-layerCount-08800YNegativeImage.MiscBlitTestsexplicitVkImageBlitIf 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.BlitRemainingArrayLayersexplicitVkImageBlitIf 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-parameterYNoneimplicitVkImageBlitsrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2-aspectMask-00238YNoneexplicitVkImageBlit2The aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageBlit2-dstSubresource-parameterYNoneimplicitVkImageBlit2dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2-layerCount-08800YNoneexplicitVkImageBlit2If 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-08801YNoneexplicitVkImageBlit2If 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-pNextYNoneimplicitVkImageBlit2pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkImageBlit2-sType-sTypeYNoneimplicitVkImageBlit2sType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2
VUID-VkImageBlit2-sType-uniqueYNoneimplicitVkImageBlit2The sType value of each struct in the pNext chain must be unique
VUID-VkImageBlit2-srcSubresource-parameterYNoneimplicitVkImageBlit2srcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCaptureDescriptorDataInfoEXT-image-08079YNegativeDescriptorBuffer.NotEnabledGetImageOpaqueCaptureDescriptorDataEXTexplicitVkImageCaptureDescriptorDataInfoEXTimage must have been created with VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageCreateInfo::flags
VUID-VkImageCaptureDescriptorDataInfoEXT-image-parameterYNoneimplicitVkImageCaptureDescriptorDataInfoEXTimage must be a valid VkImage handle
VUID-VkImageCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkImageCaptureDescriptorDataInfoEXTpNext must be NULL
VUID-VkImageCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkImageCaptureDescriptorDataInfoEXTsType must be VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkImageCompressionControlEXT-flags-06747YNegativeImage.ImageCompressionControlexplicitVkImageCompressionControlEXTflags 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.ImageCompressionControlexplicitVkImageCompressionControlEXTIf flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, pFixedRateFlags must not be NULL
VUID-VkImageCompressionControlEXT-sType-sTypeYNoneimplicitVkImageCompressionControlEXTsType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
VUID-VkImageCompressionPropertiesEXT-sType-sTypeYNoneimplicitVkImageCompressionPropertiesEXTsType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401NNoneexplicitVkImageConstraintsInfoFUCHSIAIf 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-parameterNNoneimplicitVkImageConstraintsInfoFUCHSIAbufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure
VUID-VkImageConstraintsInfoFUCHSIA-flags-parameterYNoneimplicitVkImageConstraintsInfoFUCHSIAflags must be a valid combination of VkImageConstraintsInfoFlagBitsFUCHSIA values
VUID-VkImageConstraintsInfoFUCHSIA-formatConstraintsCount-arraylengthYNoneimplicitVkImageConstraintsInfoFUCHSIAformatConstraintsCount must be greater than 0
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06395NNoneexplicitVkImageConstraintsInfoFUCHSIAAll elements of pFormatConstraints must have at least one bit set in its VkImageFormatConstraintsInfoFUCHSIA::requiredFormatFeatures
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06396NNoneexplicitVkImageConstraintsInfoFUCHSIAIf pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then pFormatConstraints->requiredFormatFeatures must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06397NNoneexplicitVkImageConstraintsInfoFUCHSIAIf pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_STORAGE_BIT, then pFormatConstraints->requiredFormatFeatures must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06398NNoneexplicitVkImageConstraintsInfoFUCHSIAIf pFormatConstraints->imageCreateInfo->usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then pFormatConstraints->requiredFormatFeatures must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06399NNoneexplicitVkImageConstraintsInfoFUCHSIAIf 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-06400NNoneexplicitVkImageConstraintsInfoFUCHSIAIf 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-parameterYNoneimplicitVkImageConstraintsInfoFUCHSIApFormatConstraints must be a valid pointer to an array of formatConstraintsCount valid VkImageFormatConstraintsInfoFUCHSIA structures
VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkImageConstraintsInfoFUCHSIApNext must be NULL
VUID-VkImageConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkImageConstraintsInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
VUID-VkImageCopy-apiVersion-07940YNoneexplicitVkImageCopyIf 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-07941YNegativeCopyBufferImage.ImageLayerCountMismatchexplicitVkImageCopyIf 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-parameterYNoneimplicitVkImageCopydstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy-extent-06668YNegativeCopyBufferImage.ImageZeroSizeexplicitVkImageCopyextent.width must not be 0
VUID-VkImageCopy-extent-06669YNegativeCopyBufferImage.ImageZeroSizeexplicitVkImageCopyextent.height must not be 0
VUID-VkImageCopy-extent-06670YNegativeCopyBufferImage.ImageZeroSizeexplicitVkImageCopyextent.depth must not be 0
VUID-VkImageCopy-srcSubresource-parameterYNoneimplicitVkImageCopysrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2-apiVersion-07940YNoneexplicitVkImageCopy2If 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-07941YNoneexplicitVkImageCopy2If 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-parameterYNoneimplicitVkImageCopy2dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2-extent-06668YNegativeHostImageCopy.CopyImageToImageexplicitVkImageCopy2extent.width must not be 0
VUID-VkImageCopy2-extent-06669YNegativeHostImageCopy.CopyImageToImageexplicitVkImageCopy2extent.height must not be 0
VUID-VkImageCopy2-extent-06670YNegativeHostImageCopy.CopyImageToImageexplicitVkImageCopy2extent.depth must not be 0
VUID-VkImageCopy2-pNext-pNextYNoneimplicitVkImageCopy2pNext must be NULL
VUID-VkImageCopy2-sType-sTypeYNoneimplicitVkImageCopy2sType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2
VUID-VkImageCopy2-srcSubresource-parameterYNoneimplicitVkImageCopy2srcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCreateInfo-Format-02536YNegativeImage.StencilexplicitVkImageCreateInfoIf 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.MemoryexplicitVkImageCreateInfoIf 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.ImageUsageBitsexplicitVkImageCreateInfoIf 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.ImageMinLimitsexplicitVkImageCreateInfoarrayLayers must be greater than 0
VUID-VkImageCreateInfo-arrayLayers-02256YNegativeImage.MaxLimitsArrayLayersexplicitVkImageCreateInfoarrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-00944YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfoextent.width must be greater than 0
VUID-VkImageCreateInfo-extent-00945YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfoextent.height must be greater than 0
VUID-VkImageCreateInfo-extent-00946YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfoextent.depth must be greater than 0
VUID-VkImageCreateInfo-extent-02252YNegativeFragmentShadingRate.ImageMaxLimitsQCOM, NegativeImage.MaxLimitsExtent, NegativeImage.MaxLimitsFramebufferexplicitVkImageCreateInfoextent.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.FormatsexplicitVkImageCreateInfoextent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-02254YNegativeImage.MaxLimitsExtentexplicitVkImageCreateInfoextent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-flags-00949YNegativeImage.CubeCompatibleMustBeImageType2DexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-00950YNegativeImage.Array2DImageTypeexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D
VUID-VkImageCreateInfo-flags-00969YNegativeImage.ImageMisc, NegativeImage.SparseResidencyAliasedexplicitVkImageCreateInfoIf the sparseBinding feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT
VUID-VkImageCreateInfo-flags-00987YNegativeSparseImage.BindingImageBufferCreateexplicitVkImageCreateInfoIf 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.SampleLocationsexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format
VUID-VkImageCreateInfo-flags-01572YNegativeImage.BlockTextImageViewCompatibleFormatexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a compressed image format
VUID-VkImageCreateInfo-flags-01573YNegativeImage.BlockTextImageViewCompatibleFlagexplicitVkImageCreateInfoIf 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.SubmitexplicitVkImageCreateInfoIf the protectedMemory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT
VUID-VkImageCreateInfo-flags-01924YNegativeImage.SparseResidencyAliasedexplicitVkImageCreateInfoIf the sparseResidencyAliased feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
VUID-VkImageCreateInfo-flags-02050YNegativeImage.CornerSampledImageNVexplicitVkImageCreateInfoIf 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.CornerSampledImageNVexplicitVkImageCreateInfoIf 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.CornerSampledImageNVexplicitVkImageCreateInfoIf 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.CornerSampledImageNVexplicitVkImageCreateInfoIf 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.ImageMiscexplicitVkImageCreateInfoIf 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.FragmentDensityMapEnabledexplicitVkImageCreateInfoIf flags contains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-02565YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-flags-02566YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-02567YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
VUID-VkImageCreateInfo-flags-02568YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1
VUID-VkImageCreateInfo-flags-04738YNegativeImage.ImageFormatListexplicitVkImageCreateInfoIf 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.MultisampledRenderToSingleSampledexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-flags-07755YNegativeImage.View2DImageTypeexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT, imageType must be VK_IMAGE_TYPE_3D
VUID-VkImageCreateInfo-flags-08104YNegativeDescriptorBuffer.NotEnabledDescriptorBufferCaptureReplayexplicitVkImageCreateInfoIf flags includes VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkImageCreateInfo-flags-08328YNegativeVideo.CreateImageProfileIndependentNotSupportedexplicitVkImageCreateInfoIf flags includes VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then videoMaintenance1 must be enabled
VUID-VkImageCreateInfo-flags-08329YNegativeVideo.CreateImageProfileIndependentexplicitVkImageCreateInfoIf 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.CreateImageProfileIndependentexplicitVkImageCreateInfoIf 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.ImageMinLimitsexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal
VUID-VkImageCreateInfo-flags-08866YNegativeImage.CubeCompatibleMustBeImageType2D, NegativeImage.ImageMinLimitsexplicitVkImageCreateInfoIf flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, arrayLayers must be greater than or equal to 6
VUID-VkImageCreateInfo-flags-09403YNegativeImage.ImageViewBreaksParameterCompatibilityRequirements, NegativeImage.ImageViewInvalidSubresourceRangeMaintenance1, NegativeImage.IncompatibleArrayAndSparseFlagsexplicitVkImageCreateInfoIf 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-parameterYNegativeImage.ImageMisc, NegativeVideo.CreateImageProfileIndependentNotSupportedimplicitVkImageCreateInfoflags must be a valid combination of VkImageCreateFlagBits values
VUID-VkImageCreateInfo-format-01577YNegativeImage.DisjointWithoutAliasexplicitVkImageCreateInfoIf 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.StencilexplicitVkImageCreateInfoIf 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.StencilexplicitVkImageCreateInfoIf 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.StencilexplicitVkImageCreateInfoIf 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.StencilexplicitVkImageCreateInfoIf 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.StencilexplicitVkImageCreateInfoIf 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.StencilexplicitVkImageCreateInfoIf 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.Formats, NegativeYcbcr.ImageViewFormatexplicitVkImageCreateInfoIf format has a _422 or _420 suffix, extent.width must be a multiple of 2
VUID-VkImageCreateInfo-format-04713YNegativeYcbcr.FormatsexplicitVkImageCreateInfoIf format has a _420 suffix, extent.height must be a multiple of 2
VUID-VkImageCreateInfo-format-06410YNegativeYcbcr.FormatsexplicitVkImageCreateInfoIf the image format is one of the formats that require a sampler Y'CBCR conversion, mipLevels must be 1
VUID-VkImageCreateInfo-format-06411YNegativeYcbcr.FormatsexplicitVkImageCreateInfoIf 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.FormatsexplicitVkImageCreateInfoIf 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-09583NNoneexplicitVkImageCreateInfoIf format is one of the VK_FORMAT_PVTRC1_*_IMG formats, extent.width must be a power of 2
VUID-VkImageCreateInfo-format-09584NNoneexplicitVkImageCreateInfoIf format is one of the VK_FORMAT_PVTRC1_*_IMG formats, extent.height must be a power of 2
VUID-VkImageCreateInfo-format-parameterYVkLayerTest.UnrecognizedEnumExtensionimplicitVkImageCreateInfoformat must be a valid VkFormat value
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514YNegativeFragmentShadingRate.ImageMaxLimitsQCOMexplicitVkImageCreateInfoIf 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.ImageMaxLimitsQCOMexplicitVkImageCreateInfoIf 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.FormatsexplicitVkImageCreateInfoIf 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.CopyImageToImageexplicitVkImageCreateInfoIf 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.CopyImageToImage, NegativeImage.DisjointWithoutAlias, NegativeImage.GetPhysicalDeviceImageFormatProperties, VkAmdBestPracticesLayerTest.ClearImage, VkAmdBestPracticesLayerTest.UsageConcurentRT, VkAmdBestPracticesLayerTest.UseMutableRTexplicitVkImageCreateInfoEach 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.FormatsexplicitVkImageCreateInfoIf imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1
VUID-VkImageCreateInfo-imageType-00957YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfoIf imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1
VUID-VkImageCreateInfo-imageType-00961YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfoIf imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1
VUID-VkImageCreateInfo-imageType-00970YNegativeSparseImage.ResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfoIf imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00971YNegativeSparseImage.ResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfoIf 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.ResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfoIf 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.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfoIf 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.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfoIf 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.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfoIf 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.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfoIf 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.ShadingRateImageNVexplicitVkImageCreateInfoIf usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-imageType-parameterYNoneimplicitVkImageCreateInfoimageType must be a valid VkImageType value
VUID-VkImageCreateInfo-imageView2DOn3DImage-04459YNegativePortabilitySubset.ImageexplicitVkImageCreateInfoIf 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.ImageMiscexplicitVkImageCreateInfoinitialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkImageCreateInfo-initialLayout-parameterYNoneimplicitVkImageCreateInfoinitialLayout must be a valid VkImageLayout value
VUID-VkImageCreateInfo-mipLevels-00947YNegativeImage.ImageMinLimitsexplicitVkImageCreateInfomipLevels must be greater than 0
VUID-VkImageCreateInfo-mipLevels-00958YNegativeImage.CornerSampledImageNV, NegativeImage.MaxLimitsMipLevelsAndExtentexplicitVkImageCreateInfomipLevels 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.MaxLimitsMipLevelsexplicitVkImageCreateInfomipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-multisampleArrayImage-04460YNegativePortabilitySubset.ImageexplicitVkImageCreateInfoIf 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.MultisampledRenderToSingleSampledexplicitVkImageCreateInfoIf the multisampledRenderToSingleSampled feature is not enabled, flags must not contain VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT
VUID-VkImageCreateInfo-pNext-00988YNegativeExternalMemorySync.MemoryAndMemoryNVexplicitVkImageCreateInfoIf the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure
VUID-VkImageCreateInfo-pNext-00990YNegativeExternalMemorySync.CreateImageIncompatibleHandleTypesexplicitVkImageCreateInfoIf 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.CreateImageIncompatibleHandleTypesNVexplicitVkImageCreateInfoIf 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.MemoryImageLayoutexplicitVkImageCreateInfoIf 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.ImageCreateexplicitVkImageCreateInfoIf 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.UndefinedFormatexplicitVkImageCreateInfoIf 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.BasicexplicitVkImageCreateInfoIf the pNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-VkImageCreateInfo-pNext-02393YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfoIf 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.ImageCreateexplicitVkImageCreateInfoIf 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.ImageCreateexplicitVkImageCreateInfoIf 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.ImageCreateexplicitVkImageCreateInfoIf 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.ImageCreateexplicitVkImageCreateInfoIf the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-pNext-06390NNoneexplicitVkImageCreateInfoIf 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.ImageFormatListSizeCompatibleexplicitVkImageCreateInfoIf a VkImageFormatListCreateInfo structure was included in the pNext chain and format is not a multi-planar format 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.ImageCompressionControlPlaneCountexplicitVkImageCreateInfoIf 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.ImageCompressionControlPlaneCountexplicitVkImageCreateInfoIf 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.CompressionControlexplicitVkImageCreateInfoIf the pNext chain includes a VkImageCompressionControlEXT structure, it must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure
VUID-VkImageCreateInfo-pNext-06783YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkImageCreateInfoIf 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.ExportMetalObjectsexplicitVkImageCreateInfoIf 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.ExportMetalObjectsexplicitVkImageCreateInfoIf 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.ExportMetalObjectsexplicitVkImageCreateInfoIf 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.CreateImageProfileIndependentexplicitVkImageCreateInfoIf the pNext chain includes a VkVideoProfileListInfoKHR structure with profileCount greater than 0, then supportedVideoFormat must be VK_TRUE
VUID-VkImageCreateInfo-pNext-08105YNegativeDescriptorBuffer.NotEnabledDescriptorBufferCaptureReplayexplicitVkImageCreateInfoIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkImageCreateInfo-pNext-08951NNoneexplicitVkImageCreateInfoIf 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-08952NNoneexplicitVkImageCreateInfoIf 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-08953NNoneexplicitVkImageCreateInfoIf 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-08954NNoneexplicitVkImageCreateInfoIf 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-08955NNoneexplicitVkImageCreateInfoIf the pNext chain includes a VkExternalFormatQNX structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-pNext-09457YNegativeAndroidHardwareBuffer.ImageCreateexplicitVkImageCreateInfoIf 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-09653YNegativeImage.ImageAlignmentControlLinearexplicitVkImageCreateInfoIf the pNext chain contains a VkImageAlignmentControlCreateInfoMESA structure, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-pNext-09654YNegativeImage.ImageAlignmentControlExternalMemoryexplicitVkImageCreateInfoIf the pNext chain contains a VkImageAlignmentControlCreateInfoMESA structure, it must not contain a VkExternalMemoryImageCreateInfo structure
VUID-VkImageCreateInfo-pNext-10062NNoneexplicitVkImageCreateInfoIf a VkImageFormatListCreateInfo structure was included in the pNext chain and format is a multi-planar format and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and VkImageFormatListCreateInfo::viewFormatCount is not zero, then each format in VkImageFormatListCreateInfo::pViewFormats must be compatible with the VkFormat for the plane of the image format
VUID-VkImageCreateInfo-pNext-pNextYNoneimplicitVkImageCreateInfoEach 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, VkImageAlignmentControlCreateInfoMESA, VkImageCompressionControlEXT, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkImportMetalIOSurfaceInfoEXT, VkImportMetalTextureInfoEXT, VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkOpticalFlowImageFormatInfoNV, or VkVideoProfileListInfoKHR
VUID-VkImageCreateInfo-physicalDeviceCount-01421YVkLayerTest.InvalidImageCreateFlagWithPhysicalDeviceCountexplicitVkImageCreateInfoIf 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-sTypeYNoneimplicitVkImageCreateInfosType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
VUID-VkImageCreateInfo-sType-uniqueYNoneimplicitVkImageCreateInfoThe 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.ShadingRateImageNVexplicitVkImageCreateInfoIf usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-samples-02257YNegativeImage.ImageMiscexplicitVkImageCreateInfoIf 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.Formats, VkArmBestPracticesLayerTest.TooManySamplesexplicitVkImageCreateInfosamples must be a valid VkSampleCountFlagBits value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-samples-02558YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageCreateInfoIf samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
VUID-VkImageCreateInfo-samples-parameterYNoneimplicitVkImageCreateInfosamples must be a valid VkSampleCountFlagBits value
VUID-VkImageCreateInfo-shadingRateImage-07727YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkImageCreateInfoIf 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.CreateImageSharingModeConcurrentQueueFamiliesexplicitVkImageCreateInfoIf sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkImageCreateInfo-sharingMode-00942YNegativeImage.CreateImageSharingModeConcurrentQueueFamiliesexplicitVkImageCreateInfoIf sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkImageCreateInfo-sharingMode-01420YNegativeImage.CreateImageSharingModeConcurrentQueueFamiliesexplicitVkImageCreateInfoIf 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-parameterYNoneimplicitVkImageCreateInfosharingMode must be a valid VkSharingMode value
VUID-VkImageCreateInfo-tiling-02261YNegativeImageDrm.BasicexplicitVkImageCreateInfoIf 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.MutableFormatexplicitVkImageCreateInfoIf 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.ResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfoIf tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-tiling-parameterYNoneimplicitVkImageCreateInfotiling must be a valid VkImageTiling value
VUID-VkImageCreateInfo-usage-00963YNegativeImage.ImageMiscexplicitVkImageCreateInfoIf 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.MaxLimitsFramebufferexplicitVkImageCreateInfoIf 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.MaxLimitsFramebufferexplicitVkImageCreateInfoIf 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.ImageMiscexplicitVkImageCreateInfoIf 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.ImageMiscexplicitVkImageCreateInfoIf 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.CreateImageInvalidProfileListexplicitVkImageCreateInfoIf 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.CreateImageInvalidProfileListexplicitVkImageCreateInfoIf 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-04992NNoneexplicitVkImageCreateInfoIf usage includes VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, tiling must be VK_IMAGE_TILING_LINEAR
VUID-VkImageCreateInfo-usage-parameterYNoneimplicitVkImageCreateInfousage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageCreateInfo-usage-requiredbitmaskYNoneimplicitVkImageCreateInfousage must not be 0
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268YNegativeImageDrm.BasicexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTFor each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269YNegativeImageDrm.BasicexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTFor each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent.depth is 1
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTdrmFormatModifier must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTdrmFormatModifierPlaneCount must be equal to the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with VkImageCreateInfo::format and drmFormatModifier, as found by querying VkDrmFormatModifierPropertiesListEXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-arraylengthYNoneimplicitVkImageDrmFormatModifierExplicitCreateInfoEXTdrmFormatModifierPlaneCount must be greater than 0
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameterYNoneimplicitVkImageDrmFormatModifierExplicitCreateInfoEXTpPlaneLayouts must be a valid pointer to an array of drmFormatModifierPlaneCount VkSubresourceLayout structures
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierExplicitCreateInfoEXTsType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267YNegativeImageDrm.BasicexplicitVkImageDrmFormatModifierExplicitCreateInfoEXTFor each element of pPlaneLayouts, size must be 0
VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylengthYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXTdrmFormatModifierCount must be greater than 0
VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263NNoneexplicitVkImageDrmFormatModifierListCreateInfoEXTEach 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-parameterYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXTpDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values
VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXTsType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNextYNoneimplicitVkImageDrmFormatModifierPropertiesEXTpNext must be NULL
VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierPropertiesEXTsType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
VUID-VkImageFormatConstraintsInfoFUCHSIA-colorSpaceCount-arraylengthYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAcolorSpaceCount must be greater than 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-flags-zerobitmaskYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAflags must be 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-imageCreateInfo-parameterNNoneimplicitVkImageFormatConstraintsInfoFUCHSIAimageCreateInfo must be a valid VkImageCreateInfo structure
VUID-VkImageFormatConstraintsInfoFUCHSIA-pColorSpaces-parameterYNoneimplicitVkImageFormatConstraintsInfoFUCHSIApColorSpaces must be a valid pointer to an array of colorSpaceCount valid VkSysmemColorSpaceFUCHSIA structures
VUID-VkImageFormatConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkImageFormatConstraintsInfoFUCHSIApNext must be NULL
VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-parameterYNoneimplicitVkImageFormatConstraintsInfoFUCHSIArequiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-requiredbitmaskYNoneimplicitVkImageFormatConstraintsInfoFUCHSIArequiredFormatFeatures must not be 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkImageFormatConstraintsInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
VUID-VkImageFormatListCreateInfo-pViewFormats-parameterYNegativeImage.ImageFormatListEnumimplicitVkImageFormatListCreateInfoIf viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values
VUID-VkImageFormatListCreateInfo-sType-sTypeYNoneimplicitVkImageFormatListCreateInfosType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
VUID-VkImageFormatListCreateInfo-viewFormatCount-09540YNegativeImage.ImageFormatListFormatexplicitVkImageFormatListCreateInfoIf viewFormatCount is not 0, each element of pViewFormats must not be VK_FORMAT_UNDEFINED
VUID-VkImageFormatProperties2-pNext-pNextYNoneimplicitVkImageFormatProperties2Each 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-sTypeYNoneimplicitVkImageFormatProperties2sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
VUID-VkImageFormatProperties2-sType-uniqueYNoneimplicitVkImageFormatProperties2The sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier-None-09052YNoneexplicitVkImageMemoryBarrierIf 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.BarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarrierIf 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.BarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarrierIf 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-09119YNoneexplicitVkImageMemoryBarrierIf 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-09120YNoneexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.AttachmentFeedbackLoopLayoutFeatureexplicitVkImageMemoryBarrierIf the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkImageMemoryBarrier-dstQueueFamilyIndex-09122YNoneexplicitVkImageMemoryBarrierIf the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier-dynamicRenderingLocalRead-09551YNegativeDynamicRenderingLocalRead.ImageBarrierexplicitVkImageMemoryBarrierIf the dynamicRenderingLocalRead feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkImageMemoryBarrier-dynamicRenderingLocalRead-09552YNegativeDynamicRenderingLocalRead.ImageBarrier, NegativeDynamicRenderingLocalRead.ImageBarrierOwnershipexplicitVkImageMemoryBarrierIf the dynamicRenderingLocalRead feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkImageMemoryBarrier-image-01672YNegativeSyncObject.BarriersexplicitVkImageMemoryBarrierIf 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.TransitionNonSparseImageLayoutWithoutBoundMemoryexplicitVkImageMemoryBarrierIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageMemoryBarrier-image-03319YNegativeSyncObject.BarriersexplicitVkImageMemoryBarrierIf 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.DepthStencilImageNonSeparateexplicitVkImageMemoryBarrierIf 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.BarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarrierIf 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.BarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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-09242YNoneexplicitVkImageMemoryBarrierIf 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-parameterYNoneimplicitVkImageMemoryBarrierimage must be a valid VkImage handle
VUID-VkImageMemoryBarrier-newLayout-01198YNegativeSyncObject.BarriersexplicitVkImageMemoryBarrierIf 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-parameterYNoneimplicitVkImageMemoryBarriernewLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier-oldLayout-01197YNegativeImage.ImageLayout, NegativeSyncObject.Barriers, VkAmdBestPracticesLayerTest.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.ShadingRateImageNVexplicitVkImageMemoryBarrierIf 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-parameterYNoneimplicitVkImageMemoryBarrieroldLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier-pNext-pNextYNoneimplicitVkImageMemoryBarrierEach 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-sTypeYNoneimplicitVkImageMemoryBarriersType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
VUID-VkImageMemoryBarrier-sType-uniqueYNoneimplicitVkImageMemoryBarrierThe sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938NNoneexplicitVkImageMemoryBarrierIf 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-03939NNoneexplicitVkImageMemoryBarrierIf 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-04065NNoneexplicitVkImageMemoryBarrierIf 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-04066NNoneexplicitVkImageMemoryBarrierIf 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-04067NNoneexplicitVkImageMemoryBarrierIf 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-04068NNoneexplicitVkImageMemoryBarrierIf 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-04070NNoneexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrierIf 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.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrierIf 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.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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.BarriersexplicitVkImageMemoryBarrierIf 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-09121YNoneexplicitVkImageMemoryBarrierIf the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-09550YNegativeDynamicRenderingLocalRead.ImageBarrierOwnershipexplicitVkImageMemoryBarrierIf 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_RENDERING_LOCAL_READ_KHR then image must have been created with either VK_IMAGE_USAGE_STORAGE_BIT, or with both VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT and either of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-subresourceRange-01486YNegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageMemoryBarriersubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-01488YNegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageMemoryBarriersubresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-01724YNegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageMemoryBarrierIf 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.ImageBarrierWithBadRangeexplicitVkImageMemoryBarrierIf 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-09601YNegativeSyncObject.Barriers, NegativeSyncObject.DepthStencilImageNonSeparateexplicitVkImageMemoryBarriersubresourceRange.aspectMask must be valid for the format the image was created with
VUID-VkImageMemoryBarrier-subresourceRange-parameterYNoneimplicitVkImageMemoryBarriersubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageMemoryBarrier-synchronization2-07793YNoneexplicitVkImageMemoryBarrierIf 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-07794YNoneexplicitVkImageMemoryBarrierIf 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-09119YNoneexplicitVkImageMemoryBarrier2If 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-09120YNoneexplicitVkImageMemoryBarrier2If 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-08702YNoneexplicitVkImageMemoryBarrier2If 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-08703YNoneexplicitVkImageMemoryBarrier2If 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.AttachmentFeedbackLoopLayoutFeatureexplicitVkImageMemoryBarrier2If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkImageMemoryBarrier2-dstAccessMask-03900YNoneexplicitVkImageMemoryBarrier2If 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-03901YNoneexplicitVkImageMemoryBarrier2If 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-03902YNoneexplicitVkImageMemoryBarrier2If 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-03903YVkBestPracticesLayerTest.ImageMemoryBarrierAccessLayoutCombinationsexplicitVkImageMemoryBarrier2If 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-03904YNoneexplicitVkImageMemoryBarrier2If 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-03905YNoneexplicitVkImageMemoryBarrier2If 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-03906YNoneexplicitVkImageMemoryBarrier2If 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-03907YVkBestPracticesLayerTest.ImageMemoryBarrierAccessLayoutCombinationsexplicitVkImageMemoryBarrier2If 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-03909YNoneexplicitVkImageMemoryBarrier2If 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-03910YNoneexplicitVkImageMemoryBarrier2If 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-03911YNoneexplicitVkImageMemoryBarrier2If 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-03912YNoneexplicitVkImageMemoryBarrier2If 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-03913YNoneexplicitVkImageMemoryBarrier2If 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-03914YNoneexplicitVkImageMemoryBarrier2If 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-03915YNoneexplicitVkImageMemoryBarrier2If 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-03916YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03917YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkImageMemoryBarrier2If 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-03919YNoneexplicitVkImageMemoryBarrier2If 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-03920YNoneexplicitVkImageMemoryBarrier2If 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-03922YNoneexplicitVkImageMemoryBarrier2If 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-03923YNoneexplicitVkImageMemoryBarrier2If 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-03924YNoneexplicitVkImageMemoryBarrier2If 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-03925YNoneexplicitVkImageMemoryBarrier2If 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-03926YNoneexplicitVkImageMemoryBarrier2If 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-03927YNoneexplicitVkImageMemoryBarrier2If 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-03928YNoneexplicitVkImageMemoryBarrier2If 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-04747YNoneexplicitVkImageMemoryBarrier2If 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-04858YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkImageMemoryBarrier2If 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.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkImageMemoryBarrier2If 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-07272YNoneexplicitVkImageMemoryBarrier2If 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-07454YNoneexplicitVkImageMemoryBarrier2If 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-07455YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-dstAccessMask-07456YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-dstAccessMask-07457YNoneexplicitVkImageMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkImageMemoryBarrier2-dstAccessMask-07458YNoneexplicitVkImageMemoryBarrier2If 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-08118YNoneexplicitVkImageMemoryBarrier2If 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-parameterYNoneimplicitVkImageMemoryBarrier2dstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122YNoneexplicitVkImageMemoryBarrier2If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03929YNoneexplicitVkImageMemoryBarrier2If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkImageMemoryBarrier2-dstStageMask-03930YNoneexplicitVkImageMemoryBarrier2If 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-03931YNoneexplicitVkImageMemoryBarrier2If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03932YNoneexplicitVkImageMemoryBarrier2If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03933YNoneexplicitVkImageMemoryBarrier2If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03934YNoneexplicitVkImageMemoryBarrier2If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03935YNoneexplicitVkImageMemoryBarrier2If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-04957YNoneexplicitVkImageMemoryBarrier2If the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-dstStageMask-04995YNoneexplicitVkImageMemoryBarrier2If the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-dstStageMask-07316YNoneexplicitVkImageMemoryBarrier2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageMemoryBarrier2-dstStageMask-07946YNoneexplicitVkImageMemoryBarrier2If 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-parameterYNoneimplicitVkImageMemoryBarrier2dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkImageMemoryBarrier2-dynamicRenderingLocalRead-09551YNegativeDynamicRenderingLocalRead.ImageBarrierexplicitVkImageMemoryBarrier2If the dynamicRenderingLocalRead feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkImageMemoryBarrier2-dynamicRenderingLocalRead-09552YNegativeDynamicRenderingLocalRead.ImageBarrier, NegativeDynamicRenderingLocalRead.ImageBarrierOwnershipexplicitVkImageMemoryBarrier2If the dynamicRenderingLocalRead feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
VUID-VkImageMemoryBarrier2-image-01672YNoneexplicitVkImageMemoryBarrier2If 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-01932YNoneexplicitVkImageMemoryBarrier2If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageMemoryBarrier2-image-03319YNoneexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarrierQueueFamilyexplicitVkImageMemoryBarrier2If 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.Sync2BarrierQueueFamilyexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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-09242YNoneexplicitVkImageMemoryBarrier2If 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-parameterYNoneimplicitVkImageMemoryBarrier2image must be a valid VkImage handle
VUID-VkImageMemoryBarrier2-newLayout-01198YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2If 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-parameterYNoneimplicitVkImageMemoryBarrier2newLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier2-oldLayout-01197YNegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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-02088YNoneexplicitVkImageMemoryBarrier2If 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-parameterYNoneimplicitVkImageMemoryBarrier2oldLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier2-pNext-pNextYNoneimplicitVkImageMemoryBarrier2Each 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-sTypeYNoneimplicitVkImageMemoryBarrier2sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2
VUID-VkImageMemoryBarrier2-sType-uniqueYNoneimplicitVkImageMemoryBarrier2The sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier2-srcAccessMask-03900YNoneexplicitVkImageMemoryBarrier2If 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-03901YNoneexplicitVkImageMemoryBarrier2If 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-03902YNoneexplicitVkImageMemoryBarrier2If 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-03903YNoneexplicitVkImageMemoryBarrier2If 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-03904YNoneexplicitVkImageMemoryBarrier2If 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-03905YNoneexplicitVkImageMemoryBarrier2If 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-03906YNoneexplicitVkImageMemoryBarrier2If 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-03907YNoneexplicitVkImageMemoryBarrier2If 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-03909YNoneexplicitVkImageMemoryBarrier2If 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-03910YNoneexplicitVkImageMemoryBarrier2If 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-03911YNoneexplicitVkImageMemoryBarrier2If 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-03912YNoneexplicitVkImageMemoryBarrier2If 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-03913YNoneexplicitVkImageMemoryBarrier2If 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-03914YNoneexplicitVkImageMemoryBarrier2If 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-03915YNoneexplicitVkImageMemoryBarrier2If 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-03916YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03917YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkImageMemoryBarrier2If 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-03919YNoneexplicitVkImageMemoryBarrier2If 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-03920YNoneexplicitVkImageMemoryBarrier2If 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-03922YNoneexplicitVkImageMemoryBarrier2If 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-03923YNoneexplicitVkImageMemoryBarrier2If 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-03924YNoneexplicitVkImageMemoryBarrier2If 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-03925YNoneexplicitVkImageMemoryBarrier2If 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-03926YNoneexplicitVkImageMemoryBarrier2If 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-03927YNoneexplicitVkImageMemoryBarrier2If 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-03928YNoneexplicitVkImageMemoryBarrier2If 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-04747YNoneexplicitVkImageMemoryBarrier2If 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-04858YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04859YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04860YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04861YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkImageMemoryBarrier2If 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.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkImageMemoryBarrier2If 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-07272YNoneexplicitVkImageMemoryBarrier2If 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-07454YNoneexplicitVkImageMemoryBarrier2If 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-07455YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-srcAccessMask-07456YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-srcAccessMask-07457YNoneexplicitVkImageMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkImageMemoryBarrier2-srcAccessMask-07458YNoneexplicitVkImageMemoryBarrier2If 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-08118YNoneexplicitVkImageMemoryBarrier2If 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-parameterYNoneimplicitVkImageMemoryBarrier2srcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938NNoneexplicitVkImageMemoryBarrier2If 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-03939NNoneexplicitVkImageMemoryBarrier2If 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-04065NNoneexplicitVkImageMemoryBarrier2If 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-04066NNoneexplicitVkImageMemoryBarrier2If 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-04067NNoneexplicitVkImageMemoryBarrier2If 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-04068NNoneexplicitVkImageMemoryBarrier2If 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-04070NNoneexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrier2If 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.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrier2If 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.ImageLayoutUsageMismatchexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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.Sync2BarriersexplicitVkImageMemoryBarrier2If 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-09121YNoneexplicitVkImageMemoryBarrier2If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09550YNegativeDynamicRenderingLocalRead.ImageBarrierOwnershipexplicitVkImageMemoryBarrier2If 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_RENDERING_LOCAL_READ_KHR then image must have been created with either VK_IMAGE_USAGE_STORAGE_BIT, or with both VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT and either of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2-srcStageMask-03854YNegativeSyncObject.ImageBarrierWithHostStageexplicitVkImageMemoryBarrier2If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-VkImageMemoryBarrier2-srcStageMask-03855NNoneexplicitVkImageMemoryBarrier2If 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-03929YNoneexplicitVkImageMemoryBarrier2If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkImageMemoryBarrier2-srcStageMask-03930YNoneexplicitVkImageMemoryBarrier2If 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-03931YNoneexplicitVkImageMemoryBarrier2If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03932YNoneexplicitVkImageMemoryBarrier2If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03933YNoneexplicitVkImageMemoryBarrier2If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03934YNoneexplicitVkImageMemoryBarrier2If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03935YNoneexplicitVkImageMemoryBarrier2If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-04957YNoneexplicitVkImageMemoryBarrier2If the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-srcStageMask-04995YNoneexplicitVkImageMemoryBarrier2If the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-srcStageMask-07316YNoneexplicitVkImageMemoryBarrier2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageMemoryBarrier2-srcStageMask-07946YNoneexplicitVkImageMemoryBarrier2If 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-parameterYNoneimplicitVkImageMemoryBarrier2srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkImageMemoryBarrier2-subresourceRange-01486YNoneexplicitVkImageMemoryBarrier2subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2-subresourceRange-01488YNoneexplicitVkImageMemoryBarrier2subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2-subresourceRange-01724YNoneexplicitVkImageMemoryBarrier2If 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-01725YNoneexplicitVkImageMemoryBarrier2If 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-09601YNegativeSyncObject.DepthStencilImageNonSeparateSync2, NegativeSyncObject.Sync2BarriersexplicitVkImageMemoryBarrier2subresourceRange.aspectMask must be valid for the format the image was created with
VUID-VkImageMemoryBarrier2-subresourceRange-parameterYNoneimplicitVkImageMemoryBarrier2subresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageMemoryBarrier2-synchronization2-07793YNegativeSyncObject.Sync2LayoutFeatureexplicitVkImageMemoryBarrier2If 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.Sync2LayoutFeatureexplicitVkImageMemoryBarrier2If 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.DisjointImageWithDrmFormatModifierexplicitVkImageMemoryRequirementsInfo2If 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.MemoryRequirementsexplicitVkImageMemoryRequirementsInfo2If 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.FetchUnboundImageInfoexplicitVkImageMemoryRequirementsInfo2If 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.DisjointImageWithDrmFormatModifierexplicitVkImageMemoryRequirementsInfo2If 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.MemoryRequirementsexplicitVkImageMemoryRequirementsInfo2If 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-08961NNoneexplicitVkImageMemoryRequirementsInfo2If 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-parameterYNoneimplicitVkImageMemoryRequirementsInfo2image must be a valid VkImage handle
VUID-VkImageMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkImageMemoryRequirementsInfo2pNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo
VUID-VkImageMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkImageMemoryRequirementsInfo2sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
VUID-VkImageMemoryRequirementsInfo2-sType-uniqueYNoneimplicitVkImageMemoryRequirementsInfo2The sType value of each struct in the pNext chain must be unique
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmaskYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIAflags must be 0
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863NNoneexplicitVkImagePipeSurfaceCreateInfoFUCHSIAimagePipeHandle must be a valid zx_handle_t
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNextYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIApNext must be NULL
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281YNegativeMemory.MemoryRequirementsexplicitVkImagePlaneMemoryRequirementsInfoIf 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.MultiPlanarGetImageMemoryRequirementsexplicitVkImagePlaneMemoryRequirementsInfoIf 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-parameterYNoneimplicitVkImagePlaneMemoryRequirementsInfoplaneAspect must be a valid VkImageAspectFlagBits value
VUID-VkImagePlaneMemoryRequirementsInfo-sType-sTypeYNoneimplicitVkImagePlaneMemoryRequirementsInfosType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
VUID-VkImageResolve-aspectMask-00266YNegativeImage.ResolveDepthImageexplicitVkImageResolveThe aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageResolve-dstSubresource-parameterYNoneimplicitVkImageResolvedstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve-layerCount-08803YNegativeCommand.ResolveImageImageTypeexplicitVkImageResolveIf 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-08804YNoneexplicitVkImageResolveIf 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-parameterYNoneimplicitVkImageResolvesrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve2-aspectMask-00266YNoneexplicitVkImageResolve2The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageResolve2-dstSubresource-parameterYNoneimplicitVkImageResolve2dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve2-layerCount-08803YNoneexplicitVkImageResolve2If 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-08804YNoneexplicitVkImageResolve2If 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-pNextYNoneimplicitVkImageResolve2pNext must be NULL
VUID-VkImageResolve2-sType-sTypeYNoneimplicitVkImageResolve2sType must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2
VUID-VkImageResolve2-srcSubresource-parameterYNoneimplicitVkImageResolve2srcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageSparseMemoryRequirementsInfo2-image-parameterYNoneimplicitVkImageSparseMemoryRequirementsInfo2image must be a valid VkImage handle
VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkImageSparseMemoryRequirementsInfo2pNext must be NULL
VUID-VkImageSparseMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkImageSparseMemoryRequirementsInfo2sType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
VUID-VkImageStencilUsageCreateInfo-sType-sTypeYNoneimplicitVkImageStencilUsageCreateInfosType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539YNegativeImage.StencilexplicitVkImageStencilUsageCreateInfoIf 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-parameterYNoneimplicitVkImageStencilUsageCreateInfostencilUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmaskYNoneimplicitVkImageStencilUsageCreateInfostencilUsage must not be 0
VUID-VkImageSubresource-aspectMask-parameterYNoneimplicitVkImageSubresourceaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresource-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceaspectMask must not be 0
VUID-VkImageSubresource2KHR-imageSubresource-parameterYNoneimplicitVkImageSubresource2KHRimageSubresource must be a valid VkImageSubresource structure
VUID-VkImageSubresource2KHR-pNext-pNextYNoneimplicitVkImageSubresource2KHRpNext must be NULL
VUID-VkImageSubresource2KHR-sType-sTypeYNoneimplicitVkImageSubresource2KHRsType must be VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
VUID-VkImageSubresourceLayers-aspectMask-00167YNegativeCopyBufferImage.ImageAspectMismatch, NegativeHostImageCopy.CopyImageToImageexplicitVkImageSubresourceLayersIf 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-00168YNegativeCopyBufferImage.ImageAspectMismatch, NegativeHostImageCopy.CopyImageToImageexplicitVkImageSubresourceLayersaspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkImageSubresourceLayers-aspectMask-02247YNegativeCopyBufferImage.ImageAspectMismatch, NegativeHostImageCopy.CopyImageToImageexplicitVkImageSubresourceLayersaspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkImageSubresourceLayers-aspectMask-parameterYNegativeHostImageCopy.CopyImageToImageimplicitVkImageSubresourceLayersaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresourceLayers-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceLayersaspectMask must not be 0
VUID-VkImageSubresourceLayers-layerCount-01700YNegativeCopyBufferImage.ImageLayerCount, NegativeHostImageCopy.CopyImageToImage, NegativeImage.MiscBlitTestsexplicitVkImageSubresourceLayersIf layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0
VUID-VkImageSubresourceLayers-layerCount-09243YNegativeCopyBufferImage.ImageLayerCount, NegativeCopyBufferImage.ImageRemainingLayersexplicitVkImageSubresourceLayersIf the maintenance5 feature is not enabled, layerCount must not be VK_REMAINING_ARRAY_LAYERS
VUID-VkImageSubresourceRange-aspectMask-01670YNegativeImage.ImageSubresourceRangeAspectMaskexplicitVkImageSubresourceRangeIf 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.ImageSubresourceRangeAspectMaskexplicitVkImageSubresourceRangeaspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkImageSubresourceRange-aspectMask-parameterYNoneimplicitVkImageSubresourceRangeaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresourceRange-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceRangeaspectMask must not be 0
VUID-VkImageSubresourceRange-layerCount-01721YNegativeCommand.ClearColorImageWithRange, NegativeCommand.ClearDepthStencilWithRange, NegativeImage.ImageViewInvalidSubresourceRange, NegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageSubresourceRangeIf layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0
VUID-VkImageSubresourceRange-levelCount-01720YNegativeCommand.ClearColorImageWithRange, NegativeCommand.ClearDepthStencilWithRange, NegativeImage.ImageViewInvalidSubresourceRange, NegativeSyncObject.ImageBarrierWithBadRangeexplicitVkImageSubresourceRangeIf levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0
VUID-VkImageSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkImageSwapchainCreateInfoKHRsType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995YNegativeWsi.IncompatibleImageWithSwapchain, NegativeWsi.SwapchainImageexplicitVkImageSwapchainCreateInfoKHRIf swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain
VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameterYNoneimplicitVkImageSwapchainCreateInfoKHRIf swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle
VUID-VkImageToMemoryCopyEXT-aspectMask-09103YNegativeHostImageCopy.DepthStencilexplicitVkImageToMemoryCopyEXTThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkImageToMemoryCopyEXT-imageExtent-06659YNegativeHostImageCopy.ImageExtent2explicitVkImageToMemoryCopyEXTimageExtent.width must not be 0
VUID-VkImageToMemoryCopyEXT-imageExtent-06660YNegativeHostImageCopy.ImageExtent2explicitVkImageToMemoryCopyEXTimageExtent.height must not be 0
VUID-VkImageToMemoryCopyEXT-imageExtent-06661YNegativeHostImageCopy.ImageExtentexplicitVkImageToMemoryCopyEXTimageExtent.depth must not be 0
VUID-VkImageToMemoryCopyEXT-imageSubresource-parameterYNoneimplicitVkImageToMemoryCopyEXTimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageToMemoryCopyEXT-memoryImageHeight-09102YNegativeHostImageCopy.ImageExtent2explicitVkImageToMemoryCopyEXTmemoryImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkImageToMemoryCopyEXT-memoryRowLength-09101YNegativeHostImageCopy.ImageExtent2explicitVkImageToMemoryCopyEXTmemoryRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkImageToMemoryCopyEXT-pHostPointer-09066YNoneexplicitVkImageToMemoryCopyEXTpHostPointer 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-parameterYNoneimplicitVkImageToMemoryCopyEXTpHostPointer must be a pointer value
VUID-VkImageToMemoryCopyEXT-pNext-pNextYNoneimplicitVkImageToMemoryCopyEXTpNext must be NULL
VUID-VkImageToMemoryCopyEXT-pRegions-09067YNegativeHostImageCopy.ImageMemoryOverlapexplicitVkImageToMemoryCopyEXTThe 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-sTypeYNoneimplicitVkImageToMemoryCopyEXTsType must be VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230YNegativeImage.AstcDecodeModeexplicitVkImageViewASTCDecodeModeEXTdecodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231YNegativeImage.AstcDecodeModeexplicitVkImageViewASTCDecodeModeEXTIf the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232NNoneexplicitVkImageViewASTCDecodeModeEXTIf decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameterYNoneimplicitVkImageViewASTCDecodeModeEXTdecodeMode must be a valid VkFormat value
VUID-VkImageViewASTCDecodeModeEXT-format-04084YNegativeImage.AstcDecodeModeexplicitVkImageViewASTCDecodeModeEXTformat of the image view must be one of the ASTC Compressed Image Formats
VUID-VkImageViewASTCDecodeModeEXT-sType-sTypeYNoneimplicitVkImageViewASTCDecodeModeEXTsType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
VUID-VkImageViewAddressPropertiesNVX-pNext-pNextYNoneimplicitVkImageViewAddressPropertiesNVXpNext must be NULL
VUID-VkImageViewAddressPropertiesNVX-sType-sTypeYNoneimplicitVkImageViewAddressPropertiesNVXsType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-08083YNegativeDescriptorBuffer.NotEnabledGetImageViewOpaqueCaptureDescriptorDataEXTexplicitVkImageViewCaptureDescriptorDataInfoEXTimageView must have been created with VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageViewCreateInfo::flags
VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-parameterYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXTimageView must be a valid VkImageView handle
VUID-VkImageViewCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXTpNext must be NULL
VUID-VkImageViewCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXTsType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkImageViewCreateInfo-None-02273YNegativeAndroidHardwareBuffer.CreateImageView, NegativePortabilitySubset.ImageViewFormatReinterpretationComponentCountexplicitVkImageViewCreateInfoThe format features of the resultant image view must contain at least one bit
VUID-VkImageViewCreateInfo-components-parameterYNoneimplicitVkImageViewCreateInfocomponents must be a valid VkComponentMapping structure
VUID-VkImageViewCreateInfo-flags-02572YNegativeFragmentShadingRate.FragmentDensityMapDisabledexplicitVkImageViewCreateInfoIf the fragmentDensityMapDynamic feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
VUID-VkImageViewCreateInfo-flags-03567YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageViewCreateInfoIf the fragmentDensityMapDeferred feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
VUID-VkImageViewCreateInfo-flags-03568YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkImageViewCreateInfoIf 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.FragmentDensityMapEnabledexplicitVkImageViewCreateInfoIf 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.NotEnabledDescriptorBufferCaptureReplayexplicitVkImageViewCreateInfoIf flags includes VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkImageViewCreateInfo-flags-parameterYNoneimplicitVkImageViewCreateInfoflags must be a valid combination of VkImageViewCreateFlagBits values
VUID-VkImageViewCreateInfo-format-04714YNegativeYcbcr.ImageViewFormatexplicitVkImageViewCreateInfoIf 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-04715YNoneexplicitVkImageViewCreateInfoIf 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.MultiplaneIncompatibleViewFormatexplicitVkImageViewCreateInfoIf 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-parameterYNoneimplicitVkImageViewCreateInfoformat must be a valid VkFormat value
VUID-VkImageViewCreateInfo-image-01003YNegativeFragmentShadingRate.ShadingRateImageNV, NegativeImage.ImageViewBreaksParameterCompatibilityRequirements, NegativeVideo.CreateImageViewInvalidViewTypeexplicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeMaintenance1explicitVkImageViewCreateInfoIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageViewCreateInfo-image-01583YNegativeImage.BlockTexelViewFormatexplicitVkImageViewCreateInfoIf 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.MultiplaneIncompatibleViewFormatexplicitVkImageViewCreateInfoIf 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.ImageViewIncompatibleFormatexplicitVkImageViewCreateInfoIf 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.ImageViewNoMutableFormatBitexplicitVkImageViewCreateInfoIf 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.ShadingRateImageNVexplicitVkImageViewCreateInfoIf 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.ShadingRateImageNVexplicitVkImageViewCreateInfoIf 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.CreateImageViewexplicitVkImageViewCreateInfoIf image has an Android external format, format must be VK_FORMAT_UNDEFINED
VUID-VkImageViewCreateInfo-image-02400YNegativeAndroidHardwareBuffer.CreateImageViewexplicitVkImageViewCreateInfoIf 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.CreateImageViewexplicitVkImageViewCreateInfoIf image has an Android external format, all members of components must be the identity swizzle
VUID-VkImageViewCreateInfo-image-02571YNoneexplicitVkImageViewCreateInfoIf image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1
VUID-VkImageViewCreateInfo-image-02724YNegativeImage.ImageViewInvalidSubresourceRangeMaintenance1explicitVkImageViewCreateInfoIf 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.FragmentDensityMapEnabledexplicitVkImageViewCreateInfoIf 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.UsageBitsexplicitVkImageViewCreateInfoimage 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.CreateImageViewInvalidViewTypeexplicitVkImageViewCreateInfoIf 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.CreateImageViewInvalidViewTypeexplicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeMaintenance1, NegativeImage.RemainingMipLevels2DViewOf3DexplicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeMaintenance1explicitVkImageViewCreateInfoIf 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.MultiSampleImageViewexplicitVkImageViewCreateInfoIf 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.Image2DViewOf3DexplicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRange, NegativeImage.ImageViewInvalidSubresourceRangeMaintenance1explicitVkImageViewCreateInfoIf 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.ImageViewBreaksParameterCompatibilityRequirementsexplicitVkImageViewCreateInfoIf 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.BlockTexelViewLevelOrLayerCountexplicitVkImageViewCreateInfoIf 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.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfoIf 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.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfoIf 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.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfoIf 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.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfoIf 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.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfoIf 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.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfoIf 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-08957NNoneexplicitVkImageViewCreateInfoIf image has an QNX Screen external format, format must be VK_FORMAT_UNDEFINED
VUID-VkImageViewCreateInfo-image-08958NNoneexplicitVkImageViewCreateInfoIf 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-08959NNoneexplicitVkImageViewCreateInfoIf image has an QNX Screen external format, all members of components must be the identity swizzle
VUID-VkImageViewCreateInfo-image-09487YNegativeImage.BlockTexelViewCompatibleMultipleLayers, NegativeImage.BlockTexelViewLevelOrLayerCountexplicitVkImageViewCreateInfoIf 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-parameterYNoneimplicitVkImageViewCreateInfoimage must be a valid VkImage handle
VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466YNegativePortabilitySubset.ImageViewFormatReinterpretationComponentCountexplicitVkImageViewCreateInfoIf 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.ImageViewFormatSwizzleexplicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeMaintenance1, NegativeImage.ImageViewLayerCountexplicitVkImageViewCreateInfoIf 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.ImageViewLayerCountexplicitVkImageViewCreateInfoIf 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-04993NNoneexplicitVkImageViewCreateInfoIf 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.ImageFormatListexplicitVkImageViewCreateInfoIf 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.SwizzleexplicitVkImageViewCreateInfoIf 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.CreateImageViewProfileIndependentexplicitVkImageViewCreateInfoIf 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.ImageViewStencilUsageCreateInfoexplicitVkImageViewCreateInfoIf 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.ImageViewStencilUsageCreateInfoexplicitVkImageViewCreateInfoIf 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.MismatchedImageViewAndSamplerFormatexplicitVkImageViewCreateInfoIf 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.ExportMetalObjectsexplicitVkImageViewCreateInfoIf the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT
VUID-VkImageViewCreateInfo-pNext-06944YNoneexplicitVkImageViewCreateInfoIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then textureSampleWeighted feature must be enabled
VUID-VkImageViewCreateInfo-pNext-06945YNoneexplicitVkImageViewCreateInfoIf 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-06946YNoneexplicitVkImageViewCreateInfoIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then components must be VK_COMPONENT_SWIZZLE_IDENTITY for all components
VUID-VkImageViewCreateInfo-pNext-06947YNoneexplicitVkImageViewCreateInfoIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageViewCreateInfo-pNext-06948YNoneexplicitVkImageViewCreateInfoIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.levelCount must be 1
VUID-VkImageViewCreateInfo-pNext-06949YNoneexplicitVkImageViewCreateInfoIf 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-06950YNoneexplicitVkImageViewCreateInfoIf 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-06951YNoneexplicitVkImageViewCreateInfoIf 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-06952YNoneexplicitVkImageViewCreateInfoIf 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-06953YNoneexplicitVkImageViewCreateInfoIf 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.ImageViewTextureSampleWeightedexplicitVkImageViewCreateInfoIf 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.ImageViewTextureSampleWeightedexplicitVkImageViewCreateInfoIf 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.ImageViewTextureSampleWeightedexplicitVkImageViewCreateInfoIf 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.ImageViewTextureSampleWeightedexplicitVkImageViewCreateInfoIf the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure then VkImageViewSampleWeightCreateInfoQCOM::filterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height
VUID-VkImageViewCreateInfo-pNext-08107YNegativeDescriptorBuffer.NotEnabledDescriptorBufferCaptureReplayexplicitVkImageViewCreateInfoIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkImageViewCreateInfo-pNext-pNextYNoneimplicitVkImageViewCreateInfoEach 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-sTypeYNoneimplicitVkImageViewCreateInfosType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
VUID-VkImageViewCreateInfo-sType-uniqueYNoneimplicitVkImageViewCreateInfoThe 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.MultiSampleImageViewexplicitVkImageViewCreateInfoviewType must be compatible with the type of image as shown in the view type compatibility table
VUID-VkImageViewCreateInfo-subresourceRange-01478YNegativeImage.ImageViewInvalidSubresourceRange, NegativeImage.ImageViewInvalidSubresourceRangeMaintenance1explicitVkImageViewCreateInfosubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageViewCreateInfo-subresourceRange-01718YNegativeImage.ImageViewInvalidSubresourceRange, NegativeImage.ImageViewInvalidSubresourceRangeMaintenance1explicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeMaintenance1explicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeMaintenance1, NegativeImage.ImageViewLayerCountexplicitVkImageViewCreateInfoIf 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.MultiplaneImageViewAspectMasksexplicitVkImageViewCreateInfosubresourceRange.aspectMask must only have at most 1 valid multi-planar aspect mask bit
VUID-VkImageViewCreateInfo-subresourceRange-09594YNegativeImage.ColorWthDepthAspect, NegativeImage.DepthStencilImageViewWithColorAspectBit, NegativeImage.ImageViewAspect, NegativeImageDrm.ImageSubresourceRangeAspectMaskexplicitVkImageViewCreateInfosubresourceRange.aspectMask must be valid for the format the image was created with
VUID-VkImageViewCreateInfo-subresourceRange-parameterYNoneimplicitVkImageViewCreateInfosubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageViewCreateInfo-usage-02274YNegativeImage.ImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfoIf 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.ImageViewUsageCreateInfoexplicitVkImageViewCreateInfoIf 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.ImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfoIf 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.ShadingRateUsageexplicitVkImageViewCreateInfoIf 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.ShadingRateUsageexplicitVkImageViewCreateInfoIf 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.ImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfoIf 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.ImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfoIf 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.ImageViewDifferentClassexplicitVkImageViewCreateInfoIf the imageCubeArray feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-VkImageViewCreateInfo-viewType-02960YNegativeImage.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfoIf 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.ImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfoIf 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-parameterYNoneimplicitVkImageViewCreateInfoviewType must be a valid VkImageViewType value
VUID-VkImageViewHandleInfoNVX-commonparentYNoneimplicitVkImageViewHandleInfoNVXBoth 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-02654NNoneexplicitVkImageViewHandleInfoNVXdescriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VUID-VkImageViewHandleInfoNVX-descriptorType-parameterYNoneimplicitVkImageViewHandleInfoNVXdescriptorType must be a valid VkDescriptorType value
VUID-VkImageViewHandleInfoNVX-imageView-02656NNoneexplicitVkImageViewHandleInfoNVXIf 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-02657NNoneexplicitVkImageViewHandleInfoNVXIf 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-parameterYNoneimplicitVkImageViewHandleInfoNVXimageView must be a valid VkImageView handle
VUID-VkImageViewHandleInfoNVX-pNext-pNextYNoneimplicitVkImageViewHandleInfoNVXpNext must be NULL
VUID-VkImageViewHandleInfoNVX-sType-sTypeYNoneimplicitVkImageViewHandleInfoNVXsType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
VUID-VkImageViewHandleInfoNVX-sampler-02655NNoneexplicitVkImageViewHandleInfoNVXsampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VUID-VkImageViewHandleInfoNVX-sampler-parameterYNoneimplicitVkImageViewHandleInfoNVXIf sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle
VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455YNegativeImage.ImageViewMinLodFeatureexplicitVkImageViewMinLodCreateInfoEXTIf the minLod feature is not enabled, minLod must be 0.0
VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456YNegativeImage.ImageViewMinLodexplicitVkImageViewMinLodCreateInfoEXTminLod must be less or equal to the index of the last mipmap level accessible to the view
VUID-VkImageViewMinLodCreateInfoEXT-sType-sTypeYNoneimplicitVkImageViewMinLodCreateInfoEXTsType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06960YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMfilterCenter.x must be less than or equal to (filterSize.width - 1)
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06961YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMfilterCenter.y must be less than or equal to (filterSize.height - 1)
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06958YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMfilterSize.width must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.width
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06959YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMfilterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height
VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06962YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMnumPhases must be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.)
VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06963YNegativeImage.ImageViewTextureSampleWeightedexplicitVkImageViewSampleWeightCreateInfoQCOMnumPhases must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterPhases
VUID-VkImageViewSampleWeightCreateInfoQCOM-sType-sTypeYNoneimplicitVkImageViewSampleWeightCreateInfoQCOMsType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM
VUID-VkImageViewSlicedCreateInfoEXT-None-07870YNegativeImage.SlicedMipLevelexplicitVkImageViewSlicedCreateInfoEXTThe image view must reference exactly 1 mip level
VUID-VkImageViewSlicedCreateInfoEXT-None-07871YNegativeImage.SlicedDeviceFeatureexplicitVkImageViewSlicedCreateInfoEXTThe imageSlicedViewOf3D feature must be enabled on the device
VUID-VkImageViewSlicedCreateInfoEXT-image-07869YNegativeImage.SlicedImageTypeexplicitVkImageViewSlicedCreateInfoEXTimage must have been created with imageType equal to VK_IMAGE_TYPE_3D
VUID-VkImageViewSlicedCreateInfoEXT-sType-sTypeYNoneimplicitVkImageViewSlicedCreateInfoEXTsType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT
VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868YNegativeImage.SlicedUsageexplicitVkImageViewSlicedCreateInfoEXTIf sliceCount is not VK_REMAINING_3D_SLICES_EXT, it must 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.SlicedUsageexplicitVkImageViewSlicedCreateInfoEXTsliceOffset must be less than the effective view depth as specified in Image Mip Level Sizing
VUID-VkImageViewSlicedCreateInfoEXT-viewType-07909YNegativeImage.SlicedImageTypeexplicitVkImageViewSlicedCreateInfoEXTviewType must be VK_IMAGE_VIEW_TYPE_3D
VUID-VkImageViewUsageCreateInfo-sType-sTypeYNoneimplicitVkImageViewUsageCreateInfosType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
VUID-VkImageViewUsageCreateInfo-usage-parameterYNegativeImage.ImageViewUsageCreateInfoimplicitVkImageViewUsageCreateInfousage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageViewUsageCreateInfo-usage-requiredbitmaskYNegativeImage.ImageViewUsageCreateInfoimplicitVkImageViewUsageCreateInfousage must not be 0
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880YNoneexplicitVkImportAndroidHardwareBufferInfoANDROIDIf buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881YNegativeAndroidHardwareBuffer.ImportBufferexplicitVkImportAndroidHardwareBufferInfoANDROIDIf 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.NullAHBImportimplicitVkImportAndroidHardwareBufferInfoANDROIDbuffer must be a valid pointer to an AHardwareBuffer value
VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sTypeYNoneimplicitVkImportAndroidHardwareBufferInfoANDROIDsType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
VUID-VkImportFenceFdInfoKHR-fd-01541NNoneexplicitVkImportFenceFdInfoKHRfd must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceFdInfoKHR-fence-parameterYNoneimplicitVkImportFenceFdInfoKHRfence must be a valid VkFence handle
VUID-VkImportFenceFdInfoKHR-flags-parameterYNoneimplicitVkImportFenceFdInfoKHRflags must be a valid combination of VkFenceImportFlagBits values
VUID-VkImportFenceFdInfoKHR-handleType-01464YNegativeExternalMemorySync.FenceexplicitVkImportFenceFdInfoKHRhandleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table
VUID-VkImportFenceFdInfoKHR-handleType-07306YNegativeExternalMemorySync.SyncFdFenceexplicitVkImportFenceFdInfoKHRIf handleType refers to a handle type with copy payload transference semantics, flags must contain VK_FENCE_IMPORT_TEMPORARY_BIT
VUID-VkImportFenceFdInfoKHR-handleType-parameterYNoneimplicitVkImportFenceFdInfoKHRhandleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkImportFenceFdInfoKHR-pNext-pNextYNoneimplicitVkImportFenceFdInfoKHRpNext must be NULL
VUID-VkImportFenceFdInfoKHR-sType-sTypeYNoneimplicitVkImportFenceFdInfoKHRsType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
VUID-VkImportFenceWin32HandleInfoKHR-fence-parameterYNoneimplicitVkImportFenceWin32HandleInfoKHRfence must be a valid VkFence handle
VUID-VkImportFenceWin32HandleInfoKHR-flags-parameterYNoneimplicitVkImportFenceWin32HandleInfoKHRflags must be a valid combination of VkFenceImportFlagBits values
VUID-VkImportFenceWin32HandleInfoKHR-handle-01462YNegativeExternalMemorySync.FenceexplicitVkImportFenceWin32HandleInfoKHRIf handle is not NULL, name must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-handle-01539NNoneexplicitVkImportFenceWin32HandleInfoKHRIf handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457YNegativeExternalMemorySync.FenceexplicitVkImportFenceWin32HandleInfoKHRhandleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459YNegativeExternalMemorySync.FenceexplicitVkImportFenceWin32HandleInfoKHRIf handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460NNoneexplicitVkImportFenceWin32HandleInfoKHRIf handle is NULL, name must name a valid synchronization primitive of the type specified by handleType
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461NNoneexplicitVkImportFenceWin32HandleInfoKHRIf name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportFenceWin32HandleInfoKHR-name-01540NNoneexplicitVkImportFenceWin32HandleInfoKHRIf name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkImportFenceWin32HandleInfoKHRpNext must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportFenceWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
VUID-VkImportMemoryBufferCollectionFUCHSIA-collection-parameterYNoneimplicitVkImportMemoryBufferCollectionFUCHSIAcollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkImportMemoryBufferCollectionFUCHSIA-index-06406NNoneexplicitVkImportMemoryBufferCollectionFUCHSIAindex must be less than the value retrieved as VkBufferCollectionPropertiesFUCHSIA:bufferCount
VUID-VkImportMemoryBufferCollectionFUCHSIA-sType-sTypeYNoneimplicitVkImportMemoryBufferCollectionFUCHSIAsType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
VUID-VkImportMemoryFdInfoKHR-fd-00668NNoneexplicitVkImportMemoryFdInfoKHRThe memory from which fd was exported must have been created on the same underlying physical device as device
VUID-VkImportMemoryFdInfoKHR-fd-01520NNoneexplicitVkImportMemoryFdInfoKHRfd must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryFdInfoKHR-fd-01746NNoneexplicitVkImportMemoryFdInfoKHRThe 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.ImportMemoryFdImageSupportexplicitVkImportMemoryFdInfoKHRIf handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportMemoryFdInfoKHR-handleType-00669YNegativeExternalMemorySync.ImportMemoryFdHandleTypeexplicitVkImportMemoryFdInfoKHRIf 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.ImportMemoryFdBadFdexplicitVkImportMemoryFdInfoKHRIf handleType is not 0, fd must be a valid handle of the type specified by handleType
VUID-VkImportMemoryFdInfoKHR-handleType-parameterYNoneimplicitVkImportMemoryFdInfoKHRIf handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryFdInfoKHR-sType-sTypeYNoneimplicitVkImportMemoryFdInfoKHRsType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747NNoneexplicitVkImportMemoryHostPointerInfoEXTIf handleType is not 0, it must be supported for import, as reported in VkExternalMemoryProperties
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748YNoneexplicitVkImportMemoryHostPointerInfoEXTIf 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-01750NNoneexplicitVkImportMemoryHostPointerInfoEXTIf 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-01751NNoneexplicitVkImportMemoryHostPointerInfoEXTIf 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-parameterYNoneimplicitVkImportMemoryHostPointerInfoEXThandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749YNoneexplicitVkImportMemoryHostPointerInfoEXTpHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment
VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-parameterYNoneimplicitVkImportMemoryHostPointerInfoEXTpHostPointer must be a pointer value
VUID-VkImportMemoryHostPointerInfoEXT-sType-sTypeYNoneimplicitVkImportMemoryHostPointerInfoEXTsType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659NNoneexplicitVkImportMemoryWin32HandleInfoKHRThe 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-01441NNoneexplicitVkImportMemoryWin32HandleInfoKHRIf handle is not NULL, name must be NULL
VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518NNoneexplicitVkImportMemoryWin32HandleInfoKHRIf handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658YNegativeExternalMemorySync.ImportMemoryWin32BufferSupportexplicitVkImportMemoryWin32HandleInfoKHRIf handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660NNoneexplicitVkImportMemoryWin32HandleInfoKHRIf handleType is not 0, it must be defined as an NT handle or a global share handle
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661NNoneexplicitVkImportMemoryWin32HandleInfoKHRIf handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439NNoneexplicitVkImportMemoryWin32HandleInfoKHRIf 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-01440NNoneexplicitVkImportMemoryWin32HandleInfoKHRIf handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkImportMemoryWin32HandleInfoKHRIf handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryWin32HandleInfoKHR-name-01519NNoneexplicitVkImportMemoryWin32HandleInfoKHRIf name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportMemoryWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
VUID-VkImportMemoryWin32HandleInfoNV-handle-01328NNoneexplicitVkImportMemoryWin32HandleInfoNVhandle must be a valid handle to memory, obtained as specified by handleType
VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327NNoneexplicitVkImportMemoryWin32HandleInfoNVhandleType must not have more than one bit set
VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameterYNoneimplicitVkImportMemoryWin32HandleInfoNVhandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkImportMemoryWin32HandleInfoNV-sType-sTypeYNoneimplicitVkImportMemoryWin32HandleInfoNVsType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772NNoneexplicitVkImportMemoryZirconHandleInfoFUCHSIAhandle must be a valid VMO handle
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771NNoneexplicitVkImportMemoryZirconHandleInfoFUCHSIAhandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkImportMemoryZirconHandleInfoFUCHSIAIf handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkImportMemoryZirconHandleInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkImportMetalBufferInfoEXT-sType-sTypeYNoneimplicitVkImportMetalBufferInfoEXTsType must be VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
VUID-VkImportMetalIOSurfaceInfoEXT-sType-sTypeYNoneimplicitVkImportMetalIOSurfaceInfoEXTsType must be VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
VUID-VkImportMetalSharedEventInfoEXT-sType-sTypeYNoneimplicitVkImportMetalSharedEventInfoEXTsType must be VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
VUID-VkImportMetalTextureInfoEXT-plane-parameterYNoneimplicitVkImportMetalTextureInfoEXTplane must be a valid VkImageAspectFlagBits value
VUID-VkImportMetalTextureInfoEXT-sType-sTypeYNoneimplicitVkImportMetalTextureInfoEXTsType must be VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
VUID-VkImportScreenBufferInfoQNX-buffer-08966NNoneexplicitVkImportScreenBufferInfoQNXIf buffer is not NULL, QNX Screen Buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportScreenBufferInfoQNX-buffer-08967NNoneexplicitVkImportScreenBufferInfoQNXbuffer is not NULL, it must be a pointer to valid QNX Screen buffer
VUID-VkImportScreenBufferInfoQNX-sType-sTypeYNoneimplicitVkImportScreenBufferInfoQNXsType must be VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
VUID-VkImportSemaphoreFdInfoKHR-fd-01544NNoneexplicitVkImportSemaphoreFdInfoKHRfd must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreFdInfoKHR-flags-03323YNegativeExternalMemorySync.TimelineSemaphoreexplicitVkImportSemaphoreFdInfoKHRIf 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-parameterYNoneimplicitVkImportSemaphoreFdInfoKHRflags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreFdInfoKHR-handleType-01143YNegativeExternalMemorySync.SemaphoreexplicitVkImportSemaphoreFdInfoKHRhandleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table
VUID-VkImportSemaphoreFdInfoKHR-handleType-03263YNoneexplicitVkImportSemaphoreFdInfoKHRIf 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.SyncFdSemaphoreTypeexplicitVkImportSemaphoreFdInfoKHRIf 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.SyncFdSemaphoreexplicitVkImportSemaphoreFdInfoKHRIf handleType refers to a handle type with copy payload transference semantics, flags must contain VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
VUID-VkImportSemaphoreFdInfoKHR-handleType-parameterYNoneimplicitVkImportSemaphoreFdInfoKHRhandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkImportSemaphoreFdInfoKHR-pNext-pNextYNoneimplicitVkImportSemaphoreFdInfoKHRpNext must be NULL
VUID-VkImportSemaphoreFdInfoKHR-sType-sTypeYNoneimplicitVkImportSemaphoreFdInfoKHRsType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameterYNoneimplicitVkImportSemaphoreFdInfoKHRsemaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322YNegativeExternalMemorySync.TimelineSemaphoreexplicitVkImportSemaphoreWin32HandleInfoKHRIf 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-parameterYNoneimplicitVkImportSemaphoreWin32HandleInfoKHRflags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469YNoneexplicitVkImportSemaphoreWin32HandleInfoKHRIf handle is not NULL, name must be NULL
VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRIf handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140YNegativeExternalMemorySync.SemaphoreexplicitVkImportSemaphoreWin32HandleInfoKHRhandleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466YNoneexplicitVkImportSemaphoreWin32HandleInfoKHRIf 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-01467NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRIf handle is NULL, name must name a valid synchronization primitive of the type specified by handleType
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRIf name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRIf 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-03262NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRIf 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-01543NNoneexplicitVkImportSemaphoreWin32HandleInfoKHRIf name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkImportSemaphoreWin32HandleInfoKHRpNext must be NULL
VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportSemaphoreWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameterYNoneimplicitVkImportSemaphoreWin32HandleInfoKHRsemaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAflags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIAhandleType must be a value included in the Handle Types Supported by VkImportSemaphoreZirconHandleInfoFUCHSIA table
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAhandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIApNext must be NULL
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIAsemaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768YNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIAThe VkSemaphoreTypeCreateInfo::semaphoreType field must not be VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIAzirconHandle must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIAzirconHandle must have ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rights
VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-11137YNoneexplicitVkIndirectCommandsExecutionSetTokenEXTEach bit in shaderStages must be supported by VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding or VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesShaderBinding
VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-parameterYNoneimplicitVkIndirectCommandsExecutionSetTokenEXTshaderStages must be a valid combination of VkShaderStageFlagBits values
VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-requiredbitmaskYNoneimplicitVkIndirectCommandsExecutionSetTokenEXTshaderStages must not be 0
VUID-VkIndirectCommandsExecutionSetTokenEXT-type-parameterYNoneimplicitVkIndirectCommandsExecutionSetTokenEXTtype must be a valid VkIndirectExecutionSetInfoTypeEXT value
VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-11135YNoneexplicitVkIndirectCommandsIndexBufferTokenEXTmode must be non-zero
VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-11136YNoneexplicitVkIndirectCommandsIndexBufferTokenEXTmode must be one of the bits supported in VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsInputModes
VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-parameterYNoneimplicitVkIndirectCommandsIndexBufferTokenEXTmode must be a valid VkIndirectCommandsInputModeFlagBitsEXT value
VUID-VkIndirectCommandsLayoutCreateInfoEXT-flags-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoEXTflags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsEXT values
VUID-VkIndirectCommandsLayoutCreateInfoEXT-indirectStride-11090YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTindirectStride must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectCommandsIndirectStride
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pNext-pNextYNoneimplicitVkIndirectCommandsLayoutCreateInfoEXTpNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11093YNegativeDeviceGeneratedCommands.EndWithExecutionSetTokenexplicitVkIndirectCommandsLayoutCreateInfoEXTThe number of tokens in the pTokens array with type equal to VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT must be less than or equal to 1
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11094YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTThe number of tokens in the pTokens array with type equal to VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT must be less than or equal to 1
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11095YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTIf the action command token in the pTokens array is not an indexed draw token, then pTokens must not contain a member with type set to VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11096YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTIf the action command token in the pTokens array is not a non-mesh draw token, then pTokens must not contain a member with type set to VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11097YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTIf the pTokens array contains multiple tokens with type equal to VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT, then there must be no duplicate VkIndirectCommandsVertexBufferTokenEXT::vertexBindingUnit values
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11099YNegativeDeviceGeneratedCommands.PushConstantMultipleTokens, NegativeDeviceGeneratedCommands.PushConstantSequenceIndexexplicitVkIndirectCommandsLayoutCreateInfoEXTFor all VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT and VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT type tokens in pTokens, there must be no overlapping ranges between any specified push constant ranges
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11100YNegativeDeviceGeneratedCommands.NonActionTokens, NegativeDeviceGeneratedCommands.NullPipelineLayoutexplicitVkIndirectCommandsLayoutCreateInfoEXTThe action command token must be the last token in the pTokens array
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11101YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTFor any element of pTokens, if type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT or VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT and the dynamicGeneratedPipelineLayout is not enabled, then the pipelineLayout must not be VK_NULL_HANDLE
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11102YNegativeDeviceGeneratedCommands.NullPipelineLayoutexplicitVkIndirectCommandsLayoutCreateInfoEXTFor any element of pTokens, if type is either VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT or VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT and pipelineLayout is VK_NULL_HANDLE, then the pNext chain must include a VkPipelineLayoutCreateInfo struct
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11103YNegativeDeviceGeneratedCommands.TokenOffsetDecreaseexplicitVkIndirectCommandsLayoutCreateInfoEXTFor any element of pTokens, the offset must be greater than or equal to the offset member of the previous tokens
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11104YNegativeDeviceGeneratedCommands.IndirectCommandsNonGraphicsexplicitVkIndirectCommandsLayoutCreateInfoEXTFor any element of pTokens, if type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT, or VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT, then shaderStages must contain graphics stages
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11105YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTFor any element of pTokens, if type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT, then shaderStages must be VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11106YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTFor any element of pTokens, if type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT or VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT, then shaderStages must contain VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11107YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTFor any element of pTokens, if type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT or VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT, then the shaderStages must contain VK_SHADER_STAGE_MESH_BIT_NV
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11108YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTFor any element of pTokens, if type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT, then shaderStages must contain ray tracing stages
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11139YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTIf the pTokens array contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, then this token must be the first token in the array
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11145YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTThe number of tokens in the pTokens array with type equal to VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT must be less than or equal to 1
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoEXTpTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenEXT structures
VUID-VkIndirectCommandsLayoutCreateInfoEXT-pipelineLayout-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoEXTIf pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle
VUID-VkIndirectCommandsLayoutCreateInfoEXT-sType-sTypeYNoneimplicitVkIndirectCommandsLayoutCreateInfoEXTsType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-sType-uniqueYNoneimplicitVkIndirectCommandsLayoutCreateInfoEXTThe sType value of each struct in the pNext chain must be unique
VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11091YNegativeDeviceGeneratedCommands.IndirectCommandsShaderStagesexplicitVkIndirectCommandsLayoutCreateInfoEXTshaderStages must only contain stages supported by VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStages
VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11109YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTIf shaderStages contains graphics stages then the state tokens in pTokens must not include VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11110YNegativeDeviceGeneratedCommands.IndirectCommandsNonGraphicsexplicitVkIndirectCommandsLayoutCreateInfoEXTIf shaderStages is VK_SHADER_STAGE_COMPUTE_BIT then the state tokens in pTokens must only include VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT, or VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11111YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTIf shaderStages contains ray tracing stages then the state tokens in pTokens must only include VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT, or VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11112YNoneexplicitVkIndirectCommandsLayoutCreateInfoEXTThe shaderStages must only contain stages from one of the following: graphics stages VK_SHADER_STAGE_COMPUTE_BIT mesh stages and VK_SHADER_STAGE_FRAGMENT_BIT ray tracing stages
VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11113YNegativeDeviceGeneratedCommands.MissingVertexexplicitVkIndirectCommandsLayoutCreateInfoEXTIf shaderStages contains VK_SHADER_STAGE_FRAGMENT_BIT, then shaderStages must also contain VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoEXTshaderStages must be a valid combination of VkShaderStageFlagBits values
VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-requiredbitmaskYNoneimplicitVkIndirectCommandsLayoutCreateInfoEXTshaderStages must not be 0
VUID-VkIndirectCommandsLayoutCreateInfoEXT-tokenCount-11092YNegativeDeviceGeneratedCommands.MaxIndirectCommandsTokenCountexplicitVkIndirectCommandsLayoutCreateInfoEXTtokenCount must less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectCommandsTokenCount
VUID-VkIndirectCommandsLayoutCreateInfoEXT-tokenCount-arraylengthYNegativeDeviceGeneratedCommands.MaxIndirectCommandsTokenCountimplicitVkIndirectCommandsLayoutCreateInfoEXTtokenCount must be greater than 0
VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVflags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNV values
VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNextYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVpNext must be NULL
VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVeach 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-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVpStreamStrides must be a valid pointer to an array of streamCount uint32_t values
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVIf 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-02933NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVIf 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-02934NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVAll state tokens in pTokens must occur before any action command 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-02935NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVThe content of pTokens must include one single action command token that is compatible with the pipelineBindPoint
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-09585NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVIf pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV it must be the first element of the array and there must be only a single element of such token type
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVpTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVThe pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_COMPUTE
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09088NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09089NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVIf 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-09090NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVIf 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-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sTypeYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVsType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVstreamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount
VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylengthYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVstreamCount must be greater than 0
VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931NNoneexplicitVkIndirectCommandsLayoutCreateInfoNVtokenCount must be greater than 0 and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenCount
VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylengthYNoneimplicitVkIndirectCommandsLayoutCreateInfoNVtokenCount must be greater than 0
VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11129YNoneexplicitVkIndirectCommandsLayoutTokenEXTIf VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::deviceGeneratedCommandsMultiDrawIndirectCount is not supported, type must not be VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT or VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11130YNoneexplicitVkIndirectCommandsLayoutTokenEXTIf VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::deviceGeneratedCommandsMultiDrawIndirectCount is not supported, type must not be VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11131YNoneexplicitVkIndirectCommandsLayoutTokenEXTIf VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::deviceGeneratedCommandsMultiDrawIndirectCount is not supported, type must not be VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-meshShader-11126YNoneexplicitVkIndirectCommandsLayoutTokenEXTIf meshShader or taskShader are not enabled, type must not be VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT or VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-offset-11124YNegativeDeviceGeneratedCommands.TokenOffsetLimitexplicitVkIndirectCommandsLayoutTokenEXToffset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectCommandsTokenOffset
VUID-VkIndirectCommandsLayoutTokenEXT-offset-11125YNegativeDeviceGeneratedCommands.TokenOffsetLimitexplicitVkIndirectCommandsLayoutTokenEXToffset must be aligned to 4
VUID-VkIndirectCommandsLayoutTokenEXT-pExecutionSet-parameterYNegativeDeviceGeneratedCommands.IndirectCommandsNullUnionPointerimplicitVkIndirectCommandsLayoutTokenEXTIf type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT, the pExecutionSet member of data must be a valid pointer to a valid VkIndirectCommandsExecutionSetTokenEXT structure
VUID-VkIndirectCommandsLayoutTokenEXT-pIndexBuffer-parameterYNegativeDeviceGeneratedCommands.IndirectCommandsNullUnionPointerimplicitVkIndirectCommandsLayoutTokenEXTIf type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT, the pIndexBuffer member of data must be a valid pointer to a valid VkIndirectCommandsIndexBufferTokenEXT structure
VUID-VkIndirectCommandsLayoutTokenEXT-pPushConstant-parameterYNegativeDeviceGeneratedCommands.IndirectCommandsNullUnionPointerimplicitVkIndirectCommandsLayoutTokenEXTIf type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT, the pPushConstant member of data must be a valid pointer to a valid VkIndirectCommandsPushConstantTokenEXT structure
VUID-VkIndirectCommandsLayoutTokenEXT-pVertexBuffer-parameterYNegativeDeviceGeneratedCommands.IndirectCommandsNullUnionPointerimplicitVkIndirectCommandsLayoutTokenEXTIf type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT, the pVertexBuffer member of data must be a valid pointer to a valid VkIndirectCommandsVertexBufferTokenEXT structure
VUID-VkIndirectCommandsLayoutTokenEXT-rayTracingMaintenance1-11128YNoneexplicitVkIndirectCommandsLayoutTokenEXTIf rayTracingMaintenance1 is not enabled, type must not be VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-sType-sTypeYNoneimplicitVkIndirectCommandsLayoutTokenEXTsType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT
VUID-VkIndirectCommandsLayoutTokenEXT-type-parameterYNoneimplicitVkIndirectCommandsLayoutTokenEXTtype must be a valid VkIndirectCommandsTokenTypeEXT value
VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVindirectStateFlags must be a valid combination of VkIndirectStateFlagBitsNV values
VUID-VkIndirectCommandsLayoutTokenNV-offset-02952NNoneexplicitVkIndirectCommandsLayoutTokenNVoffset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenOffset
VUID-VkIndirectCommandsLayoutTokenNV-offset-06888NNoneexplicitVkIndirectCommandsLayoutTokenNVoffset must be aligned to the scalar alignment of tokenType or minIndirectCommandsBufferOffsetAlignment, whichever is lower
VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVIf indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values
VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVIf indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid VkIndexType values
VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNextYNoneimplicitVkIndirectCommandsLayoutTokenNVpNext must be NULL
VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVIf pushconstantPipelineLayout is not VK_NULL_HANDLE, pushconstantPipelineLayout must be a valid VkPipelineLayout handle
VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVpushconstantShaderStageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkIndirectCommandsLayoutTokenNV-sType-sTypeYNoneimplicitVkIndirectCommandsLayoutTokenNVsType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
VUID-VkIndirectCommandsLayoutTokenNV-stream-02951NNoneexplicitVkIndirectCommandsLayoutTokenNVstream must be smaller than VkIndirectCommandsLayoutCreateInfoNV::streamCount
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976NNoneexplicitVkIndirectCommandsLayoutTokenNVIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, vertexBindingUnit must stay within device supported limits for the appropriate commands
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977NNoneexplicitVkIndirectCommandsLayoutTokenNVIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantPipelineLayout must be valid
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978NNoneexplicitVkIndirectCommandsLayoutTokenNVIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be a multiple of 4
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979NNoneexplicitVkIndirectCommandsLayoutTokenNVIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be a multiple of 4
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980NNoneexplicitVkIndirectCommandsLayoutTokenNVIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981NNoneexplicitVkIndirectCommandsLayoutTokenNVIf 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-02982NNoneexplicitVkIndirectCommandsLayoutTokenNVIf 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-02983NNoneexplicitVkIndirectCommandsLayoutTokenNVIf 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-02984NNoneexplicitVkIndirectCommandsLayoutTokenNVIf tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, indirectStateFlags must not be 0
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNVtokenType must be a valid VkIndirectCommandsTokenTypeNV value
VUID-VkIndirectCommandsPushConstantTokenEXT-size-11133YNoneexplicitVkIndirectCommandsPushConstantTokenEXTIf the token type is VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT, the size member of updateRange must be 4
VUID-VkIndirectCommandsPushConstantTokenEXT-updateRange-11132YNegativeDeviceGeneratedCommands.PushConstantNoStage, NegativeDeviceGeneratedCommands.PushConstantOutOfRange, NegativeDeviceGeneratedCommands.PushConstantOutOfRangeDynamicexplicitVkIndirectCommandsPushConstantTokenEXTupdateRange must be contained within the push constant info used by VkIndirectCommandsLayoutCreateInfoEXT
VUID-VkIndirectCommandsPushConstantTokenEXT-updateRange-parameterNNoneimplicitVkIndirectCommandsPushConstantTokenEXTupdateRange must be a valid VkPushConstantRange structure
VUID-VkIndirectCommandsStreamNV-buffer-02942NNoneexplicitVkIndirectCommandsStreamNVThe buffer's usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkIndirectCommandsStreamNV-buffer-02975NNoneexplicitVkIndirectCommandsStreamNVIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkIndirectCommandsStreamNV-buffer-parameterYNoneimplicitVkIndirectCommandsStreamNVbuffer must be a valid VkBuffer handle
VUID-VkIndirectCommandsStreamNV-offset-02943NNoneexplicitVkIndirectCommandsStreamNVThe offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment
VUID-VkIndirectCommandsVertexBufferTokenEXT-vertexBindingUnit-11134YNoneexplicitVkIndirectCommandsVertexBufferTokenEXTvertexBindingUnit must be less than the total number of vertex input bindings in use by the current graphics state.
VUID-VkIndirectExecutionSetCreateInfoEXT-maxIndirectShaderObjectCount-11014YNoneexplicitVkIndirectExecutionSetCreateInfoEXTIf VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectShaderObjectCount is zero or shaderObject is not enabled type must not be VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT
VUID-VkIndirectExecutionSetCreateInfoEXT-pPipelineInfo-parameterYNegativeDeviceGeneratedCommands.NullPipelineInfoimplicitVkIndirectExecutionSetCreateInfoEXTIf type is VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT, the pPipelineInfo member of info must be a valid pointer to a valid VkIndirectExecutionSetPipelineInfoEXT structure
VUID-VkIndirectExecutionSetCreateInfoEXT-pShaderInfo-parameterYNoneimplicitVkIndirectExecutionSetCreateInfoEXTIf type is VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT, the pShaderInfo member of info must be a valid pointer to a valid VkIndirectExecutionSetShaderInfoEXT structure
VUID-VkIndirectExecutionSetCreateInfoEXT-sType-sTypeYNoneimplicitVkIndirectExecutionSetCreateInfoEXTsType must be VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT
VUID-VkIndirectExecutionSetCreateInfoEXT-type-parameterYNoneimplicitVkIndirectExecutionSetCreateInfoEXTtype must be a valid VkIndirectExecutionSetInfoTypeEXT value
VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-11019YNegativeDeviceGeneratedCommands.IndirectCommandDescriptorTypeexplicitVkIndirectExecutionSetPipelineInfoEXTinitialPipeline must not use descriptors of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-11153YNegativeDeviceGeneratedCommands.UpdateIESPipelineFlagsexplicitVkIndirectExecutionSetPipelineInfoEXTinitialPipeline must have been created with VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-parameterNNoneimplicitVkIndirectExecutionSetPipelineInfoEXTinitialPipeline must be a valid VkPipeline handle
VUID-VkIndirectExecutionSetPipelineInfoEXT-maxPipelineCount-11018YNegativeDeviceGeneratedCommands.IndirectCommandMaxPipelineCountexplicitVkIndirectExecutionSetPipelineInfoEXTmaxPipelineCount must be between 1 and VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectPipelineCount
VUID-VkIndirectExecutionSetPipelineInfoEXT-sType-sTypeNNoneimplicitVkIndirectExecutionSetPipelineInfoEXTsType must be VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT
VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11015YNegativeDeviceGeneratedCommands.IndirectCommandShaderStageBindingexplicitVkIndirectExecutionSetPipelineInfoEXTIf VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding does not contain VK_SHADER_STAGE_COMPUTE_BIT, the VkPipelineBindPoint of initialPipeline must not be VK_PIPELINE_BIND_POINT_COMPUTE
VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11016YNoneexplicitVkIndirectExecutionSetPipelineInfoEXTIf VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding does not contain VK_SHADER_STAGE_FRAGMENT_BIT, the VkPipelineBindPoint of initialPipeline must not be VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11017YNoneexplicitVkIndirectExecutionSetPipelineInfoEXTIf VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding does not contain ray tracing stages, the VkPipelineBindPoint of initialPipeline must not be VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR
VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11021YNegativeDeviceGeneratedCommands.IESShaderObjectMaxShaderCountexplicitVkIndirectExecutionSetShaderInfoEXTmaxShaderCount must not be zero
VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11022YNegativeDeviceGeneratedCommands.IESShaderObjectMaxShaderCountexplicitVkIndirectExecutionSetShaderInfoEXTmaxShaderCount must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::maxIndirectShaderObjectCount
VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11036YNegativeDeviceGeneratedCommands.IESShaderObjectMaxShaderCount2explicitVkIndirectExecutionSetShaderInfoEXTmaxShaderCount must be greater than or equal to shaderCount
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11020YNoneexplicitVkIndirectExecutionSetShaderInfoEXTAll members of pInitialShaders must have a stage supported by VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesShaderBinding
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11154YNegativeDeviceGeneratedCommands.UpdateIESShaderObjectFlagsexplicitVkIndirectExecutionSetShaderInfoEXTEach member of pInitialShaders must have been created with VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT
VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-parameterYNoneimplicitVkIndirectExecutionSetShaderInfoEXTpInitialShaders must be a valid pointer to an array of shaderCount valid VkShaderEXT handles
VUID-VkIndirectExecutionSetShaderInfoEXT-pPushConstantRanges-parameterYNoneimplicitVkIndirectExecutionSetShaderInfoEXTIf pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures
VUID-VkIndirectExecutionSetShaderInfoEXT-pSetLayoutInfos-parameterYNoneimplicitVkIndirectExecutionSetShaderInfoEXTIf pSetLayoutInfos is not NULL, pSetLayoutInfos must be a valid pointer to an array of shaderCount valid VkIndirectExecutionSetShaderLayoutInfoEXT structures
VUID-VkIndirectExecutionSetShaderInfoEXT-sType-sTypeNNoneimplicitVkIndirectExecutionSetShaderInfoEXTsType must be VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT
VUID-VkIndirectExecutionSetShaderInfoEXT-shaderCount-arraylengthYNoneimplicitVkIndirectExecutionSetShaderInfoEXTshaderCount must be greater than 0
VUID-VkIndirectExecutionSetShaderInfoEXT-stage-11023YNegativeDeviceGeneratedCommands.IESShaderObjectUniqueShadersexplicitVkIndirectExecutionSetShaderInfoEXTThe stage of each element in the pInitialShaders array must be unique
VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-pSetLayouts-11024NNoneexplicitVkIndirectExecutionSetShaderLayoutInfoEXTAll members of pSetLayouts must not contain descriptors of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-pSetLayouts-parameterNNoneimplicitVkIndirectExecutionSetShaderLayoutInfoEXTIf setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid or VK_NULL_HANDLE VkDescriptorSetLayout handles
VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-sType-sTypeYNoneimplicitVkIndirectExecutionSetShaderLayoutInfoEXTsType must be VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT
VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNextYNoneimplicitVkInitializePerformanceApiInfoINTELpNext must be NULL
VUID-VkInitializePerformanceApiInfoINTEL-sType-sTypeYNoneimplicitVkInitializePerformanceApiInfoINTELsType must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
VUID-VkInputAttachmentAspectReference-aspectMask-01964YNegativeSubpass.InputAttachmentReferences, VkLayerTest.VuidFilterHexInt, VkLayerTest.VuidFilterInt, VkLayerTest.VuidIdFilterStringexplicitVkInputAttachmentAspectReferenceaspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkInputAttachmentAspectReference-aspectMask-02250YNegativeSubpass.InputAttachmentReferencesexplicitVkInputAttachmentAspectReferenceaspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i
VUID-VkInputAttachmentAspectReference-aspectMask-parameterYNoneimplicitVkInputAttachmentAspectReferenceaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmaskYNoneimplicitVkInputAttachmentAspectReferenceaspectMask must not be 0
VUID-VkInstanceCreateInfo-flags-06559YVkPortabilitySubsetTest.InstanceCreateEnumerateexplicitVkInstanceCreateInfoIf 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-parameterYNoneimplicitVkInstanceCreateInfoflags must be a valid combination of VkInstanceCreateFlagBits values
VUID-VkInstanceCreateInfo-pApplicationInfo-parameterYNoneimplicitVkInstanceCreateInfoIf pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure
VUID-VkInstanceCreateInfo-pNext-04925YNegativeInstanceless.ExtensionStructsWithoutExtensionsexplicitVkInstanceCreateInfoIf 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.ExtensionStructsWithoutExtensionsexplicitVkInstanceCreateInfoIf 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.ExportMetalObjectsexplicitVkInstanceCreateInfoIf 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.ExtensionStructsWithoutExtensionsexplicitVkInstanceCreateInfoIf 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-pNextYNoneimplicitVkInstanceCreateInfoEach 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-parameterYNoneimplicitVkInstanceCreateInfoIf enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings
VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameterYNoneimplicitVkInstanceCreateInfoIf enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings
VUID-VkInstanceCreateInfo-sType-sTypeYNegativeInstanceless.InstanceBadStypeimplicitVkInstanceCreateInfosType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
VUID-VkInstanceCreateInfo-sType-uniqueYNegativeInstanceless.InstanceDuplicatePnextStypeimplicitVkInstanceCreateInfoThe 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-sTypeYNoneimplicitVkLatencySleepInfoNVsType must be VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV
VUID-VkLatencySleepInfoNV-signalSemaphore-09361NNoneexplicitVkLatencySleepInfoNVsignalSemaphore must be a timeline semaphore
VUID-VkLatencySleepInfoNV-signalSemaphore-parameterYNoneimplicitVkLatencySleepInfoNVsignalSemaphore must be a valid VkSemaphore handle
VUID-VkLatencySleepModeInfoNV-sType-sTypeYNoneimplicitVkLatencySleepModeInfoNVsType must be VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV
VUID-VkLatencySubmissionPresentIdNV-sType-sTypeYNoneimplicitVkLatencySubmissionPresentIdNVsType must be VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV
VUID-VkLatencySurfaceCapabilitiesNV-pPresentModes-parameterYNoneimplicitVkLatencySurfaceCapabilitiesNVIf 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-sTypeYNoneimplicitVkLatencySurfaceCapabilitiesNVsType must be VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV
VUID-VkLatencyTimingsFrameReportNV-sType-sTypeNNoneimplicitVkLatencyTimingsFrameReportNVsType must be VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV
VUID-VkLayerSettingEXT-pLayerName-parameterNNoneimplicitVkLayerSettingEXTpLayerName must be a null-terminated UTF-8 string
VUID-VkLayerSettingEXT-pSettingName-parameterNNoneimplicitVkLayerSettingEXTpSettingName must be a null-terminated UTF-8 string
VUID-VkLayerSettingEXT-type-parameterNNoneimplicitVkLayerSettingEXTtype must be a valid VkLayerSettingTypeEXT value
VUID-VkLayerSettingEXT-valueCount-10070NNoneexplicitVkLayerSettingEXTIf valueCount is not 0, pValues must be a valid pointer to an array of valueCount values of the type indicated by type
VUID-VkLayerSettingsCreateInfoEXT-pSettings-parameterNNoneimplicitVkLayerSettingsCreateInfoEXTIf settingCount is not 0, pSettings must be a valid pointer to an array of settingCount valid VkLayerSettingEXT structures
VUID-VkLayerSettingsCreateInfoEXT-sType-sTypeNNoneimplicitVkLayerSettingsCreateInfoEXTsType must be VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmaskYNoneimplicitVkMacOSSurfaceCreateInfoMVKflags must be 0
VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNextYNoneimplicitVkMacOSSurfaceCreateInfoMVKpNext must be NULL
VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317NNoneexplicitVkMacOSSurfaceCreateInfoMVKIf 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-04144NNoneexplicitVkMacOSSurfaceCreateInfoMVKIf pView is a CAMetalLayer object, it must be a valid CAMetalLayer
VUID-VkMacOSSurfaceCreateInfoMVK-sType-sTypeYNoneimplicitVkMacOSSurfaceCreateInfoMVKsType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
VUID-VkMappedMemoryRange-memory-00684YNegativeMemory.MapMemWithoutHostVisibleBit, NegativeMemory.MapMemoryexplicitVkMappedMemoryRangememory must be currently host mapped
VUID-VkMappedMemoryRange-memory-parameterYNoneimplicitVkMappedMemoryRangememory must be a valid VkDeviceMemory handle
VUID-VkMappedMemoryRange-offset-00687YNegativeMemory.MapMemoryexplicitVkMappedMemoryRangeoffset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize
VUID-VkMappedMemoryRange-pNext-pNextYNoneimplicitVkMappedMemoryRangepNext must be NULL
VUID-VkMappedMemoryRange-sType-sTypeYNoneimplicitVkMappedMemoryRangesType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
VUID-VkMappedMemoryRange-size-00685YNegativeMemory.MapMemoryexplicitVkMappedMemoryRangeIf 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.MapMemoryexplicitVkMappedMemoryRangeIf size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory
VUID-VkMappedMemoryRange-size-01389YNegativeMemory.MapMemoryexplicitVkMappedMemoryRangeIf 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.MapMemoryexplicitVkMappedMemoryRangeIf 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.DeviceMaskexplicitVkMemoryAllocateFlagsInfoIf VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask
VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676YNegativeWsi.DeviceMaskexplicitVkMemoryAllocateFlagsInfoIf VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero
VUID-VkMemoryAllocateFlagsInfo-flags-parameterYNoneimplicitVkMemoryAllocateFlagsInfoflags must be a valid combination of VkMemoryAllocateFlagBits values
VUID-VkMemoryAllocateFlagsInfo-sType-sTypeYNoneimplicitVkMemoryAllocateFlagsInfosType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
VUID-VkMemoryAllocateInfo-None-00643NNoneexplicitVkMemoryAllocateInfoIf 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-00644NNoneexplicitVkMemoryAllocateInfoIf 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-04749NNoneexplicitVkMemoryAllocateInfoIf 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.MemoryAllocatepNextChainWin32explicitVkMemoryAllocateInfoThe parameters must not define more than one import operation
VUID-VkMemoryAllocateInfo-allocationSize-00647NNoneexplicitVkMemoryAllocateInfoIf 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.ImportMemoryFromFdHandleexplicitVkMemoryAllocateInfoIf 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.ImportMemoryFromWin32HandleexplicitVkMemoryAllocateInfoIf 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-01745YNoneexplicitVkMemoryAllocateInfoIf 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.GpuUsageexplicitVkMemoryAllocateInfoIf 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-06382NNoneexplicitVkMemoryAllocateInfoIf 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-07897YNoneexplicitVkMemoryAllocateInfoIf the parameters do not define an import or export operation, allocationSize must be greater than 0
VUID-VkMemoryAllocateInfo-allocationSize-07899YNoneexplicitVkMemoryAllocateInfoIf 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-07902NNoneexplicitVkMemoryAllocateInfoIf 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-07903NNoneexplicitVkMemoryAllocateInfoIf 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-08942NNoneexplicitVkMemoryAllocateInfoIf 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-06380NNoneexplicitVkMemoryAllocateInfoIf 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-06385NNoneexplicitVkMemoryAllocateInfoIf 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.BufferDeviceAddressKHRDisabledexplicitVkMemoryAllocateInfoIf VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled
VUID-VkMemoryAllocateInfo-flags-03331YNegativeMemory.BufferDeviceAddressKHRDisabledexplicitVkMemoryAllocateInfoIf VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, the bufferDeviceAddress feature must be enabled
VUID-VkMemoryAllocateInfo-image-06381NNoneexplicitVkMemoryAllocateInfoIf 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-06384NNoneexplicitVkMemoryAllocateInfoIf 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-00645YNoneexplicitVkMemoryAllocateInfoIf 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-00648NNoneexplicitVkMemoryAllocateInfoIf 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.ImportMemoryHostMemoryIndexexplicitVkMemoryAllocateInfoIf 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.SubmitexplicitVkMemoryAllocateInfoIf 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.GpuUsageexplicitVkMemoryAllocateInfoIf 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-06386NNoneexplicitVkMemoryAllocateInfoIf the parameters define an import operation from an VkBufferCollectionFUCHSIA, memoryTypeIndex must be from VkBufferCollectionPropertiesFUCHSIA as retrieved by vkGetBufferCollectionPropertiesFUCHSIA
VUID-VkMemoryAllocateInfo-memoryTypeIndex-08943NNoneexplicitVkMemoryAllocateInfoIf 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-03329YNoneexplicitVkMemoryAllocateInfoIf VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333YNoneexplicitVkMemoryAllocateInfoIf the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero
VUID-VkMemoryAllocateInfo-pNext-00639YNegativeExternalMemorySync.BufferDedicatedAllocation, NegativeExternalMemorySync.ImageDedicatedAllocationexplicitVkMemoryAllocateInfoIf 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.MemoryAllocatepNextChain, NegativeMemory.MemoryAllocatepNextChainWin32explicitVkMemoryAllocateInfoIf the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure
VUID-VkMemoryAllocateInfo-pNext-00641YNegativeMemory.MemoryAllocatepNextChainWin32explicitVkMemoryAllocateInfoIf the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure
VUID-VkMemoryAllocateInfo-pNext-01874YNegativeAndroidHardwareBuffer.ExportMemoryAllocateImageexplicitVkMemoryAllocateInfoIf 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.ImportBufferexplicitVkMemoryAllocateInfoIf 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.GpuUsageexplicitVkMemoryAllocateInfoIf 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.UnknownFormatexplicitVkMemoryAllocateInfoIf 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.ImageDimensionsexplicitVkMemoryAllocateInfoIf 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.MipmapChainCompleteexplicitVkMemoryAllocateInfoIf 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.GpuUsageexplicitVkMemoryAllocateInfoIf 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.NoMipmapChainexplicitVkMemoryAllocateInfoIf 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-02805NNoneexplicitVkMemoryAllocateInfoIf 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.ImportMemoryHostDedicatedexplicitVkMemoryAllocateInfoIf 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-03332YNoneexplicitVkMemoryAllocateInfoIf the pNext chain includes a VkImportMemoryHostPointerInfoEXT structure, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero
VUID-VkMemoryAllocateInfo-pNext-06383NNoneexplicitVkMemoryAllocateInfoIf 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.ExportMetalObjectsexplicitVkMemoryAllocateInfoIf 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.ExportBufferAllocationSizeexplicitVkMemoryAllocateInfoIf 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.ExportMemoryAllocateBufferexplicitVkMemoryAllocateInfoIf 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-08944NNoneexplicitVkMemoryAllocateInfoIf 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-08945NNoneexplicitVkMemoryAllocateInfoIf 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-08946NNoneexplicitVkMemoryAllocateInfoIf 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-pNextYNoneimplicitVkMemoryAllocateInfoEach 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.InvalidStructSTypeimplicitVkMemoryAllocateInfosType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
VUID-VkMemoryAllocateInfo-sType-uniqueYNoneimplicitVkMemoryAllocateInfoThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkMemoryAllocateInfo-screenBufferImport-08941NNoneexplicitVkMemoryAllocateInfoIf 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-parameterYNoneimplicitVkMemoryBarrierdstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkMemoryBarrier-pNext-pNextYNoneimplicitVkMemoryBarrierpNext must be NULL
VUID-VkMemoryBarrier-sType-sTypeYNoneimplicitVkMemoryBarriersType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
VUID-VkMemoryBarrier-srcAccessMask-parameterYNoneimplicitVkMemoryBarriersrcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkMemoryBarrier2-dstAccessMask-03900YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03917YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkMemoryBarrier2If 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-03919YNoneexplicitVkMemoryBarrier2If 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-03920YNoneexplicitVkMemoryBarrier2If 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-03922YNoneexplicitVkMemoryBarrier2If 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-03923YNoneexplicitVkMemoryBarrier2If 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-03924YNoneexplicitVkMemoryBarrier2If 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-03925YNoneexplicitVkMemoryBarrier2If 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-03926YNoneexplicitVkMemoryBarrier2If 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.BarrierAccessAccelerationStructureexplicitVkMemoryBarrier2If 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.BarrierAccessAccelerationStructureexplicitVkMemoryBarrier2If 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-04747YNoneexplicitVkMemoryBarrier2If 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-04858YNoneexplicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkMemoryBarrier2If 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.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkMemoryBarrier2If 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.BarrierAccessSync2RtxMaintenance1explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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-07455YNoneexplicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-dstAccessMask-07456YNoneexplicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-dstAccessMask-07457YNoneexplicitVkMemoryBarrier2If dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkMemoryBarrier2-dstAccessMask-07458YNoneexplicitVkMemoryBarrier2If 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-08118YNegativeSyncObject.BarrierAccessSync2DescriptorBufferexplicitVkMemoryBarrier2If 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-parameterYNoneimplicitVkMemoryBarrier2dstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkMemoryBarrier2-dstStageMask-03929YNoneexplicitVkMemoryBarrier2If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkMemoryBarrier2-dstStageMask-03930YNoneexplicitVkMemoryBarrier2If 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-03931YNoneexplicitVkMemoryBarrier2If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03932YNoneexplicitVkMemoryBarrier2If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03933YNoneexplicitVkMemoryBarrier2If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03934YNoneexplicitVkMemoryBarrier2If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03935YNoneexplicitVkMemoryBarrier2If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-04957YNoneexplicitVkMemoryBarrier2If the subpassShading feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkMemoryBarrier2-dstStageMask-04995YNoneexplicitVkMemoryBarrier2If the invocationMask feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-dstStageMask-07316YNoneexplicitVkMemoryBarrier2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkMemoryBarrier2-dstStageMask-07946YNoneexplicitVkMemoryBarrier2If 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-parameterYNoneimplicitVkMemoryBarrier2dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkMemoryBarrier2-sType-sTypeYNoneimplicitVkMemoryBarrier2sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER_2
VUID-VkMemoryBarrier2-srcAccessMask-03900YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03917YNegativeSyncObject.BarrierAccessSync2explicitVkMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkMemoryBarrier2If 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-03919YNoneexplicitVkMemoryBarrier2If 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-03920YNoneexplicitVkMemoryBarrier2If 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-03922YNoneexplicitVkMemoryBarrier2If 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-03923YNoneexplicitVkMemoryBarrier2If 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-03924YNoneexplicitVkMemoryBarrier2If 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-03925YNoneexplicitVkMemoryBarrier2If 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-03926YNoneexplicitVkMemoryBarrier2If 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.BarrierAccessAccelerationStructureexplicitVkMemoryBarrier2If 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.BarrierAccessAccelerationStructureexplicitVkMemoryBarrier2If 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-04747YNoneexplicitVkMemoryBarrier2If 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.BarrierAccessVideoDecodeexplicitVkMemoryBarrier2If 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.BarrierAccessVideoDecodeexplicitVkMemoryBarrier2If 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.BarrierAccessVideoDecodeexplicitVkMemoryBarrier2If 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.BarrierAccessVideoDecodeexplicitVkMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkMemoryBarrier2If 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.BarrierSync2AccessAccelerationStructureRayQueryDisabledexplicitVkMemoryBarrier2If 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.BarrierAccessSync2RtxMaintenance1explicitVkMemoryBarrier2If 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.BarrierAccessSync2explicitVkMemoryBarrier2If 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-07455YNoneexplicitVkMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-srcAccessMask-07456YNoneexplicitVkMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-srcAccessMask-07457YNoneexplicitVkMemoryBarrier2If srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkMemoryBarrier2-srcAccessMask-07458YNoneexplicitVkMemoryBarrier2If 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-08118YNegativeSyncObject.BarrierAccessSync2DescriptorBufferexplicitVkMemoryBarrier2If 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-parameterYNoneimplicitVkMemoryBarrier2srcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkMemoryBarrier2-srcStageMask-03929YNoneexplicitVkMemoryBarrier2If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkMemoryBarrier2-srcStageMask-03930YNoneexplicitVkMemoryBarrier2If 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-03931YNoneexplicitVkMemoryBarrier2If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03932YNoneexplicitVkMemoryBarrier2If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03933YNoneexplicitVkMemoryBarrier2If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03934YNoneexplicitVkMemoryBarrier2If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03935YNoneexplicitVkMemoryBarrier2If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-04957YNoneexplicitVkMemoryBarrier2If the subpassShading feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkMemoryBarrier2-srcStageMask-04995YNoneexplicitVkMemoryBarrier2If the invocationMask feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-srcStageMask-07316YNoneexplicitVkMemoryBarrier2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkMemoryBarrier2-srcStageMask-07946YNoneexplicitVkMemoryBarrier2If 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.SubpassDependencyMasksSync2implicitVkMemoryBarrier2srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkMemoryDedicatedAllocateInfo-buffer-01436YNegativeMemory.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfoIf 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.ImportMemoryWin32BufferDifferentDedicatedexplicitVkMemoryDedicatedAllocateInfoIf 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.ImportMemoryFdBufferNoDedicatedexplicitVkMemoryDedicatedAllocateInfoIf 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.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfoIf 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-04752NNoneexplicitVkMemoryDedicatedAllocateInfoIf 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-parameterYNoneimplicitVkMemoryDedicatedAllocateInfoIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkMemoryDedicatedAllocateInfo-commonparentYNoneimplicitVkMemoryDedicatedAllocateInfoBoth 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.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfoAt least one of image and buffer must be VK_NULL_HANDLE
VUID-VkMemoryDedicatedAllocateInfo-image-01434YNegativeMemory.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfoIf 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.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfoIf 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.ImportMemoryWin32ImageNoDedicatedexplicitVkMemoryDedicatedAllocateInfoIf 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-01878YNoneexplicitVkMemoryDedicatedAllocateInfoIf 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.DedicatedAllocationexplicitVkMemoryDedicatedAllocateInfoIf 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-04751NNoneexplicitVkMemoryDedicatedAllocateInfoIf 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-parameterYNoneimplicitVkMemoryDedicatedAllocateInfoIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkMemoryDedicatedAllocateInfo-sType-sTypeYNoneimplicitVkMemoryDedicatedAllocateInfosType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
VUID-VkMemoryDedicatedRequirements-sType-sTypeYNoneimplicitVkMemoryDedicatedRequirementssType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
VUID-VkMemoryFdPropertiesKHR-pNext-pNextYNoneimplicitVkMemoryFdPropertiesKHRpNext must be NULL
VUID-VkMemoryFdPropertiesKHR-sType-sTypeYNoneimplicitVkMemoryFdPropertiesKHRsType must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882YNegativeAndroidHardwareBuffer.ExportBufferHandleTypeexplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDVK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameterYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDmemory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883YNegativeAndroidHardwareBuffer.ExportImageNonBoundexplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDIf 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-pNextYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDpNext must be NULL
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sTypeYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROIDsType must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
VUID-VkMemoryGetFdInfoKHR-handleType-00671YNegativeExternalMemorySync.GetMemoryFdHandleexplicitVkMemoryGetFdInfoKHRhandleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetFdInfoKHR-handleType-00672YNegativeExternalMemorySync.GetMemoryFdHandleexplicitVkMemoryGetFdInfoKHRhandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT
VUID-VkMemoryGetFdInfoKHR-handleType-parameterYNoneimplicitVkMemoryGetFdInfoKHRhandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetFdInfoKHR-memory-parameterYNoneimplicitVkMemoryGetFdInfoKHRmemory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetFdInfoKHR-pNext-pNextYNoneimplicitVkMemoryGetFdInfoKHRpNext must be NULL
VUID-VkMemoryGetFdInfoKHR-sType-sTypeYNoneimplicitVkMemoryGetFdInfoKHRsType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
VUID-VkMemoryGetRemoteAddressInfoNV-handleType-04966NNoneexplicitVkMemoryGetRemoteAddressInfoNVhandleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetRemoteAddressInfoNV-handleType-parameterYNoneimplicitVkMemoryGetRemoteAddressInfoNVhandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetRemoteAddressInfoNV-memory-parameterYNoneimplicitVkMemoryGetRemoteAddressInfoNVmemory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetRemoteAddressInfoNV-pNext-pNextYNoneimplicitVkMemoryGetRemoteAddressInfoNVpNext must be NULL
VUID-VkMemoryGetRemoteAddressInfoNV-sType-sTypeYNoneimplicitVkMemoryGetRemoteAddressInfoNVsType must be VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662YNegativeExternalMemorySync.GetMemoryWin32HandleexplicitVkMemoryGetWin32HandleInfoKHRhandleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663NNoneexplicitVkMemoryGetWin32HandleInfoKHRIf 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.GetMemoryWin32HandleexplicitVkMemoryGetWin32HandleInfoKHRhandleType must be defined as an NT handle or a global share handle
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkMemoryGetWin32HandleInfoKHRhandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameterYNoneimplicitVkMemoryGetWin32HandleInfoKHRmemory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkMemoryGetWin32HandleInfoKHRpNext must be NULL
VUID-VkMemoryGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkMemoryGetWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775NNoneexplicitVkMemoryGetZirconHandleInfoFUCHSIAhandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776NNoneexplicitVkMemoryGetZirconHandleInfoFUCHSIAhandleType must have been included in the handleTypes field of the VkExportMemoryAllocateInfo structure when the external memory was allocated
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIAhandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameterYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIAmemory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIApNext must be NULL
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNextYNoneimplicitVkMemoryHostPointerPropertiesEXTpNext must be NULL
VUID-VkMemoryHostPointerPropertiesEXT-sType-sTypeYNoneimplicitVkMemoryHostPointerPropertiesEXTsType must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
VUID-VkMemoryMapInfoKHR-flags-09569YNoneexplicitVkMemoryMapInfoKHRIf VK_MEMORY_MAP_PLACED_BIT_EXT is set in flags, the memoryMapPlaced feature must be enabled
VUID-VkMemoryMapInfoKHR-flags-09570YNegativeMemory.MapMemoryPlacedexplicitVkMemoryMapInfoKHRIf VK_MEMORY_MAP_PLACED_BIT_EXT is set in flags, the pNext chain must include a VkMemoryMapPlacedInfoEXT structure and VkMemoryMapPlacedInfoEXT::pPlacedAddress must not be NULL
VUID-VkMemoryMapInfoKHR-flags-09571YNegativeMemory.MemoryMapRangePlacedDisabledexplicitVkMemoryMapInfoKHRIf VK_MEMORY_MAP_PLACED_BIT_EXT is set in flags and the memoryMapRangePlaced feature is not enabled, offset must be zero
VUID-VkMemoryMapInfoKHR-flags-09572YNegativeMemory.MemoryMapRangePlacedDisabledexplicitVkMemoryMapInfoKHRIf VK_MEMORY_MAP_PLACED_BIT_EXT is set in flags and the memoryMapRangePlaced feature is not enabled, size must be VK_WHOLE_SIZE or VkMemoryAllocateInfo::allocationSize
VUID-VkMemoryMapInfoKHR-flags-09573YNegativeMemory.MemoryMapRangePlacedEnabledexplicitVkMemoryMapInfoKHRIf VK_MEMORY_MAP_PLACED_BIT_EXT is set in flags and the memoryMapRangePlaced feature is enabled, offset must be aligned to an integer multiple of VkPhysicalDeviceMapMemoryPlacedPropertiesEXT::minPlacedMemoryMapAlignment
VUID-VkMemoryMapInfoKHR-flags-09574YNegativeMemory.MemoryMapRangePlacedDisabled, NegativeMemory.MemoryMapRangePlacedEnabledexplicitVkMemoryMapInfoKHRIf VK_MEMORY_MAP_PLACED_BIT_EXT is set in flags and size is not VK_WHOLE_SIZE, size must be aligned to an integer multiple of VkPhysicalDeviceMapMemoryPlacedPropertiesEXT::minPlacedMemoryMapAlignment
VUID-VkMemoryMapInfoKHR-flags-09575YNoneexplicitVkMemoryMapInfoKHRIf VK_MEMORY_MAP_PLACED_BIT_EXT is set in flags, the memory object must not have been imported from a handle type of VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
VUID-VkMemoryMapInfoKHR-flags-09651YNegativeMemory.MemoryMapRangePlacedDisabledexplicitVkMemoryMapInfoKHRIf VK_MEMORY_MAP_PLACED_BIT_EXT is set in flags and size is VK_WHOLE_SIZE, VkMemoryAllocateInfo::allocationSize must be aligned to an integer multiple of VkPhysicalDeviceMapMemoryPlacedPropertiesEXT::minPlacedMemoryMapAlignment
VUID-VkMemoryMapInfoKHR-flags-parameterYNoneimplicitVkMemoryMapInfoKHRflags must be a valid combination of VkMemoryMapFlagBits values
VUID-VkMemoryMapInfoKHR-memory-07958YNegativeMemory.MapMemory2explicitVkMemoryMapInfoKHRmemory must not be currently host mapped
VUID-VkMemoryMapInfoKHR-memory-07962YNegativeMemory.MapMemory2WithoutHostVisibleBitexplicitVkMemoryMapInfoKHRmemory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VUID-VkMemoryMapInfoKHR-memory-07963YNoneexplicitVkMemoryMapInfoKHRmemory must not have been allocated with multiple instances
VUID-VkMemoryMapInfoKHR-memory-parameterYNoneimplicitVkMemoryMapInfoKHRmemory must be a valid VkDeviceMemory handle
VUID-VkMemoryMapInfoKHR-offset-07959YNegativeMemory.MapMemory2explicitVkMemoryMapInfoKHRoffset must be less than the size of memory
VUID-VkMemoryMapInfoKHR-pNext-pNextYNoneimplicitVkMemoryMapInfoKHRpNext must be NULL or a pointer to a valid instance of VkMemoryMapPlacedInfoEXT
VUID-VkMemoryMapInfoKHR-sType-sTypeYNoneimplicitVkMemoryMapInfoKHRsType must be VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR
VUID-VkMemoryMapInfoKHR-sType-uniqueYNoneimplicitVkMemoryMapInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkMemoryMapInfoKHR-size-07960YNegativeMemory.MapMemory2explicitVkMemoryMapInfoKHRIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkMemoryMapInfoKHR-size-07961YNegativeMemory.MapMemory2explicitVkMemoryMapInfoKHRIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset
VUID-VkMemoryMapPlacedInfoEXT-flags-09576NNoneexplicitVkMemoryMapPlacedInfoEXTIf VkMemoryMapInfoKHR::flags contains VK_MEMORY_MAP_PLACED_BIT_EXT, pPlacedAddress must not be NULL
VUID-VkMemoryMapPlacedInfoEXT-pPlacedAddress-09577YNegativeMemory.MapMemoryPlacedexplicitVkMemoryMapPlacedInfoEXTpPlacedAddress must be aligned to an integer multiple of VkPhysicalDeviceMapMemoryPlacedPropertiesEXT::minPlacedMemoryMapAlignment
VUID-VkMemoryMapPlacedInfoEXT-pPlacedAddress-09578NNoneexplicitVkMemoryMapPlacedInfoEXTThe address range specified by pPlacedAddress and VkMemoryMapInfoKHR::size must not overlap any existing Vulkan memory object mapping
VUID-VkMemoryMapPlacedInfoEXT-sType-sTypeYNoneimplicitVkMemoryMapPlacedInfoEXTsType must be VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT
VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sTypeYNoneimplicitVkMemoryOpaqueCaptureAddressAllocateInfosType must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602YNegativeMemory.MemoryPriorityOutOfRangeexplicitVkMemoryPriorityAllocateInfoEXTpriority must be between 0 and 1, inclusive
VUID-VkMemoryPriorityAllocateInfoEXT-sType-sTypeYNoneimplicitVkMemoryPriorityAllocateInfoEXTsType must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
VUID-VkMemoryRequirements2-pNext-pNextYNoneimplicitVkMemoryRequirements2pNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirements
VUID-VkMemoryRequirements2-sType-sTypeYNoneimplicitVkMemoryRequirements2sType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
VUID-VkMemoryRequirements2-sType-uniqueYNoneimplicitVkMemoryRequirements2The sType value of each struct in the pNext chain must be unique
VUID-VkMemoryToImageCopyEXT-aspectMask-09103YNegativeHostImageCopy.DepthStencilexplicitVkMemoryToImageCopyEXTThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkMemoryToImageCopyEXT-imageExtent-06659YNegativeHostImageCopy.ImageExtent2explicitVkMemoryToImageCopyEXTimageExtent.width must not be 0
VUID-VkMemoryToImageCopyEXT-imageExtent-06660YNegativeHostImageCopy.ImageExtent2explicitVkMemoryToImageCopyEXTimageExtent.height must not be 0
VUID-VkMemoryToImageCopyEXT-imageExtent-06661YNegativeHostImageCopy.ImageExtentexplicitVkMemoryToImageCopyEXTimageExtent.depth must not be 0
VUID-VkMemoryToImageCopyEXT-imageSubresource-parameterYNoneimplicitVkMemoryToImageCopyEXTimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkMemoryToImageCopyEXT-memoryImageHeight-09102YNegativeHostImageCopy.ImageExtent2explicitVkMemoryToImageCopyEXTmemoryImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkMemoryToImageCopyEXT-memoryRowLength-09101YNegativeHostImageCopy.ImageExtent2explicitVkMemoryToImageCopyEXTmemoryRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkMemoryToImageCopyEXT-pHostPointer-09061YNoneexplicitVkMemoryToImageCopyEXTpHostPointer 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-parameterYNoneimplicitVkMemoryToImageCopyEXTpHostPointer must be a pointer value
VUID-VkMemoryToImageCopyEXT-pNext-pNextYNoneimplicitVkMemoryToImageCopyEXTpNext must be NULL
VUID-VkMemoryToImageCopyEXT-pRegions-09062YNegativeHostImageCopy.ImageMemoryOverlapexplicitVkMemoryToImageCopyEXTThe 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-sTypeYNoneimplicitVkMemoryToImageCopyEXTsType must be VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT
VUID-VkMemoryUnmapInfoKHR-flags-09579YNoneexplicitVkMemoryUnmapInfoKHRIf VK_MEMORY_UNMAP_RESERVE_BIT_EXT is set in flags, the memoryUnmapReserve must be enabled
VUID-VkMemoryUnmapInfoKHR-flags-09580YNoneexplicitVkMemoryUnmapInfoKHRIf VK_MEMORY_UNMAP_RESERVE_BIT_EXT is set in flags, the memory object must not have been imported from a handle type of VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
VUID-VkMemoryUnmapInfoKHR-flags-parameterYNoneimplicitVkMemoryUnmapInfoKHRflags must be a valid combination of VkMemoryUnmapFlagBitsKHR values
VUID-VkMemoryUnmapInfoKHR-memory-07964YNegativeMemory.MapMemory2explicitVkMemoryUnmapInfoKHRmemory must be currently host mapped
VUID-VkMemoryUnmapInfoKHR-memory-parameterYNoneimplicitVkMemoryUnmapInfoKHRmemory must be a valid VkDeviceMemory handle
VUID-VkMemoryUnmapInfoKHR-pNext-pNextYNoneimplicitVkMemoryUnmapInfoKHRpNext must be NULL
VUID-VkMemoryUnmapInfoKHR-sType-sTypeYNoneimplicitVkMemoryUnmapInfoKHRsType must be VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR
VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNextYNoneimplicitVkMemoryWin32HandlePropertiesKHRpNext must be NULL
VUID-VkMemoryWin32HandlePropertiesKHR-sType-sTypeYNoneimplicitVkMemoryWin32HandlePropertiesKHRsType must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
VUID-VkMemoryZirconHandlePropertiesFUCHSIA-pNext-pNextYNoneimplicitVkMemoryZirconHandlePropertiesFUCHSIApNext must be NULL
VUID-VkMemoryZirconHandlePropertiesFUCHSIA-sType-sTypeYNoneimplicitVkMemoryZirconHandlePropertiesFUCHSIAsType must be VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkMetalSurfaceCreateInfoEXTflags must be 0
VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkMetalSurfaceCreateInfoEXTpNext must be NULL
VUID-VkMetalSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkMetalSurfaceCreateInfoEXTsType must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
VUID-VkMicromapBuildInfoEXT-flags-parameterYNoneimplicitVkMicromapBuildInfoEXTflags must be a valid combination of VkBuildMicromapFlagBitsEXT values
VUID-VkMicromapBuildInfoEXT-pNext-pNextYNoneimplicitVkMicromapBuildInfoEXTpNext must be NULL
VUID-VkMicromapBuildInfoEXT-pUsageCounts-07516NNoneexplicitVkMicromapBuildInfoEXTOnly one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
VUID-VkMicromapBuildInfoEXT-pUsageCounts-parameterYNoneimplicitVkMicromapBuildInfoEXTIf 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-parameterYNoneimplicitVkMicromapBuildInfoEXTIf 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-sTypeYNoneimplicitVkMicromapBuildInfoEXTsType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
VUID-VkMicromapBuildInfoEXT-type-07517NNoneexplicitVkMicromapBuildInfoEXTIf type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapUsageEXT must be a valid value from VkOpacityMicromapFormatEXT
VUID-VkMicromapBuildInfoEXT-type-07518NNoneexplicitVkMicromapBuildInfoEXTIf type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapTriangleEXT must be a valid value from VkOpacityMicromapFormatEXT
VUID-VkMicromapBuildInfoEXT-type-08704NNoneexplicitVkMicromapBuildInfoEXTIf type is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV the format member of VkMicromapUsageEXT must be a valid value from VkDisplacementMicromapFormatNV
VUID-VkMicromapBuildInfoEXT-type-08705NNoneexplicitVkMicromapBuildInfoEXTIf type is VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV the format member of VkMicromapTriangleEXT must be a valid value from VkDisplacementMicromapFormatNV
VUID-VkMicromapBuildInfoEXT-type-parameterYNoneimplicitVkMicromapBuildInfoEXTtype must be a valid VkMicromapTypeEXT value
VUID-VkMicromapBuildSizesInfoEXT-pNext-pNextNNoneimplicitVkMicromapBuildSizesInfoEXTpNext must be NULL
VUID-VkMicromapBuildSizesInfoEXT-sType-sTypeYNoneimplicitVkMicromapBuildSizesInfoEXTsType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
VUID-VkMicromapCreateInfoEXT-buffer-07435NNoneexplicitVkMicromapCreateInfoEXTbuffer must have been created with a usage value containing VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT
VUID-VkMicromapCreateInfoEXT-buffer-07436NNoneexplicitVkMicromapCreateInfoEXTbuffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkMicromapCreateInfoEXT-buffer-parameterYNoneimplicitVkMicromapCreateInfoEXTbuffer must be a valid VkBuffer handle
VUID-VkMicromapCreateInfoEXT-createFlags-07434NNoneexplicitVkMicromapCreateInfoEXTIf createFlags includes VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapCaptureReplay must be VK_TRUE
VUID-VkMicromapCreateInfoEXT-createFlags-parameterYNoneimplicitVkMicromapCreateInfoEXTcreateFlags must be a valid combination of VkMicromapCreateFlagBitsEXT values
VUID-VkMicromapCreateInfoEXT-deviceAddress-07433NNoneexplicitVkMicromapCreateInfoEXTIf deviceAddress is not zero, createFlags must include VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
VUID-VkMicromapCreateInfoEXT-offset-07437NNoneexplicitVkMicromapCreateInfoEXTThe sum of offset and size must be less than the size of buffer
VUID-VkMicromapCreateInfoEXT-offset-07438NNoneexplicitVkMicromapCreateInfoEXToffset must be a multiple of 256 bytes
VUID-VkMicromapCreateInfoEXT-pNext-pNextYNoneimplicitVkMicromapCreateInfoEXTpNext must be NULL
VUID-VkMicromapCreateInfoEXT-sType-sTypeYNoneimplicitVkMicromapCreateInfoEXTsType must be VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
VUID-VkMicromapCreateInfoEXT-type-parameterYNoneimplicitVkMicromapCreateInfoEXTtype must be a valid VkMicromapTypeEXT value
VUID-VkMicromapTriangleEXT-format-07522NNoneexplicitVkMicromapTriangleEXTIf 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-07523NNoneexplicitVkMicromapTriangleEXTIf 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-07524NNoneexplicitVkMicromapTriangleEXTIf 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-08708NNoneexplicitVkMicromapTriangleEXTIf 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-08709NNoneexplicitVkMicromapTriangleEXTIf 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-07519NNoneexplicitVkMicromapUsageEXTIf 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-07520NNoneexplicitVkMicromapUsageEXTIf 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-07521NNoneexplicitVkMicromapUsageEXTIf 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-08706NNoneexplicitVkMicromapUsageEXTIf 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-08707NNoneexplicitVkMicromapUsageEXTIf 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-pNextYNoneimplicitVkMicromapVersionInfoEXTpNext must be NULL
VUID-VkMicromapVersionInfoEXT-pVersionData-parameterYNoneimplicitVkMicromapVersionInfoEXTpVersionData must be a valid pointer to an array of \(2 \times \mathtt{VK\_UUID\_SIZE}\) uint8_t values
VUID-VkMicromapVersionInfoEXT-sType-sTypeYNoneimplicitVkMicromapVersionInfoEXTsType must be VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
VUID-VkMultisamplePropertiesEXT-pNext-pNextYNoneimplicitVkMultisamplePropertiesEXTpNext must be NULL
VUID-VkMultisamplePropertiesEXT-sType-sTypeYNoneimplicitVkMultisamplePropertiesEXTsType must be VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
VUID-VkMultisampledRenderToSingleSampledInfoEXT-pNext-06880YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkMultisampledRenderToSingleSampledInfoEXTIf 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.MultisampledRenderToSingleSampledexplicitVkMultisampledRenderToSingleSampledInfoEXTThe value of rasterizationSamples must not be VK_SAMPLE_COUNT_1_BIT
VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-parameterYNoneimplicitVkMultisampledRenderToSingleSampledInfoEXTrasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkMultisampledRenderToSingleSampledInfoEXT-sType-sTypeYNoneimplicitVkMultisampledRenderToSingleSampledInfoEXTsType must be VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT
VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sTypeYNoneimplicitVkMultiviewPerViewAttributesInfoNVXsType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07861NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMThe offset.x member of any element of pPerViewRenderAreas must be greater than or equal to 0
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07862NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMThe offset.y member of any element of pPerViewRenderAreas must be greater than or equal to 0
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-offset-07863NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMThe 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-07864NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMThe 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-07865NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMIf 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-07866NNoneexplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMIf 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-parameterYNoneimplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMIf perViewRenderAreaCount is not 0, pPerViewRenderAreas must be a valid pointer to an array of perViewRenderAreaCount VkRect2D structures
VUID-VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM-sType-sTypeYNoneimplicitVkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOMsType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
VUID-VkMutableDescriptorTypeCreateInfoEXT-pMutableDescriptorTypeLists-parameterYNoneimplicitVkMutableDescriptorTypeCreateInfoEXTIf mutableDescriptorTypeListCount is not 0, pMutableDescriptorTypeLists must be a valid pointer to an array of mutableDescriptorTypeListCount valid VkMutableDescriptorTypeListEXT structures
VUID-VkMutableDescriptorTypeCreateInfoEXT-sType-sTypeYNoneimplicitVkMutableDescriptorTypeCreateInfoEXTsType must be VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04597YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTdescriptorTypeCount must not be 0 if the corresponding binding is of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04599YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTdescriptorTypeCount must be 0 if the corresponding binding is not of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04598YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTpDescriptorTypes 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.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTpDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04601YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTpDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04602YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTpDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04603YNegativeDescriptors.MutableDescriptorsexplicitVkMutableDescriptorTypeListEXTpDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-parameterYNoneimplicitVkMutableDescriptorTypeListEXTIf descriptorTypeCount is not 0, pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid VkDescriptorType values
VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-opaqueCaptureDescriptorData-parameterYNoneimplicitVkOpaqueCaptureDescriptorDataCreateInfoEXTopaqueCaptureDescriptorData must be a pointer value
VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-sType-sTypeYNoneimplicitVkOpaqueCaptureDescriptorDataCreateInfoEXTsType must be VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
VUID-VkOpticalFlowExecuteInfoNV-flags-parameterYNoneimplicitVkOpticalFlowExecuteInfoNVflags must be a valid combination of VkOpticalFlowExecuteFlagBitsNV values
VUID-VkOpticalFlowExecuteInfoNV-pNext-pNextYNoneimplicitVkOpticalFlowExecuteInfoNVpNext must be NULL
VUID-VkOpticalFlowExecuteInfoNV-pRegions-parameterYNoneimplicitVkOpticalFlowExecuteInfoNVIf regionCount is not 0, pRegions must be a valid pointer to an array of regionCount VkRect2D structures
VUID-VkOpticalFlowExecuteInfoNV-regionCount-07593NNoneexplicitVkOpticalFlowExecuteInfoNVregionCount 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-sTypeYNoneimplicitVkOpticalFlowExecuteInfoNVsType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
VUID-VkOpticalFlowImageFormatInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowImageFormatInfoNVsType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
VUID-VkOpticalFlowImageFormatInfoNV-usage-parameterYNoneimplicitVkOpticalFlowImageFormatInfoNVusage must be a valid combination of VkOpticalFlowUsageFlagBitsNV values
VUID-VkOpticalFlowImageFormatInfoNV-usage-requiredbitmaskYNoneimplicitVkOpticalFlowImageFormatInfoNVusage must not be 0
VUID-VkOpticalFlowImageFormatPropertiesNV-pNext-pNextYNoneimplicitVkOpticalFlowImageFormatPropertiesNVpNext must be NULL
VUID-VkOpticalFlowImageFormatPropertiesNV-sType-sTypeYNoneimplicitVkOpticalFlowImageFormatPropertiesNVsType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-07585NNoneexplicitVkOpticalFlowSessionCreateInfoNVcostFormat 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-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVIf costFormat is not 0, costFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07588NNoneexplicitVkOpticalFlowSessionCreateInfoNVVK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::hintSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07589NNoneexplicitVkOpticalFlowSessionCreateInfoNVVK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::costSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07590NNoneexplicitVkOpticalFlowSessionCreateInfoNVVK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::globalFlowSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07591NNoneexplicitVkOpticalFlowSessionCreateInfoNVVK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::maxNumRegionsOfInterest is 0
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07592NNoneexplicitVkOpticalFlowSessionCreateInfoNVVK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::bidirectionalFlowSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVflags must be a valid combination of VkOpticalFlowSessionCreateFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-07584NNoneexplicitVkOpticalFlowSessionCreateInfoNVflowVectorFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV
VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVflowVectorFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-height-07582NNoneexplicitVkOpticalFlowSessionCreateInfoNVheight must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minHeight and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxHeight
VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-07587NNoneexplicitVkOpticalFlowSessionCreateInfoNVhintGridSize 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-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVhintGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-07583NNoneexplicitVkOpticalFlowSessionCreateInfoNVimageFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV
VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVimageFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-07586NNoneexplicitVkOpticalFlowSessionCreateInfoNVoutputGridSize must be exactly one of the bits reported in VkPhysicalDeviceOpticalFlowPropertiesNV::supportedOutputGridSizes
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVoutputGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-requiredbitmaskYNoneimplicitVkOpticalFlowSessionCreateInfoNVoutputGridSize must not be 0
VUID-VkOpticalFlowSessionCreateInfoNV-pNext-pNextYNoneimplicitVkOpticalFlowSessionCreateInfoNVpNext must be NULL or a pointer to a valid instance of VkOpticalFlowSessionCreatePrivateDataInfoNV
VUID-VkOpticalFlowSessionCreateInfoNV-performanceLevel-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNVIf performanceLevel is not 0, performanceLevel must be a valid VkOpticalFlowPerformanceLevelNV value
VUID-VkOpticalFlowSessionCreateInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowSessionCreateInfoNVsType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
VUID-VkOpticalFlowSessionCreateInfoNV-sType-uniqueYNoneimplicitVkOpticalFlowSessionCreateInfoNVThe sType value of each struct in the pNext chain must be unique
VUID-VkOpticalFlowSessionCreateInfoNV-width-07581NNoneexplicitVkOpticalFlowSessionCreateInfoNVwidth must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minWidth and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxWidth
VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-pPrivateData-parameterYNoneimplicitVkOpticalFlowSessionCreatePrivateDataInfoNVpPrivateData must be a pointer value
VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowSessionCreatePrivateDataInfoNVsType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV
VUID-VkOutOfBandQueueTypeInfoNV-queueType-parameterYNoneimplicitVkOutOfBandQueueTypeInfoNVqueueType must be a valid VkOutOfBandQueueTypeNV value
VUID-VkOutOfBandQueueTypeInfoNV-sType-sTypeYNoneimplicitVkOutOfBandQueueTypeInfoNVsType must be VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV
VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceConfigurationAcquireInfoINTELpNext must be NULL
VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceConfigurationAcquireInfoINTELsType must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameterYNoneimplicitVkPerformanceConfigurationAcquireInfoINTELtype must be a valid VkPerformanceConfigurationTypeINTEL value
VUID-VkPerformanceCounterDescriptionKHR-pNext-pNextYNoneimplicitVkPerformanceCounterDescriptionKHRpNext must be NULL
VUID-VkPerformanceCounterDescriptionKHR-sType-sTypeYNoneimplicitVkPerformanceCounterDescriptionKHRsType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
VUID-VkPerformanceCounterKHR-pNext-pNextYNoneimplicitVkPerformanceCounterKHRpNext must be NULL
VUID-VkPerformanceCounterKHR-sType-sTypeYNoneimplicitVkPerformanceCounterKHRsType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
VUID-VkPerformanceMarkerInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceMarkerInfoINTELpNext must be NULL
VUID-VkPerformanceMarkerInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceMarkerInfoINTELsType must be VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
VUID-VkPerformanceOverrideInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceOverrideInfoINTELpNext must be NULL
VUID-VkPerformanceOverrideInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceOverrideInfoINTELsType must be VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
VUID-VkPerformanceOverrideInfoINTEL-type-parameterYNoneimplicitVkPerformanceOverrideInfoINTELtype must be a valid VkPerformanceOverrideTypeINTEL value
VUID-VkPerformanceQuerySubmitInfoKHR-counterPassIndex-03221YNegativeQuery.PerformanceIncompletePassesexplicitVkPerformanceQuerySubmitInfoKHRcounterPassIndex 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-sTypeYNoneimplicitVkPerformanceQuerySubmitInfoKHRsType must be VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735NNoneexplicitVkPerformanceStreamMarkerInfoINTELThe 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-pNextYNoneimplicitVkPerformanceStreamMarkerInfoINTELpNext must be NULL
VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceStreamMarkerInfoINTELsType must be VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
VUID-VkPhysicalDevice16BitStorageFeatures-sType-sTypeYNoneimplicitVkPhysicalDevice16BitStorageFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
VUID-VkPhysicalDevice4444FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevice4444FormatsFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
VUID-VkPhysicalDevice8BitStorageFeatures-sType-sTypeYNoneimplicitVkPhysicalDevice8BitStorageFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
VUID-VkPhysicalDeviceASTCDecodeFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceASTCDecodeFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
VUID-VkPhysicalDeviceAccelerationStructureFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceAccelerationStructureFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
VUID-VkPhysicalDeviceAccelerationStructurePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceAccelerationStructurePropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
VUID-VkPhysicalDeviceAddressBindingReportFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceAddressBindingReportFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
VUID-VkPhysicalDeviceAmigoProfilingFeaturesSEC-sType-sTypeYNoneimplicitVkPhysicalDeviceAmigoProfilingFeaturesSECsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
VUID-VkPhysicalDeviceAntiLagFeaturesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceAntiLagFeaturesAMDsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD
VUID-VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
VUID-VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
VUID-VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBlendOperationAdvancedFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
VUID-VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBlendOperationAdvancedPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
VUID-VkPhysicalDeviceBorderColorSwizzleFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBorderColorSwizzleFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceBufferDeviceAddressFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBufferDeviceAddressFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
VUID-VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceClusterCullingShaderFeaturesHUAWEIsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
VUID-VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceClusterCullingShaderPropertiesHUAWEIsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
VUID-VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceCoherentMemoryFeaturesAMDsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
VUID-VkPhysicalDeviceColorWriteEnableFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceColorWriteEnableFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
VUID-VkPhysicalDeviceCommandBufferInheritanceFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCommandBufferInheritanceFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV
VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceComputeShaderDerivativesFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
VUID-VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceComputeShaderDerivativesPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceConditionalRenderingFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceConservativeRasterizationPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
VUID-VkPhysicalDeviceCooperativeMatrixFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
VUID-VkPhysicalDeviceCooperativeMatrixFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
VUID-VkPhysicalDeviceCooperativeMatrixPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
VUID-VkPhysicalDeviceCooperativeMatrixPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
VUID-VkPhysicalDeviceCopyMemoryIndirectFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCopyMemoryIndirectFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
VUID-VkPhysicalDeviceCopyMemoryIndirectPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCopyMemoryIndirectPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV
VUID-VkPhysicalDeviceCornerSampledImageFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCornerSampledImageFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
VUID-VkPhysicalDeviceCoverageReductionModeFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCoverageReductionModeFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
VUID-VkPhysicalDeviceCubicClampFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceCubicClampFeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM
VUID-VkPhysicalDeviceCubicWeightsFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceCubicWeightsFeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM
VUID-VkPhysicalDeviceCudaKernelLaunchFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCudaKernelLaunchFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV
VUID-VkPhysicalDeviceCudaKernelLaunchPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCudaKernelLaunchPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV
VUID-VkPhysicalDeviceCustomBorderColorFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceCustomBorderColorFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
VUID-VkPhysicalDeviceCustomBorderColorPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceCustomBorderColorPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
VUID-VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
VUID-VkPhysicalDeviceDepthBiasControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthBiasControlFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClampControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClampControlFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClampZeroOneFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClampZeroOneFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClipControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClipControlFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClipEnableFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClipEnableFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
VUID-VkPhysicalDeviceDepthStencilResolveProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthStencilResolvePropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
VUID-VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceDescriptorBufferFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
VUID-VkPhysicalDeviceDescriptorBufferPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorIndexingFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorIndexingPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
VUID-VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorPoolOverallocationFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
VUID-VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVEsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
VUID-VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV
VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT
VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT
VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
VUID-VkPhysicalDeviceDeviceMemoryReportFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceMemoryReportFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
VUID-VkPhysicalDeviceDiagnosticsConfigFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDiagnosticsConfigFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
VUID-VkPhysicalDeviceDiscardRectanglePropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDiscardRectanglePropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
VUID-VkPhysicalDeviceDisplacementMicromapFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDisplacementMicromapFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
VUID-VkPhysicalDeviceDisplacementMicromapPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDisplacementMicromapPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
VUID-VkPhysicalDeviceDriverProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDriverPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
VUID-VkPhysicalDeviceDrmPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDrmPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
VUID-VkPhysicalDeviceDynamicRenderingFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceDynamicRenderingFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
VUID-VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
VUID-VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
VUID-VkPhysicalDeviceExclusiveScissorFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExclusiveScissorFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
VUID-VkPhysicalDeviceExtendedDynamicState2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState2FeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
VUID-VkPhysicalDeviceExtendedDynamicState3FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState3FeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
VUID-VkPhysicalDeviceExtendedDynamicState3PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState3PropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
VUID-VkPhysicalDeviceExtendedDynamicStateFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicStateFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
VUID-VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV
VUID-VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedSparseAddressSpacePropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV
VUID-VkPhysicalDeviceExternalBufferInfo-None-09499YVkLayerTest.InvalidGetExternalBufferPropertiesUsageexplicitVkPhysicalDeviceExternalBufferInfoIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage must be a valid combination of VkBufferUsageFlagBits values
VUID-VkPhysicalDeviceExternalBufferInfo-None-09500YVkLayerTest.InvalidGetExternalBufferPropertiesUsageexplicitVkPhysicalDeviceExternalBufferInfoIf the pNext chain does not include a VkBufferUsageFlags2CreateInfoKHR structure, usage must not be 0
VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameterYNoneimplicitVkPhysicalDeviceExternalBufferInfoflags must be a valid combination of VkBufferCreateFlagBits values
VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalBufferInfohandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalBufferInfopNext must be NULL or a pointer to a valid instance of VkBufferUsageFlags2CreateInfoKHR
VUID-VkPhysicalDeviceExternalBufferInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalBufferInfosType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
VUID-VkPhysicalDeviceExternalBufferInfo-sType-uniqueYNoneimplicitVkPhysicalDeviceExternalBufferInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalFenceInfohandleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalFenceInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalFenceInfopNext must be NULL
VUID-VkPhysicalDeviceExternalFenceInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalFenceInfosType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
VUID-VkPhysicalDeviceExternalFormatResolveFeaturesANDROID-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalFormatResolveFeaturesANDROIDsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID
VUID-VkPhysicalDeviceExternalFormatResolvePropertiesANDROID-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalFormatResolvePropertiesANDROIDsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID
VUID-VkPhysicalDeviceExternalImageFormatInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalImageFormatInfoIf handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalImageFormatInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalImageFormatInfosType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
VUID-VkPhysicalDeviceExternalMemoryHostPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalMemoryHostPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
VUID-VkPhysicalDeviceExternalMemoryRDMAFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalMemoryRDMAFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV
VUID-VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNXsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX
VUID-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfohandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalSemaphoreInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfopNext must be NULL or a pointer to a valid instance of VkSemaphoreTypeCreateInfo
VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfosType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-uniqueYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceFaultFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFaultFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
VUID-VkPhysicalDeviceFeatures2-sType-sTypeYNoneimplicitVkPhysicalDeviceFeatures2sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
VUID-VkPhysicalDeviceFloatControlsProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceFloatControlsPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
VUID-VkPhysicalDeviceFragmentDensityMap2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMap2FeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentDensityMap2PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMap2PropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
VUID-VkPhysicalDeviceFragmentDensityMapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
VUID-VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
VUID-VkPhysicalDeviceFragmentDensityMapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderBarycentricFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
VUID-VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderBarycentricPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderInterlockFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameterYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNVmaxFragmentShadingRateInvocationCount must be a valid VkSampleCountFlagBits value
VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
VUID-VkPhysicalDeviceFragmentShadingRateFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
VUID-VkPhysicalDeviceFragmentShadingRateKHR-pNext-pNextYNoneimplicitVkPhysicalDeviceFragmentShadingRateKHRpNext must be NULL
VUID-VkPhysicalDeviceFragmentShadingRateKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
VUID-VkPhysicalDeviceFragmentShadingRatePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRatePropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
VUID-VkPhysicalDeviceFrameBoundaryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFrameBoundaryFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
VUID-VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceGlobalPriorityQueryFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
VUID-VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
VUID-VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
VUID-VkPhysicalDeviceGroupProperties-pNext-pNextYNoneimplicitVkPhysicalDeviceGroupPropertiespNext must be NULL
VUID-VkPhysicalDeviceGroupProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceGroupPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
VUID-VkPhysicalDeviceHostImageCopyFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceHostImageCopyFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopyDstLayouts-parameterYNoneimplicitVkPhysicalDeviceHostImageCopyPropertiesEXTIf 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-parameterYNoneimplicitVkPhysicalDeviceHostImageCopyPropertiesEXTIf 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-sTypeYNoneimplicitVkPhysicalDeviceHostImageCopyPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceHostQueryResetFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
VUID-VkPhysicalDeviceIDProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceIDPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
VUID-VkPhysicalDeviceImage2DViewOf3DFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImage2DViewOf3DFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
VUID-VkPhysicalDeviceImageAlignmentControlFeaturesMESA-sType-sTypeYNoneimplicitVkPhysicalDeviceImageAlignmentControlFeaturesMESAsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA
VUID-VkPhysicalDeviceImageAlignmentControlPropertiesMESA-sType-sTypeYNoneimplicitVkPhysicalDeviceImageAlignmentControlPropertiesMESAsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA
VUID-VkPhysicalDeviceImageCompressionControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageCompressionControlFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314YNegativeImageDrm.PhysicalDeviceImageDrmFormatModifierInfoexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTIf 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.PhysicalDeviceImageDrmFormatModifierInfoexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTIf sharingMode is VK_SHARING_MODE_CONCURRENT, then queueFamilyIndexCount must be greater than 1
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316YNegativeImageDrm.PhysicalDeviceImageDrmFormatModifierInfoQueryexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTIf 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-parameterYNoneimplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXTsharingMode must be a valid VkSharingMode value
VUID-VkPhysicalDeviceImageFormatInfo2-flags-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2flags must be a valid combination of VkImageCreateFlagBits values
VUID-VkPhysicalDeviceImageFormatInfo2-format-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2format must be a valid VkFormat value
VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNextYNoneimplicitVkPhysicalDeviceImageFormatInfo2Each 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-sTypeYNoneimplicitVkPhysicalDeviceImageFormatInfo2sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
VUID-VkPhysicalDeviceImageFormatInfo2-sType-uniqueYNoneimplicitVkPhysicalDeviceImageFormatInfo2The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249YNegativeImageDrm.ImageFormatInfoexplicitVkPhysicalDeviceImageFormatInfo2tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT if and only if the pNext chain includes VkPhysicalDeviceImageDrmFormatModifierInfoEXT
VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313YNegativeImageDrm.ImageFormatInfoexplicitVkPhysicalDeviceImageFormatInfo2If 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-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2tiling must be a valid VkImageTiling value
VUID-VkPhysicalDeviceImageFormatInfo2-type-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2type must be a valid VkImageType value
VUID-VkPhysicalDeviceImageFormatInfo2-usage-parameterYVkLayerTest.UnrecognizedFlagOutOfRange2implicitVkPhysicalDeviceImageFormatInfo2usage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmaskYNoneimplicitVkPhysicalDeviceImageFormatInfo2usage must not be 0
VUID-VkPhysicalDeviceImageProcessing2FeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessing2FeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM
VUID-VkPhysicalDeviceImageProcessing2PropertiesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessing2PropertiesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM
VUID-VkPhysicalDeviceImageProcessingFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessingFeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM
VUID-VkPhysicalDeviceImageProcessingPropertiesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessingPropertiesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM
VUID-VkPhysicalDeviceImageRobustnessFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceImageRobustnessFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
VUID-VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageSlicedViewOf3DFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-imageViewType-parameterYNoneimplicitVkPhysicalDeviceImageViewImageFormatInfoEXTimageViewType must be a valid VkImageViewType value
VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageViewImageFormatInfoEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
VUID-VkPhysicalDeviceImageViewMinLodFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageViewMinLodFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
VUID-VkPhysicalDeviceImagelessFramebufferFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceImagelessFramebufferFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
VUID-VkPhysicalDeviceIndexTypeUint8FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceIndexTypeUint8FeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
VUID-VkPhysicalDeviceInheritedViewportScissorFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceInheritedViewportScissorFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
VUID-VkPhysicalDeviceInlineUniformBlockFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceInlineUniformBlockFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
VUID-VkPhysicalDeviceInlineUniformBlockProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceInlineUniformBlockPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
VUID-VkPhysicalDeviceInvocationMaskFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceInvocationMaskFeaturesHUAWEIsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
VUID-VkPhysicalDeviceLayeredApiPropertiesKHR-pNext-pNextNNoneimplicitVkPhysicalDeviceLayeredApiPropertiesKHRpNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceLayeredApiVulkanPropertiesKHR
VUID-VkPhysicalDeviceLayeredApiPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceLayeredApiPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR
VUID-VkPhysicalDeviceLayeredApiPropertiesKHR-sType-uniqueNNoneimplicitVkPhysicalDeviceLayeredApiPropertiesKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceLayeredApiPropertiesListKHR-pLayeredApis-parameterYNoneimplicitVkPhysicalDeviceLayeredApiPropertiesListKHRIf layeredApiCount is not 0, and pLayeredApis is not NULL, pLayeredApis must be a valid pointer to an array of layeredApiCount VkPhysicalDeviceLayeredApiPropertiesKHR structures
VUID-VkPhysicalDeviceLayeredApiPropertiesListKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceLayeredApiPropertiesListKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
VUID-VkPhysicalDeviceLayeredApiVulkanPropertiesKHR-pNext-10011YVkLayerTest.PhysicalDeviceLayeredApiVulkanPropertiesKHRexplicitVkPhysicalDeviceLayeredApiVulkanPropertiesKHROnly VkPhysicalDeviceDriverProperties and VkPhysicalDeviceIDProperties are allowed in the pNext chain of properties
VUID-VkPhysicalDeviceLayeredApiVulkanPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceLayeredApiVulkanPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR
VUID-VkPhysicalDeviceLayeredDriverPropertiesMSFT-sType-sTypeYNoneimplicitVkPhysicalDeviceLayeredDriverPropertiesMSFTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
VUID-VkPhysicalDeviceLegacyDitheringFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLegacyDitheringFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
VUID-VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLegacyVertexAttributesFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
VUID-VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLegacyVertexAttributesPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
VUID-VkPhysicalDeviceLineRasterizationFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceLineRasterizationFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
VUID-VkPhysicalDeviceLineRasterizationPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceLineRasterizationPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
VUID-VkPhysicalDeviceLinearColorAttachmentFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceLinearColorAttachmentFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
VUID-VkPhysicalDeviceMaintenance3Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance3PropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
VUID-VkPhysicalDeviceMaintenance4Features-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance4FeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
VUID-VkPhysicalDeviceMaintenance4Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance4PropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
VUID-VkPhysicalDeviceMaintenance5FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance5FeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
VUID-VkPhysicalDeviceMaintenance5PropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance5PropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
VUID-VkPhysicalDeviceMaintenance6FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance6FeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
VUID-VkPhysicalDeviceMaintenance6PropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance6PropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
VUID-VkPhysicalDeviceMaintenance7FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance7FeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
VUID-VkPhysicalDeviceMaintenance7PropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance7PropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
VUID-VkPhysicalDeviceMapMemoryPlacedFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMapMemoryPlacedFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT
VUID-VkPhysicalDeviceMapMemoryPlacedPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMapMemoryPlacedPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT
VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryBudgetPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
VUID-VkPhysicalDeviceMemoryDecompressionFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryDecompressionFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV
VUID-VkPhysicalDeviceMemoryDecompressionPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryDecompressionPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV
VUID-VkPhysicalDeviceMemoryPriorityFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryPriorityFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNextYNoneimplicitVkPhysicalDeviceMemoryProperties2pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMemoryBudgetPropertiesEXT
VUID-VkPhysicalDeviceMemoryProperties2-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryProperties2sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
VUID-VkPhysicalDeviceMemoryProperties2-sType-uniqueYNoneimplicitVkPhysicalDeviceMemoryProperties2The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032YVkLayerTest.RequiredMeshShaderFeaturesexplicitVkPhysicalDeviceMeshShaderFeaturesEXTIf multiviewMeshShader is enabled then VkPhysicalDeviceMultiviewFeaturesKHR::multiview must also be enabled
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033YVkLayerTest.RequiredMeshShaderFeaturesexplicitVkPhysicalDeviceMeshShaderFeaturesEXTIf primitiveFragmentShadingRateMeshShader is enabled then VkPhysicalDeviceFragmentShadingRateFeaturesKHR::primitiveFragmentShadingRate must also be enabled
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
VUID-VkPhysicalDeviceMeshShaderFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
VUID-VkPhysicalDeviceMeshShaderPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
VUID-VkPhysicalDeviceMeshShaderPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
VUID-VkPhysicalDeviceMultiDrawFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiDrawFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
VUID-VkPhysicalDeviceMultiDrawPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiDrawPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
VUID-VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580YNegativeMultiview.FeaturesexplicitVkPhysicalDeviceMultiviewFeaturesIf multiviewGeometryShader is enabled then multiview must also be enabled
VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581YNegativeMultiview.FeaturesexplicitVkPhysicalDeviceMultiviewFeaturesIf multiviewTessellationShader is enabled then multiview must also be enabled
VUID-VkPhysicalDeviceMultiviewFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
VUID-VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
VUID-VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM
VUID-VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM
VUID-VkPhysicalDeviceMultiviewProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMutableDescriptorTypeFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
VUID-VkPhysicalDeviceNestedCommandBufferFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceNestedCommandBufferFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
VUID-VkPhysicalDeviceNestedCommandBufferPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceNestedCommandBufferPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
VUID-VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceNonSeamlessCubeMapFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
VUID-VkPhysicalDeviceOpacityMicromapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceOpacityMicromapFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
VUID-VkPhysicalDeviceOpacityMicromapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceOpacityMicromapPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceOpticalFlowFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceOpticalFlowFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
VUID-VkPhysicalDeviceOpticalFlowPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceOpticalFlowPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
VUID-VkPhysicalDevicePCIBusInfoPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePCIBusInfoPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
VUID-VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
VUID-VkPhysicalDevicePerStageDescriptorSetFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDevicePerStageDescriptorSetFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV
VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePerformanceQueryFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePerformanceQueryPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
VUID-VkPhysicalDevicePipelineBinaryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineBinaryFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
VUID-VkPhysicalDevicePipelineBinaryPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineBinaryPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
VUID-VkPhysicalDevicePipelineCreationCacheControlFeatures-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineCreationCacheControlFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
VUID-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
VUID-VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
VUID-VkPhysicalDevicePipelinePropertiesFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelinePropertiesFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
VUID-VkPhysicalDevicePipelineProtectedAccessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineProtectedAccessFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT
VUID-VkPhysicalDevicePipelineRobustnessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineRobustnessFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
VUID-VkPhysicalDevicePipelineRobustnessPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineRobustnessPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
VUID-VkPhysicalDevicePointClippingProperties-sType-sTypeYNoneimplicitVkPhysicalDevicePointClippingPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
VUID-VkPhysicalDevicePortabilitySubsetFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePortabilitySubsetFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
VUID-VkPhysicalDevicePortabilitySubsetPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePortabilitySubsetPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
VUID-VkPhysicalDevicePresentBarrierFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDevicePresentBarrierFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
VUID-VkPhysicalDevicePresentIdFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePresentIdFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
VUID-VkPhysicalDevicePresentWaitFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePresentWaitFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
VUID-VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
VUID-VkPhysicalDevicePrivateDataFeatures-sType-sTypeYNoneimplicitVkPhysicalDevicePrivateDataFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
VUID-VkPhysicalDeviceProperties2-pNext-pNextYVkLayerTest.DeviceIDPropertiesUnsupported, VkLayerTest.DuplicateMessageLimit, VkLayerTest.Features11WithoutVulkan12, VkLayerTest.MissingExtensionPhysicalDevicePropertiesimplicitVkPhysicalDeviceProperties2Each 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, VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCudaKernelLaunchPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageAlignmentControlPropertiesMESA, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredApiPropertiesListKHR, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, VkPhysicalDeviceLineRasterizationPropertiesKHR, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5PropertiesKHR, VkPhysicalDeviceMaintenance6PropertiesKHR, VkPhysicalDeviceMaintenance7PropertiesKHR, VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineBinaryPropertiesKHR, 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-sTypeYNoneimplicitVkPhysicalDeviceProperties2sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
VUID-VkPhysicalDeviceProperties2-sType-uniqueYVkLayerTest.DuplicateValidPNextStructuresimplicitVkPhysicalDeviceProperties2The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceProtectedMemoryFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceProtectedMemoryFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
VUID-VkPhysicalDeviceProtectedMemoryProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceProtectedMemoryPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
VUID-VkPhysicalDeviceProvokingVertexFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceProvokingVertexFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
VUID-VkPhysicalDeviceProvokingVertexPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceProvokingVertexPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
VUID-VkPhysicalDevicePushDescriptorPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePushDescriptorPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
VUID-VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRGBA10X6FormatsFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
VUID-VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
VUID-VkPhysicalDeviceRawAccessChainsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRawAccessChainsFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV
VUID-VkPhysicalDeviceRayQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayQueryFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingInvocationReorderFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV
VUID-VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingInvocationReorderPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV
VUID-VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingMaintenance1FeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingMotionBlurFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingMotionBlurFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575YNoneexplicitVkPhysicalDeviceRayTracingPipelineFeaturesKHRIf rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingPipelineShaderGroupHandleCaptureReplay must also be VK_TRUE
VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPipelineFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingPipelinePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPipelinePropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
VUID-VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPositionFetchFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
VUID-VkPhysicalDeviceRayTracingValidationFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingValidationFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV
VUID-VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG-sType-sTypeYNoneimplicitVkPhysicalDeviceRelaxedLineRasterizationFeaturesIMGsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG
VUID-VkPhysicalDeviceRenderPassStripedFeaturesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceRenderPassStripedFeaturesARMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
VUID-VkPhysicalDeviceRenderPassStripedPropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceRenderPassStripedPropertiesARMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
VUID-VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRepresentativeFragmentTestFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000YNegativeDeviceQueue.Robustness2WithoutRobustnessexplicitVkPhysicalDeviceRobustness2FeaturesEXTIf robustBufferAccess2 is enabled then robustBufferAccess must also be enabled
VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRobustness2FeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
VUID-VkPhysicalDeviceRobustness2PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRobustness2PropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
VUID-VkPhysicalDeviceSampleLocationsPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceSampleLocationsPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
VUID-VkPhysicalDeviceSamplerFilterMinmaxProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSamplerFilterMinmaxPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
VUID-VkPhysicalDeviceSamplerYcbcrConversionFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSamplerYcbcrConversionFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceScalarBlockLayoutFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
VUID-VkPhysicalDeviceSchedulingControlsFeaturesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceSchedulingControlsFeaturesARMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM
VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceSchedulingControlsPropertiesARMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM
VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-parameterYNoneimplicitVkPhysicalDeviceSchedulingControlsPropertiesARMschedulingControlsFlags must be a valid combination of VkPhysicalDeviceSchedulingControlsFlagBitsARM values
VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-requiredbitmaskYNoneimplicitVkPhysicalDeviceSchedulingControlsPropertiesARMschedulingControlsFlags must not be 0
VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSeparateDepthStencilLayoutsFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
VUID-VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV
VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicFloat2FeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
VUID-VkPhysicalDeviceShaderAtomicFloatFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicFloatFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
VUID-VkPhysicalDeviceShaderAtomicInt64Features-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicInt64FeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
VUID-VkPhysicalDeviceShaderClockFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderClockFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
VUID-VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreBuiltinsFeaturesARMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
VUID-VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreBuiltinsPropertiesARMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
VUID-VkPhysicalDeviceShaderCoreProperties2AMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreProperties2AMDsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
VUID-VkPhysicalDeviceShaderCorePropertiesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCorePropertiesAMDsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
VUID-VkPhysicalDeviceShaderCorePropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCorePropertiesARMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM
VUID-VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
VUID-VkPhysicalDeviceShaderDrawParametersFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderDrawParametersFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
VUID-VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
VUID-VkPhysicalDeviceShaderEnqueueFeaturesAMDX-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderEnqueueFeaturesAMDXsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX
VUID-VkPhysicalDeviceShaderEnqueuePropertiesAMDX-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderEnqueuePropertiesAMDXsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX
VUID-VkPhysicalDeviceShaderExpectAssumeFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderExpectAssumeFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
VUID-VkPhysicalDeviceShaderFloat16Int8Features-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderFloat16Int8FeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
VUID-VkPhysicalDeviceShaderFloatControls2FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderFloatControls2FeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
VUID-VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
VUID-VkPhysicalDeviceShaderImageFootprintFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderImageFootprintFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
VUID-VkPhysicalDeviceShaderIntegerDotProductFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerDotProductFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
VUID-VkPhysicalDeviceShaderIntegerDotProductProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerDotProductPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
VUID-VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
VUID-VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
VUID-VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderModuleIdentifierFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
VUID-VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderModuleIdentifierPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
VUID-VkPhysicalDeviceShaderObjectFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderObjectFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
VUID-VkPhysicalDeviceShaderObjectPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderObjectPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
VUID-VkPhysicalDeviceShaderQuadControlFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderQuadControlFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
VUID-VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
VUID-VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderReplicatedCompositesFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
VUID-VkPhysicalDeviceShaderSMBuiltinsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSMBuiltinsFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
VUID-VkPhysicalDeviceShaderSMBuiltinsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSMBuiltinsPropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
VUID-VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSubgroupExtendedTypesFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
VUID-VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSubgroupRotateFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
VUID-VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
VUID-VkPhysicalDeviceShaderTerminateInvocationFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderTerminateInvocationFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
VUID-VkPhysicalDeviceShaderTileImageFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderTileImageFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
VUID-VkPhysicalDeviceShaderTileImagePropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderTileImagePropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
VUID-VkPhysicalDeviceShadingRateImageFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShadingRateImageFeaturesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
VUID-VkPhysicalDeviceShadingRateImagePropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShadingRateImagePropertiesNVsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2format must be a valid VkFormat value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNextYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2pNext must be NULL
VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sTypeYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095NNoneexplicitVkPhysicalDeviceSparseImageFormatInfo2samples 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
VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2samples must be a valid VkSampleCountFlagBits value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2tiling must be a valid VkImageTiling value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2type must be a valid VkImageType value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2usage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmaskYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2usage must not be 0
VUID-VkPhysicalDeviceSubgroupProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
VUID-VkPhysicalDeviceSubgroupSizeControlFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupSizeControlFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
VUID-VkPhysicalDeviceSubgroupSizeControlProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupSizeControlPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
VUID-VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassMergeFeedbackFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
VUID-VkPhysicalDeviceSubpassShadingFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassShadingFeaturesHUAWEIsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
VUID-VkPhysicalDeviceSubpassShadingPropertiesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassShadingPropertiesHUAWEIsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672YNegativeWsi.GetPhysicalDeviceSurfaceCapabilities2KHRWithFullScreenEXTexplicitVkPhysicalDeviceSurfaceInfo2KHRIf 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.SurfaceQueryImageCompressionControlWithoutExtensionimplicitVkPhysicalDeviceSurfaceInfo2KHREach 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-sTypeYNoneimplicitVkPhysicalDeviceSurfaceInfo2KHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-uniqueYNoneimplicitVkPhysicalDeviceSurfaceInfo2KHRThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919YNoneexplicitVkPhysicalDeviceSurfaceInfo2KHRIf surface is not VK_NULL_HANDLE, and the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle
VUID-VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceSwapchainMaintenance1FeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
VUID-VkPhysicalDeviceSynchronization2Features-sType-sTypeYNoneimplicitVkPhysicalDeviceSynchronization2FeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
VUID-VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTexelBufferAlignmentFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
VUID-VkPhysicalDeviceTexelBufferAlignmentProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceTexelBufferAlignmentPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
VUID-VkPhysicalDeviceTextureCompressionASTCHDRFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceTextureCompressionASTCHDRFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
VUID-VkPhysicalDeviceTilePropertiesFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceTilePropertiesFeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
VUID-VkPhysicalDeviceTimelineSemaphoreFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceTimelineSemaphoreFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
VUID-VkPhysicalDeviceTimelineSemaphoreProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceTimelineSemaphorePropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
VUID-VkPhysicalDeviceToolProperties-pNext-pNextYNoneimplicitVkPhysicalDeviceToolPropertiespNext must be NULL
VUID-VkPhysicalDeviceToolProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceToolPropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES
VUID-VkPhysicalDeviceTransformFeedbackFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTransformFeedbackFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
VUID-VkPhysicalDeviceTransformFeedbackPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTransformFeedbackPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceUniformBufferStandardLayoutFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceVariablePointersFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431YVkLayerTest.FeaturesVariablePointerexplicitVkPhysicalDeviceVariablePointersFeaturesIf variablePointers is enabled then variablePointersStorageBuffer must also be enabled
VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexAttributeDivisorFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexAttributeDivisorPropertiesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexAttributeDivisorPropertiesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
VUID-VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexInputDynamicStateFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pNext-pNextYNoneimplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRpNext must be NULL
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-08259YNegativeVideo.EncodeQualityLevelPropsMissingCodecInfo, NegativeVideo.EncodeQualityLevelPropsUnsupportedProfileexplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRpVideoProfile must be a supported video profile
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-08260YNegativeVideo.EncodeQualityLevelPropsProfileNotEncodeexplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRpVideoProfile->videoCodecOperation must specify an encode operation
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-parameterYNoneimplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRpVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-qualityLevel-08261YNegativeVideo.EncodeQualityLevelPropsInvalidQualityLevelexplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRqualityLevel must be less than VkVideoEncodeCapabilitiesKHR::maxQualityLevels, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in pVideoProfile
VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR
VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-parameterYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRimageUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-requiredbitmaskYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRimageUsage must not be 0
VUID-VkPhysicalDeviceVideoFormatInfoKHR-pNext-pNextYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRpNext must be NULL or a pointer to a valid instance of VkVideoProfileListInfoKHR
VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR
VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-uniqueYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceVideoMaintenance1FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVideoMaintenance1FeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR
VUID-VkPhysicalDeviceVulkan11Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan11FeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
VUID-VkPhysicalDeviceVulkan11Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan11PropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
VUID-VkPhysicalDeviceVulkan12Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan12FeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
VUID-VkPhysicalDeviceVulkan12Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan12PropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
VUID-VkPhysicalDeviceVulkan13Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan13FeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
VUID-VkPhysicalDeviceVulkan13Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan13PropertiessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
VUID-VkPhysicalDeviceVulkanMemoryModelFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkanMemoryModelFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
VUID-VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
VUID-VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
VUID-VkPhysicalDeviceYcbcrDegammaFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceYcbcrDegammaFeaturesQCOMsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM
VUID-VkPhysicalDeviceYcbcrImageArraysFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceYcbcrImageArraysFeaturesEXTsType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
VUID-VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturessType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
VUID-VkPipelineBinaryCreateInfoKHR-device-09610YNegativePipelineBinary.CreateCacheControlexplicitVkPipelineBinaryCreateInfoKHRIf device was created with VkDevicePipelineBinaryInternalCacheControlKHR::disableInternalCache set to VK_TRUE, pPipelineCreateInfo must be NULL
VUID-VkPipelineBinaryCreateInfoKHR-pKeysAndDataInfo-09619YNegativePipelineBinary.Creation4explicitVkPipelineBinaryCreateInfoKHROne and only one of pKeysAndDataInfo, pipeline, or pPipelineCreateInfo must be non-NULL
VUID-VkPipelineBinaryCreateInfoKHR-pKeysAndDataInfo-parameterNNoneimplicitVkPipelineBinaryCreateInfoKHRIf pKeysAndDataInfo is not NULL, pKeysAndDataInfo must be a valid pointer to a valid VkPipelineBinaryKeysAndDataKHR structure
VUID-VkPipelineBinaryCreateInfoKHR-pNext-pNextYNoneimplicitVkPipelineBinaryCreateInfoKHRpNext must be NULL
VUID-VkPipelineBinaryCreateInfoKHR-pPipelineCreateInfo-09606YNegativePipelineBinary.Creation5explicitVkPipelineBinaryCreateInfoKHRIf pPipelineCreateInfo is not NULL, the pNext chain of pPipelineCreateInfo must not set VkPipelineBinaryInfoKHR::binaryCount to a value greater than 0
VUID-VkPipelineBinaryCreateInfoKHR-pPipelineCreateInfo-parameterYNoneimplicitVkPipelineBinaryCreateInfoKHRIf pPipelineCreateInfo is not NULL, pPipelineCreateInfo must be a valid pointer to a valid VkPipelineCreateInfoKHR structure
VUID-VkPipelineBinaryCreateInfoKHR-pipeline-09607YNegativePipelineBinary.Creation1explicitVkPipelineBinaryCreateInfoKHRIf pipeline is not VK_NULL_HANDLE, pipeline must have been created with VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
VUID-VkPipelineBinaryCreateInfoKHR-pipeline-09608YNegativePipelineBinary.Creation2explicitVkPipelineBinaryCreateInfoKHRIf pipeline is not VK_NULL_HANDLE, vkReleaseCapturedPipelineDataKHR must not have been called on pipeline prior to this command
VUID-VkPipelineBinaryCreateInfoKHR-pipeline-parameterYNoneimplicitVkPipelineBinaryCreateInfoKHRIf pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle
VUID-VkPipelineBinaryCreateInfoKHR-pipelineBinaryInternalCache-09609YNegativePipelineBinary.Creation3, NegativePipelineBinary.Creation4explicitVkPipelineBinaryCreateInfoKHRIf pipelineBinaryInternalCache is VK_FALSE pPipelineCreateInfo must be NULL
VUID-VkPipelineBinaryCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineBinaryCreateInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR
VUID-VkPipelineBinaryDataInfoKHR-pNext-pNextYNoneimplicitVkPipelineBinaryDataInfoKHRpNext must be NULL
VUID-VkPipelineBinaryDataInfoKHR-pipelineBinary-parameterYNoneimplicitVkPipelineBinaryDataInfoKHRpipelineBinary must be a valid VkPipelineBinaryKHR handle
VUID-VkPipelineBinaryDataInfoKHR-sType-sTypeYNoneimplicitVkPipelineBinaryDataInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR
VUID-VkPipelineBinaryDataKHR-dataSize-arraylengthYNoneimplicitVkPipelineBinaryDataKHRdataSize must be greater than 0
VUID-VkPipelineBinaryDataKHR-pData-parameterYNoneimplicitVkPipelineBinaryDataKHRpData must be a valid pointer to an array of dataSize bytes
VUID-VkPipelineBinaryHandlesInfoKHR-pNext-pNextNNoneimplicitVkPipelineBinaryHandlesInfoKHRpNext must be NULL
VUID-VkPipelineBinaryHandlesInfoKHR-pPipelineBinaries-parameterNNoneimplicitVkPipelineBinaryHandlesInfoKHRIf pipelineBinaryCount is not 0, and pPipelineBinaries is not NULL, pPipelineBinaries must be a valid pointer to an array of pipelineBinaryCount VkPipelineBinaryKHR handles
VUID-VkPipelineBinaryHandlesInfoKHR-sType-sTypeYNoneimplicitVkPipelineBinaryHandlesInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
VUID-VkPipelineBinaryInfoKHR-binaryCount-09603NNoneexplicitVkPipelineBinaryInfoKHRbinaryCount and the order of the elements in pPipelineBinaries must exactly match that returned by vkCreatePipelineBinariesKHR for the matching Vk*PipelineCreateInfo structure and its pNext chain, ignoring the presence of the VkPipelineBinaryInfoKHR structure, the presence of the VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag, and absence of any shader module identifiers or shader modules, for the same global pipeline key, from either: VkPipelineBinaryCreateInfoKHR::pPipelineCreateInfo, or VkPipelineBinaryCreateInfoKHR::pipeline
VUID-VkPipelineBinaryInfoKHR-pPipelineBinaries-parameterYNoneimplicitVkPipelineBinaryInfoKHRIf binaryCount is not 0, pPipelineBinaries must be a valid pointer to an array of binaryCount valid VkPipelineBinaryKHR handles
VUID-VkPipelineBinaryInfoKHR-sType-sTypeYNoneimplicitVkPipelineBinaryInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR
VUID-VkPipelineBinaryKeyKHR-pNext-pNextYNoneimplicitVkPipelineBinaryKeyKHRpNext must be NULL
VUID-VkPipelineBinaryKeyKHR-sType-sTypeYNoneimplicitVkPipelineBinaryKeyKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR
VUID-VkPipelineBinaryKeysAndDataKHR-binaryCount-arraylengthYNoneimplicitVkPipelineBinaryKeysAndDataKHRbinaryCount must be greater than 0
VUID-VkPipelineBinaryKeysAndDataKHR-pPipelineBinaryData-parameterYNoneimplicitVkPipelineBinaryKeysAndDataKHRpPipelineBinaryData must be a valid pointer to an array of binaryCount valid VkPipelineBinaryDataKHR structures
VUID-VkPipelineBinaryKeysAndDataKHR-pPipelineBinaryKeys-parameterYNoneimplicitVkPipelineBinaryKeysAndDataKHRpPipelineBinaryKeys must be a valid pointer to an array of binaryCount valid VkPipelineBinaryKeyKHR structures
VUID-VkPipelineCacheCreateInfo-flags-parameterYNoneimplicitVkPipelineCacheCreateInfoflags must be a valid combination of VkPipelineCacheCreateFlagBits values
VUID-VkPipelineCacheCreateInfo-initialDataSize-00768YNoneexplicitVkPipelineCacheCreateInfoIf 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-00769YNoneexplicitVkPipelineCacheCreateInfoIf initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetPipelineCacheData
VUID-VkPipelineCacheCreateInfo-pInitialData-parameterYNoneimplicitVkPipelineCacheCreateInfoIf initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes
VUID-VkPipelineCacheCreateInfo-pNext-pNextYNoneimplicitVkPipelineCacheCreateInfopNext must be NULL
VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892YNegativePipeline.PipelineCreationCacheControlexplicitVkPipelineCacheCreateInfoIf the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
VUID-VkPipelineCacheCreateInfo-sType-sTypeYNoneimplicitVkPipelineCacheCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967YNoneexplicitVkPipelineCacheHeaderVersionOneheaderSize must be 32
VUID-VkPipelineCacheHeaderVersionOne-headerSize-08990YNoneexplicitVkPipelineCacheHeaderVersionOneheaderSize must not exceed the size of the pipeline cache
VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968YNoneexplicitVkPipelineCacheHeaderVersionOneheaderVersion must be VK_PIPELINE_CACHE_HEADER_VERSION_ONE
VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameterNNoneimplicitVkPipelineCacheHeaderVersionOneheaderVersion must be a valid VkPipelineCacheHeaderVersion value
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426YNegativePipelineAdvancedBlend.PropertiesexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTIf the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameterYNoneimplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTblendOverlap must be a valid VkBlendOverlapEXT value
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425YNegativePipelineAdvancedBlend.PropertiesexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTIf the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424YNegativePipelineAdvancedBlend.PropertiesexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXTIf the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE
VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409YNegativePipelineAdvancedBlend.AllOperationsexplicitVkPipelineColorBlendAttachmentStateIf 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.BlendOpsexplicitVkPipelineColorBlendAttachmentStateIf 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.BlendOpsexplicitVkPipelineColorBlendAttachmentStateIf VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and alphaBlendOp is an advanced blend operation, then alphaBlendOp must be the same for all attachments
VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatealphaBlendOp must be a valid VkBlendOp value
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406YNegativePipelineAdvancedBlend.BlendOpsexplicitVkPipelineColorBlendAttachmentStateIf either of colorBlendOp or alphaBlendOp is an advanced blend operation, then colorBlendOp must equal alphaBlendOp
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410YNegativePipelineAdvancedBlend.AllOperations, NegativePipelineAdvancedBlend.MaxBlendAttachment, NegativePipelineAdvancedBlend.MaxBlendAttachmentDynamicRenderingexplicitVkPipelineColorBlendAttachmentStateIf 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-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecolorBlendOp must be a valid VkBlendOp value
VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecolorWriteMask must be a valid combination of VkColorComponentFlagBits values
VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454YNegativePortabilitySubset.ColorBlendAttachmentStateexplicitVkPipelineColorBlendAttachmentStateIf 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.ColorBlendAttachmentStateexplicitVkPipelineColorBlendAttachmentStateIf 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.ColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStateIf 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-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatedstAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609YNegativePipeline.ColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStateIf 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-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatedstColorBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610YNegativePipeline.ColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStateIf 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-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatesrcAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608YNegativePipeline.ColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStateIf 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-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatesrcColorBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendStateCreateInfo-flags-parameterYNoneimplicitVkPipelineColorBlendStateCreateInfoflags must be a valid combination of VkPipelineColorBlendStateCreateFlagBits values
VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606YNegativePipeline.ColorBlendUnsupportedLogicOpexplicitVkPipelineColorBlendStateCreateInfoIf the logicOp feature is not enabled, logicOpEnable must be VK_FALSE
VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607YNegativePipeline.ColorBlendInvalidLogicOpexplicitVkPipelineColorBlendStateCreateInfoIf logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605YNegativePipeline.DisabledIndependentBlendexplicitVkPipelineColorBlendStateCreateInfoIf the independentBlend feature is not enabled, all elements of pAttachments must be identical
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353YNegativeDynamicState.PipelineColorBlendStateCreateInfoArrayDynamic, NegativeDynamicState.PipelineColorBlendStateCreateInfoArrayNonDynamicexplicitVkPipelineColorBlendStateCreateInfoIf 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-parameterYNoneimplicitVkPipelineColorBlendStateCreateInfoIf 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-pNextYNoneimplicitVkPipelineColorBlendStateCreateInfoEach 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-06465YNegativeDynamicRendering.GraphicsPipelineCreateInfo, NegativePipeline.RasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineColorBlendStateCreateInfoIf 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-sTypeYNoneimplicitVkPipelineColorBlendStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
VUID-VkPipelineColorBlendStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineColorBlendStateCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-06655YNegativePipeline.ColorWriteCreateInfoEXTMaxAttachmentsexplicitVkPipelineColorWriteCreateInfoEXTattachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits
VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608YNegativeDynamicState.PipelineColorWriteCreateInfoEXTDynaimcState3, NegativePipeline.ColorWriteCreateInfoEXTexplicitVkPipelineColorWriteCreateInfoEXTIf 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.ColorWriteCreateInfoEXTexplicitVkPipelineColorWriteCreateInfoEXTIf the colorWriteEnable feature is not enabled, all elements of pColorWriteEnables must be VK_TRUE
VUID-VkPipelineColorWriteCreateInfoEXT-pColorWriteEnables-parameterYNoneimplicitVkPipelineColorWriteCreateInfoEXTIf attachmentCount is not 0, pColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-VkPipelineColorWriteCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineColorWriteCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmaskYNoneimplicitVkPipelineCompilerControlCreateInfoAMDcompilerControlFlags must be 0
VUID-VkPipelineCompilerControlCreateInfoAMD-sType-sTypeYNoneimplicitVkPipelineCompilerControlCreateInfoAMDsType must be VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameterYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNVcoverageModulationMode must be a valid VkCoverageModulationModeNV value
VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405YNegativePipeline.FramebufferMixedSamplesNVexplicitVkPipelineCoverageModulationStateCreateInfoNVIf 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-zerobitmaskYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNVflags must be 0
VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameterYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNVcoverageReductionMode must be a valid VkCoverageReductionModeNV value
VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmaskYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNVflags must be 0
VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404YNegativePipeline.FragmentCoverageToColorNVexplicitVkPipelineCoverageToColorStateCreateInfoNVIf 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-zerobitmaskYNoneimplicitVkPipelineCoverageToColorStateCreateInfoNVflags must be 0
VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageToColorStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-parameterYNoneimplicitVkPipelineCreateFlags2CreateInfoKHRflags must be a valid combination of VkPipelineCreateFlagBits2KHR values
VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-requiredbitmaskYNoneimplicitVkPipelineCreateFlags2CreateInfoKHRflags must not be 0
VUID-VkPipelineCreateFlags2CreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineCreateFlags2CreateInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR
VUID-VkPipelineCreateInfoKHR-pNext-09604YNegativePipelineBinary.GetPipelineKeyexplicitVkPipelineCreateInfoKHRpNext must be pointer to a valid instance of VkGraphicsPipelineCreateInfo, VkExecutionGraphPipelineCreateInfoAMDX, VkRayTracingPipelineCreateInfoKHR, or VkComputePipelineCreateInfo
VUID-VkPipelineCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineCreateInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR
VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameterYNoneimplicitVkPipelineCreationFeedbackCreateInfopPipelineCreationFeedback must be a valid pointer to a VkPipelineCreationFeedback structure
VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameterYNoneimplicitVkPipelineCreationFeedbackCreateInfoIf pipelineStageCreationFeedbackCount is not 0, pPipelineStageCreationFeedbacks must be a valid pointer to an array of pipelineStageCreationFeedbackCount VkPipelineCreationFeedback structures
VUID-VkPipelineCreationFeedbackCreateInfo-sType-sTypeYNoneimplicitVkPipelineCreationFeedbackCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO
VUID-VkPipelineDepthStencilStateCreateInfo-back-parameterYNoneimplicitVkPipelineDepthStencilStateCreateInfoback must be a valid VkStencilOpState structure
VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598YNegativePipeline.PipelineMissingFeaturesexplicitVkPipelineDepthStencilStateCreateInfoIf the depthBounds feature is not enabled, depthBoundsTestEnable must be VK_FALSE
VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameterYNoneimplicitVkPipelineDepthStencilStateCreateInfodepthCompareOp must be a valid VkCompareOp value
VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameterYNoneimplicitVkPipelineDepthStencilStateCreateInfoflags must be a valid combination of VkPipelineDepthStencilStateCreateFlagBits values
VUID-VkPipelineDepthStencilStateCreateInfo-front-parameterYNoneimplicitVkPipelineDepthStencilStateCreateInfofront must be a valid VkStencilOpState structure
VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineDepthStencilStateCreateInfopNext must be NULL
VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463YNegativePipeline.RasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineDepthStencilStateCreateInfoIf 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.RasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineDepthStencilStateCreateInfoIf 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-sTypeYNoneimplicitVkPipelineDepthStencilStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453YNegativePortabilitySubset.DepthStencilStateexplicitVkPipelineDepthStencilStateCreateInfoIf 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.DiscardRectangleexplicitVkPipelineDiscardRectangleStateCreateInfoEXTdiscardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameterYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXTdiscardRectangleMode must be a valid VkDiscardRectangleModeEXT value
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXTflags must be 0
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineDynamicStateCreateInfoflags must be 0
VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442YNegativeDynamicState.Duplicate, NegativeDynamicState.ExtendedDynamicState2Enabled, NegativeDynamicState.ExtendedDynamicState2LogicOpEnabled, NegativeDynamicState.ExtendedDynamicState2PatchControlPointsEnabled, NegativeDynamicState.ExtendedDynamicState3DuplicateStatePipeline, NegativeDynamicState.ExtendedDynamicStateDuplicate, NegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkPipelineDynamicStateCreateInfoEach element of pDynamicStates must be unique
VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameterYNegativeDynamicState.ExtensionNotEnabledimplicitVkPipelineDynamicStateCreateInfoIf dynamicStateCount is not 0, pDynamicStates must be a valid pointer to an array of dynamicStateCount valid VkDynamicState values
VUID-VkPipelineDynamicStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineDynamicStateCreateInfopNext must be NULL
VUID-VkPipelineDynamicStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineDynamicStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
VUID-VkPipelineExecutableInfoKHR-executableIndex-03275YNoneexplicitVkPipelineExecutableInfoKHRexecutableIndex must be less than the number of pipeline executables associated with pipeline as returned in the pExecutableCount parameter of vkGetPipelineExecutablePropertiesKHR
VUID-VkPipelineExecutableInfoKHR-pNext-pNextYNoneimplicitVkPipelineExecutableInfoKHRpNext must be NULL
VUID-VkPipelineExecutableInfoKHR-pipeline-parameterYNoneimplicitVkPipelineExecutableInfoKHRpipeline must be a valid VkPipeline handle
VUID-VkPipelineExecutableInfoKHR-sType-sTypeYNoneimplicitVkPipelineExecutableInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
VUID-VkPipelineExecutableInternalRepresentationKHR-pNext-pNextYNoneimplicitVkPipelineExecutableInternalRepresentationKHRpNext must be NULL
VUID-VkPipelineExecutableInternalRepresentationKHR-sType-sTypeYNoneimplicitVkPipelineExecutableInternalRepresentationKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
VUID-VkPipelineExecutablePropertiesKHR-pNext-pNextYNoneimplicitVkPipelineExecutablePropertiesKHRpNext must be NULL
VUID-VkPipelineExecutablePropertiesKHR-sType-sTypeYNoneimplicitVkPipelineExecutablePropertiesKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
VUID-VkPipelineExecutableStatisticKHR-pNext-pNextYNoneimplicitVkPipelineExecutableStatisticKHRpNext must be NULL
VUID-VkPipelineExecutableStatisticKHR-sType-sTypeYNoneimplicitVkPipelineExecutableStatisticKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineFragmentShadingRateEnumStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineFragmentShadingRateStateCreateInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
VUID-VkPipelineIndirectDeviceAddressInfoNV-pNext-pNextYNoneimplicitVkPipelineIndirectDeviceAddressInfoNVpNext must be NULL
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09080NNoneexplicitVkPipelineIndirectDeviceAddressInfoNVpipeline must have been created with flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09081NNoneexplicitVkPipelineIndirectDeviceAddressInfoNVpipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-parameterYNoneimplicitVkPipelineIndirectDeviceAddressInfoNVpipeline must be a valid VkPipeline handle
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-09079NNoneexplicitVkPipelineIndirectDeviceAddressInfoNVThe provided pipelineBindPoint must be of type VK_PIPELINE_BIND_POINT_COMPUTE
VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameterYNoneimplicitVkPipelineIndirectDeviceAddressInfoNVpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkPipelineIndirectDeviceAddressInfoNV-sType-sTypeYNoneimplicitVkPipelineIndirectDeviceAddressInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV
VUID-VkPipelineInfoKHR-pNext-pNextYNoneimplicitVkPipelineInfoKHRpNext must be NULL
VUID-VkPipelineInfoKHR-pipeline-parameterYNoneimplicitVkPipelineInfoKHRpipeline must be a valid VkPipeline handle
VUID-VkPipelineInfoKHR-sType-sTypeYNoneimplicitVkPipelineInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR
VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineInputAssemblyStateCreateInfoflags must be 0
VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineInputAssemblyStateCreateInfopNext must be NULL
VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineInputAssemblyStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429YNegativePipelineTopology.PrimitiveTopologyexplicitVkPipelineInputAssemblyStateCreateInfoIf 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.PrimitiveTopologyexplicitVkPipelineInputAssemblyStateCreateInfoIf the tessellationShader feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252YNegativePipelineTopology.PrimitiveTopology, NegativePipelineTopology.PrimitiveTopologyListRestartexplicitVkPipelineInputAssemblyStateCreateInfoIf 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.PrimitiveTopologyListRestartexplicitVkPipelineInputAssemblyStateCreateInfoIf the primitiveTopologyPatchListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameterYNoneimplicitVkPipelineInputAssemblyStateCreateInfotopology must be a valid VkPrimitiveTopology value
VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452YNegativePortabilitySubset.TriangleFansexplicitVkPipelineInputAssemblyStateCreateInfoIf 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-None-10005YNoneexplicitVkPipelineLayoutCreateInfoThe 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 or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceMaintenance7PropertiesKHR::maxDescriptorSetTotalBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-descriptorType-02214YNegativeDescriptors.InlineUniformBlockEXT, NegativeDescriptors.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfoThe 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.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfoThe 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.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfoThe 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.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfoThe 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.AccelerationStructureBindingsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoIf the maintenance7 feature is not enabled, the 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoIf the maintenance7 feature is not enabled, the 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.MaxPerStageDescriptorAccelerationStructuresexplicitVkPipelineLayoutCreateInfoThe 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.MaxPerStageDescriptorUpdateAfterBindAccelerationStructuresexplicitVkPipelineLayoutCreateInfoThe 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.MaxPerStageDescriptorAccelerationStructuresexplicitVkPipelineLayoutCreateInfoThe 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.MaxPerStageDescriptorUpdateAfterBindAccelerationStructuresexplicitVkPipelineLayoutCreateInfoThe 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.MaxInlineUniformTotalSizeexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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-parameterYNoneimplicitVkPipelineLayoutCreateInfoflags must be a valid combination of VkPipelineLayoutCreateFlagBits values
VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753YNegativeGraphicsLibrary.DSLs, NegativeGraphicsLibrary.GPLDSLsexplicitVkPipelineLayoutCreateInfoIf graphicsPipelineLibrary is not enabled, elements of pSetLayouts must be valid VkDescriptorSetLayout objects
VUID-VkPipelineLayoutCreateInfo-maintenance7-10003YNoneexplicitVkPipelineLayoutCreateInfoIf the maintenance7 feature is enabled, the 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 VkPhysicalDeviceMaintenance7PropertiesKHR::maxDescriptorSetTotalUniformBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-maintenance7-10004YNoneexplicitVkPipelineLayoutCreateInfoIf the maintenance7 feature is enabled, the 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 VkPhysicalDeviceMaintenance7PropertiesKHR::maxDescriptorSetTotalStorageBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-maintenance7-10007YNoneexplicitVkPipelineLayoutCreateInfoIf the maintenance7 feature is enabled, the 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 VkPhysicalDeviceMaintenance7PropertiesKHR::maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-maintenance7-10008YNoneexplicitVkPipelineLayoutCreateInfoIf the maintenance7 feature is enabled, the 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 VkPhysicalDeviceMaintenance7PropertiesKHR::maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566YNegativePipelineLayout.ExcessSubsampledPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.PipelineRangeexplicitVkPipelineLayoutCreateInfoAny two elements of pPushConstantRanges must not include the same stage in stageFlags
VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameterYNoneimplicitVkPipelineLayoutCreateInfoIf pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293YNegativePipelineLayout.MultiplePushDescriptorSetsexplicitVkPipelineLayoutCreateInfopSetLayouts 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoIf the maintenance7 feature is not enabled, the 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 VkPhysicalDeviceLimits::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoIf the maintenance7 feature is not enabled, the 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 VkPhysicalDeviceLimits::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041YNegativePipelineLayout.ExcessDescriptorsOverall, NegativePipelineLayout.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.ExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfoThe 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.SetLayoutFlagsexplicitVkPipelineLayoutCreateInfoAny 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.SetLayoutexplicitVkPipelineLayoutCreateInfoIf 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-10006YNoneexplicitVkPipelineLayoutCreateInfoThe total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceMaintenance7PropertiesKHR::maxDescriptorSetUpdateAfterBindTotalBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameterYNegativeDescriptors.DescriptorSetLayoutimplicitVkPipelineLayoutCreateInfoIf 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-sTypeYNoneimplicitVkPipelineLayoutCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286YNegativePipelineLayout.ExceedsSetLimitexplicitVkPipelineLayoutCreateInfosetLayoutCount must be less than or equal to VkPhysicalDeviceLimits::maxBoundDescriptorSets
VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381YNegativeRayTracingPipeline.LibraryFlagsexplicitVkPipelineLibraryCreateInfoKHREach element of pLibraries must have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-06855YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineLibraryCreateInfoKHRIf 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.DescriptorBufferLibraryexplicitVkPipelineLibraryCreateInfoKHRIf 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.BasicUsageimplicitVkPipelineLibraryCreateInfoKHRIf libraryCount is not 0, pLibraries must be a valid pointer to an array of libraryCount valid VkPipeline handles
VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07404YNegativeProtectedMemory.PipelineProtectedAccessGPLexplicitVkPipelineLibraryCreateInfoKHRIf 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.PipelineProtectedAccessGPLexplicitVkPipelineLibraryCreateInfoKHRIf 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.PipelineProtectedAccessGPLexplicitVkPipelineLibraryCreateInfoKHRIf 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.PipelineProtectedAccessGPLexplicitVkPipelineLibraryCreateInfoKHRIf 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-sTypeYNoneimplicitVkPipelineLibraryCreateInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785YNegativePipeline.PipelineMissingFeaturesexplicitVkPipelineMultisampleStateCreateInfoIf the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE
VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineMultisampleStateCreateInfoflags must be 0
VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786YNegativePipeline.SampleRateFeatureEnableexplicitVkPipelineMultisampleStateCreateInfominSampleShading must be in the range [0,1]
VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNextYNegativePipeline.SamplePNextDisabled, NegativePipeline.SamplePNextUnknownimplicitVkPipelineMultisampleStateCreateInfoEach 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-parameterYNoneimplicitVkPipelineMultisampleStateCreateInfoIf pSampleMask is not NULL, pSampleMask must be a valid pointer to an array of (rasterizationSamples/32) VkSampleMask values
VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415YNegativePipeline.FramebufferMixedSamplesNVexplicitVkPipelineMultisampleStateCreateInfoIf 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-parameterYNoneimplicitVkPipelineMultisampleStateCreateInforasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkPipelineMultisampleStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineMultisampleStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
VUID-VkPipelineMultisampleStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineMultisampleStateCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784YNegativePipeline.SampleRateFeatureDisableexplicitVkPipelineMultisampleStateCreateInfoIf the sampleRateShading feature is not enabled, sampleShadingEnable must be VK_FALSE
VUID-VkPipelinePropertiesIdentifierEXT-pNext-pNextNNoneimplicitVkPipelinePropertiesIdentifierEXTpNext must be NULL
VUID-VkPipelinePropertiesIdentifierEXT-sType-sTypeNNoneimplicitVkPipelinePropertiesIdentifierEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameterYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXTconservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769YNegativePipeline.RasterizationConservativeStateCreateInfoexplicitVkPipelineRasterizationConservativeStateCreateInfoEXTextraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXTflags must be 0
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationDepthClipStateCreateInfoEXTflags must be 0
VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationDepthClipStateCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-lineRasterizationMode-02768YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoKHRIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR, then the rectangularLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-lineRasterizationMode-02769YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoKHRIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR, then the bresenhamLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-lineRasterizationMode-02770YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoKHRIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR, then the smoothLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-lineRasterizationMode-parameterYNoneimplicitVkPipelineRasterizationLineStateCreateInfoKHRlineRasterizationMode must be a valid VkLineRasterizationModeKHR value
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineRasterizationLineStateCreateInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-stippledLineEnable-02771YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoKHRIf stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR, then the stippledRectangularLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-stippledLineEnable-02772YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoKHRIf stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR, then the stippledBresenhamLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-stippledLineEnable-02773YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoKHRIf stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR, then the stippledSmoothLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoKHR-stippledLineEnable-02774YNegativePipeline.LineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoKHRIf stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883YNegativeVertexInput.UsingProvokingVertexModeLastVertexExtDisabledexplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXTIf provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameterYNoneimplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXTprovokingVertexMode must be a valid VkProvokingVertexModeEXT value
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameterYNoneimplicitVkPipelineRasterizationStateCreateInfocullMode must be a valid combination of VkCullModeFlagBits values
VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782YNegativePipeline.PipelineMissingFeaturesexplicitVkPipelineRasterizationStateCreateInfoIf the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE
VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmaskYNegativePipeline.RasterizationStateFlagimplicitVkPipelineRasterizationStateCreateInfoflags must be 0
VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameterYNoneimplicitVkPipelineRasterizationStateCreateInfofrontFace must be a valid VkFrontFace value
VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineRasterizationStateCreateInfoEach 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, VkPipelineRasterizationLineStateCreateInfoKHR, VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT
VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458YNegativePortabilitySubset.RasterizationStateexplicitVkPipelineRasterizationStateCreateInfoIf 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.PolygonModeexplicitVkPipelineRasterizationStateCreateInfoIf 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.PolygonModeexplicitVkPipelineRasterizationStateCreateInfoIf the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameterYNegativePipelineTopology.PolygonModeimplicitVkPipelineRasterizationStateCreateInfopolygonMode must be a valid VkPolygonMode value
VUID-VkPipelineRasterizationStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineRasterizationStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
VUID-VkPipelineRasterizationStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineRasterizationStateCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameterYNoneimplicitVkPipelineRasterizationStateRasterizationOrderAMDrasterizationOrder must be a valid VkRasterizationOrderAMD value
VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sTypeYNoneimplicitVkPipelineRasterizationStateRasterizationOrderAMDsType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationStateStreamCreateInfoEXTflags must be 0
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324YNegativeTransformFeedback.UsingRasterizationStateStreamExtDisabledexplicitVkPipelineRasterizationStateStreamCreateInfoEXTVkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325YNegativeTransformFeedback.PipelineRasterizationStateStreamCreateInfoEXTexplicitVkPipelineRasterizationStateStreamCreateInfoEXTrasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326YNegativeTransformFeedback.PipelineRasterizationStateStreamCreateInfoEXTexplicitVkPipelineRasterizationStateStreamCreateInfoEXTrasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationStateStreamCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
VUID-VkPipelineRenderingCreateInfo-colorAttachmentCount-09533YNegativeDynamicRendering.PipelineRenderingCreateInfoFormat, NegativeDynamicRenderingLocalRead.ColorAttachmentCountInPipelineRenderingCreateInfoexplicitVkPipelineRenderingCreateInfocolorAttachmentCount must be less than or equal to maxColorAttachments
VUID-VkPipelineRenderingCreateInfo-sType-sTypeYNoneimplicitVkPipelineRenderingCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO
VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineRepresentativeFragmentTestStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
VUID-VkPipelineRobustnessCreateInfoEXT-images-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXTimages must be a valid VkPipelineRobustnessImageBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06926YNegativeRobustness.PipelineRobustnessDisabled, NegativeRobustness.PipelineRobustnessDisabledShaderStage, NegativeRobustness.PipelineRobustnessDisabledShaderStageWithIdentifierexplicitVkPipelineRobustnessCreateInfoEXTIf the pipelineRobustness feature is not enabled, storageBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06927YNegativeRobustness.PipelineRobustnessDisabledexplicitVkPipelineRobustnessCreateInfoEXTIf the pipelineRobustness feature is not enabled, uniformBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06928YNegativeRobustness.PipelineRobustnessDisabledexplicitVkPipelineRobustnessCreateInfoEXTIf the pipelineRobustness feature is not enabled, vertexInputs must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06929YNegativeRobustness.PipelineRobustnessDisabledexplicitVkPipelineRobustnessCreateInfoEXTIf the pipelineRobustness feature is not enabled, images must be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06931NNoneexplicitVkPipelineRobustnessCreateInfoEXTIf the robustBufferAccess2 feature is not supported, storageBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06932NNoneexplicitVkPipelineRobustnessCreateInfoEXTIf the robustBufferAccess2 feature is not supported, uniformBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06933NNoneexplicitVkPipelineRobustnessCreateInfoEXTIf the robustBufferAccess2 feature is not supported, vertexInputs must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess-06930YNegativeRobustness.PipelineRobustnessRobustImageAccessNotExposedexplicitVkPipelineRobustnessCreateInfoEXTIf the robustImageAccess feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess2-06934NNoneexplicitVkPipelineRobustnessCreateInfoEXTIf the robustImageAccess2 feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRobustnessCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-storageBuffers-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXTstorageBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-uniformBuffers-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXTuniformBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-vertexInputs-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXTvertexInputs must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineSampleLocationsStateCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameterYNoneimplicitVkPipelineSampleLocationsStateCreateInfoEXTsampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkPipelineShaderStageCreateInfo-clustercullingShader-07813NNoneexplicitVkPipelineShaderStageCreateInfoIf the clustercullingShader feature is not enabled, stage must not be VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
VUID-VkPipelineShaderStageCreateInfo-flags-02758YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfoIf 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.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfoIf 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.SubgroupSizeControlFeaturesWithIdentifierGraphicsexplicitVkPipelineShaderStageCreateInfoIf 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.SubgroupSizeControlFeaturesNotEnabledexplicitVkPipelineShaderStageCreateInfoIf flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the computeFullSubgroups feature must be enabled
VUID-VkPipelineShaderStageCreateInfo-flags-08988YNegativeSubgroup.SubgroupSizeControlStageexplicitVkPipelineShaderStageCreateInfoIf 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-parameterYNoneimplicitVkPipelineShaderStageCreateInfoflags must be a valid combination of VkPipelineShaderStageCreateFlagBits values
VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708NNoneexplicitVkPipelineShaderStageCreateInfoIf 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-00710NNoneexplicitVkPipelineShaderStageCreateInfoIf the identified entry point includes variables in its interface that are declared with the ClipDistance BuiltIn decoration and variables in its interface that are declared with the CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances
VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709NNoneexplicitVkPipelineShaderStageCreateInfoIf 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.MaxSampleMaskWordsInput, NegativeShaderLimits.MaxSampleMaskWordsOutputexplicitVkPipelineShaderStageCreateInfoIf 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.DimXMultipleSubgroupSizeexplicitVkPipelineShaderStageCreateInfoIf 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-parameterYNoneimplicitVkPipelineShaderStageCreateInfoIf module is not VK_NULL_HANDLE, module must be a valid VkShaderModule handle
VUID-VkPipelineShaderStageCreateInfo-pName-00707YNegativePipeline.MissingEntrypointexplicitVkPipelineShaderStageCreateInfopName must be the name of an OpEntryPoint in module with an execution model that matches stage
VUID-VkPipelineShaderStageCreateInfo-pName-parameterYNegativePipeline.NullStagepName, NegativePipeline.NullStagepNameCompute, NegativePipeline.NullStagepNameMaintenance5, NegativePipeline.NullStagepNameMaintenance5ComputeimplicitVkPipelineShaderStageCreateInfopName must be a null-terminated UTF-8 string
VUID-VkPipelineShaderStageCreateInfo-pNext-02754YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfoIf 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.SubgroupSizeControlFeatureexplicitVkPipelineShaderStageCreateInfoIf 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.MeshLocalWorkgroupSizeexplicitVkPipelineShaderStageCreateInfoIf 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.ComputeLocalWorkgroupSizeexplicitVkPipelineShaderStageCreateInfoIf 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-pNextYNoneimplicitVkPipelineShaderStageCreateInfoEach 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.SameScope, NegativeShaderCooperativeMatrix.SpecInfo, NegativeShaderSpirv.SpecializationApplied, PositiveShaderCooperativeMatrix.CooperativeMatrixNVexplicitVkPipelineShaderStageCreateInfoIf 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-parameterYNoneimplicitVkPipelineShaderStageCreateInfoIf pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure
VUID-VkPipelineShaderStageCreateInfo-sType-sTypeYNoneimplicitVkPipelineShaderStageCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
VUID-VkPipelineShaderStageCreateInfo-sType-uniqueYNoneimplicitVkPipelineShaderStageCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineShaderStageCreateInfo-stage-00704YNegativeGeometryTessellation.GeometryShaderEnabledexplicitVkPipelineShaderStageCreateInfoIf the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT
VUID-VkPipelineShaderStageCreateInfo-stage-00705YNegativeGeometryTessellation.TessellationShaderEnabledexplicitVkPipelineShaderStageCreateInfoIf 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-00706NNoneexplicitVkPipelineShaderStageCreateInfostage must not be VK_SHADER_STAGE_ALL_GRAPHICS, or VK_SHADER_STAGE_ALL
VUID-VkPipelineShaderStageCreateInfo-stage-00713NNoneexplicitVkPipelineShaderStageCreateInfoIf 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.MaxGeometryInstanceVertexCountexplicitVkPipelineShaderStageCreateInfoIf 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.MaxGeometryInstanceVertexCountexplicitVkPipelineShaderStageCreateInfoIf 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.ExtensionDisabledNVexplicitVkPipelineShaderStageCreateInfoIf the meshShaders feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkPipelineShaderStageCreateInfo-stage-02092YNegativeMesh.ExtensionDisabled, NegativeMesh.ExtensionDisabledNVexplicitVkPipelineShaderStageCreateInfoIf the taskShaders feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT
VUID-VkPipelineShaderStageCreateInfo-stage-02596NNoneexplicitVkPipelineShaderStageCreateInfoIf 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-02597NNoneexplicitVkPipelineShaderStageCreateInfoIf 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-06685NNoneexplicitVkPipelineShaderStageCreateInfoIf 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-06686NNoneexplicitVkPipelineShaderStageCreateInfoIf 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.ShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfoIf a shader module identifier is specified for this stage, the pNext chain must not include a VkShaderModuleCreateInfo structure
VUID-VkPipelineShaderStageCreateInfo-stage-06845YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfoIf 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 , or the pNext chain of the parent Vk*CreateInfo structure must set VkPipelineBinaryInfoKHR::binaryCount to a value greater than 0,
VUID-VkPipelineShaderStageCreateInfo-stage-06848YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfoIf a shader module identifier is specified for this stage, module must be VK_NULL_HANDLE
VUID-VkPipelineShaderStageCreateInfo-stage-08771YNegativeGraphicsLibrary.ShaderModuleIdentifierFeaturesexplicitVkPipelineShaderStageCreateInfoIf a shader module identifier is not specified for this stage, module must be a valid VkShaderModule , or the pNext chain of the parent Vk*CreateInfo structure must set VkPipelineBinaryInfoKHR::binaryCount to a value greater than 0, if none of the following features are enabled: graphicsPipelineLibrary maintenance5
VUID-VkPipelineShaderStageCreateInfo-stage-parameterYNoneimplicitVkPipelineShaderStageCreateInfostage must be a valid VkShaderStageFlagBits value
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852YNegativeGraphicsLibrary.ShaderModuleIdentifierexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTidentifierSize must be less-or-equal to VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameterYNoneimplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTIf identifierSize is not 0, pIdentifier must be a valid pointer to an array of identifierSize uint8_t values
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06850YNegativeGraphicsLibrary.ShaderModuleIdentifierFeaturesexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTIf 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.SubgroupSizeControlFeaturesWithIdentifierGraphicsexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTIf 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-sTypeYNoneimplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
VUID-VkPipelineShaderStageNodeCreateInfoAMDX-pName-parameterYNoneimplicitVkPipelineShaderStageNodeCreateInfoAMDXIf pName is not NULL, pName must be a null-terminated UTF-8 string
VUID-VkPipelineShaderStageNodeCreateInfoAMDX-sType-sTypeYNoneimplicitVkPipelineShaderStageNodeCreateInfoAMDXsType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInforequiredSubgroupSize must be a power-of-two integer
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInforequiredSubgroupSize must be greater or equal to minSubgroupSize
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762YNegativeSubgroup.PipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInforequiredSubgroupSize must be less than or equal to maxSubgroupSize
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-sType-sTypeYNoneimplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO
VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameterYNoneimplicitVkPipelineTessellationDomainOriginStateCreateInfodomainOrigin must be a valid VkTessellationDomainOrigin value
VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineTessellationDomainOriginStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineTessellationStateCreateInfoflags must be 0
VUID-VkPipelineTessellationStateCreateInfo-pNext-pNextYVkLayerTest.UsePnextOnlyStructWithoutExtensionEnabledimplicitVkPipelineTessellationStateCreateInfopNext must be NULL or a pointer to a valid instance of VkPipelineTessellationDomainOriginStateCreateInfo
VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214YNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.TessellationexplicitVkPipelineTessellationStateCreateInfopatchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-VkPipelineTessellationStateCreateInfo-sType-sTypeYNegativeGeometryTessellation.Tessellation, NegativeGraphicsLibrary.TessellationimplicitVkPipelineTessellationStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
VUID-VkPipelineTessellationStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineTessellationStateCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-pVertexBindingDivisors-parameterYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoKHRpVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionKHR structures
VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoKHRsType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-vertexBindingDivisorCount-arraylengthYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoKHRvertexBindingDivisorCount must be greater than 0
VUID-VkPipelineVertexInputStateCreateInfo-binding-00615YNegativeVertexInput.AttributeDescriptions, NegativeVertexInput.InputAttributeMaxVertexInputAttributes, NegativeVertexInput.InputAttributeMaxVertexInputBindingsexplicitVkPipelineVertexInputStateCreateInfoFor every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding
VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineVertexInputStateCreateInfoflags must be 0
VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineVertexInputStateCreateInfopNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoKHR
VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617YNegativeVertexInput.AttributeDescriptionsexplicitVkPipelineVertexInputStateCreateInfoAll elements of pVertexAttributeDescriptions must describe distinct attribute locations
VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameterYNoneimplicitVkPipelineVertexInputStateCreateInfoIf vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures
VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616YNegativeVertexInput.AttributeBindingConflict, NegativeVertexInput.BindingDescriptionsexplicitVkPipelineVertexInputStateCreateInfoAll elements of pVertexBindingDescriptions must describe distinct binding numbers
VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameterYNoneimplicitVkPipelineVertexInputStateCreateInfoIf vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription structures
VUID-VkPipelineVertexInputStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineVertexInputStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
VUID-VkPipelineVertexInputStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineVertexInputStateCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614YNegativeVertexInput.AttributeDescriptionsexplicitVkPipelineVertexInputStateCreateInfovertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613YNegativeVertexInput.BindingDescriptionsexplicitVkPipelineVertexInputStateCreateInfovertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234NNoneexplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVThe array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameterYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVIf customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072YNoneexplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVIf sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameterYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNVsampleOrderType must be a valid VkCoarseSampleOrderTypeNV value
VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-depthClampMode-parameterYNoneimplicitVkPipelineViewportDepthClampControlCreateInfoEXTdepthClampMode must be a valid VkDepthClampModeEXT value
VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-09646YNegativePipeline.DepthClampControlUserDefinedexplicitVkPipelineViewportDepthClampControlCreateInfoEXTIf depthClampMode is set to VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, and the pipeline is not created with VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT, then pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure.
VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-parameterNNoneimplicitVkPipelineViewportDepthClampControlCreateInfoEXTIf pDepthClampRange is not NULL, pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure
VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineViewportDepthClampControlCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT
VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470YNegativePipeline.DepthClipControlFeatureDisableexplicitVkPipelineViewportDepthClipControlCreateInfoEXTIf depthClipControl is not enabled, negativeOneToOne must be VK_FALSE
VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineViewportDepthClipControlCreateInfoEXTsType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027YNegativeCommand.ExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNVIf the multiViewport feature is not enabled, exclusiveScissorCount must be 0 or 1
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028YNegativeCommand.ExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNVexclusiveScissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029YNegativeCommand.ExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNVexclusiveScissorCount must be 0 or greater than or equal to the viewportCount member of VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportExclusiveScissorStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportShadingRateImageStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056YNegativeFragmentShadingRate.ShadingRateImageNVViewportCountexplicitVkPipelineViewportShadingRateImageStateCreateInfoNVIf shadingRateImageEnable is VK_TRUE, viewportCount must be greater or equal to the viewportCount member of VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkPipelineViewportShadingRateImageStateCreateInfoNVIf the multiViewport feature is not enabled, viewportCount must be 0 or 1
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055YNoneexplicitVkPipelineViewportShadingRateImageStateCreateInfoNVviewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineViewportStateCreateInfoflags must be 0
VUID-VkPipelineViewportStateCreateInfo-offset-02822YNegativePipeline.ViewportStateScissorOverflowexplicitVkPipelineViewportStateCreateInfoEvaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-VkPipelineViewportStateCreateInfo-offset-02823YNegativePipeline.ViewportStateScissorOverflowexplicitVkPipelineViewportStateCreateInfoEvaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-VkPipelineViewportStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineViewportStateCreateInfoEach 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, VkPipelineViewportDepthClampControlCreateInfoEXT, VkPipelineViewportDepthClipControlCreateInfoEXT, VkPipelineViewportExclusiveScissorStateCreateInfoNV, VkPipelineViewportShadingRateImageStateCreateInfoNV, VkPipelineViewportSwizzleStateCreateInfoNV, or VkPipelineViewportWScalingStateCreateInfoNV
VUID-VkPipelineViewportStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineViewportStateCreateInfosType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
VUID-VkPipelineViewportStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineViewportStateCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217YNegativeDynamicState.Viewport, NegativeFragmentShadingRate.ShadingRateImageNVexplicitVkPipelineViewportStateCreateInfoIf the multiViewport feature is not enabled, scissorCount must not be greater than 1
VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219YNegativeDynamicState.MultiViewportexplicitVkPipelineViewportStateCreateInfoscissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134YNegativeDynamicState.MultiViewport, NegativeDynamicState.Viewport, NegativeDynamicState.ViewportCountWithExtendedDynamicState, NegativePipeline.IncompatibleScissorCountAndViewportCountexplicitVkPipelineViewportStateCreateInfoIf scissorCount and viewportCount are both not dynamic, then scissorCount and viewportCount must be identical
VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136YNegativeDynamicState.MultiViewport, NegativeDynamicState.ScissorWithCount, NegativeDynamicState.ViewportexplicitVkPipelineViewportStateCreateInfoIf 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.ShadingRateImageNVexplicitVkPipelineViewportStateCreateInfoIf the multiViewport feature is not enabled, viewportCount must not be greater than 1
VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218YNegativeDynamicState.MultiViewportexplicitVkPipelineViewportStateCreateInfoviewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135YNegativeDynamicState.MultiViewport, NegativeDynamicState.Viewport, NegativeDynamicState.ViewportCountWithExtendedDynamicStateexplicitVkPipelineViewportStateCreateInfoIf 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.ViewportWScalingNVexplicitVkPipelineViewportStateCreateInfoIf 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.ViewportStateScissorNegativeexplicitVkPipelineViewportStateCreateInfoThe x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmaskYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNVflags must be 0
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameterYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNVpViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215YNegativePipeline.ViewportSwizzleNVexplicitVkPipelineViewportSwizzleStateCreateInfoNVviewportCount must be greater than or equal to the viewportCount set in VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylengthYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNVviewportCount must be greater than 0
VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportWScalingStateCreateInfoNVsType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylengthYNoneimplicitVkPipelineViewportWScalingStateCreateInfoNVviewportCount must be greater than 0
VUID-VkPresentFrameTokenGGP-frameToken-02680NNoneexplicitVkPresentFrameTokenGGPframeToken must be a valid GgpFrameToken
VUID-VkPresentFrameTokenGGP-sType-sTypeYNoneimplicitVkPresentFrameTokenGGPsType must be VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
VUID-VkPresentIdKHR-pPresentIds-parameterYNoneimplicitVkPresentIdKHRIf pPresentIds is not NULL, pPresentIds must be a valid pointer to an array of swapchainCount uint64_t values
VUID-VkPresentIdKHR-presentIds-04999YNegativeWsi.PresentIdWaitexplicitVkPresentIdKHREach presentIds entry must be greater than any previous presentIds entry passed for the associated pSwapchains entry
VUID-VkPresentIdKHR-sType-sTypeYNoneimplicitVkPresentIdKHRsType must be VK_STRUCTURE_TYPE_PRESENT_ID_KHR
VUID-VkPresentIdKHR-swapchainCount-04998YNegativeWsi.PresentIdWaitexplicitVkPresentIdKHRswapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where this VkPresentIdKHR is in the pNext chain of the VkPresentInfoKHR structure
VUID-VkPresentIdKHR-swapchainCount-arraylengthYNegativeWsi.PresentIdWaitimplicitVkPresentIdKHRswapchainCount must be greater than 0
VUID-VkPresentInfoKHR-commonparentYNoneimplicitVkPresentInfoKHRBoth 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.NumberOfSubmissionsexplicitVkPresentInfoKHREach 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-parameterYNoneimplicitVkPresentInfoKHRpImageIndices must be a valid pointer to an array of swapchainCount uint32_t values
VUID-VkPresentInfoKHR-pNext-06235YNegativeWsi.PresentIdWaitFeaturesexplicitVkPresentInfoKHRIf 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-pNextYNoneimplicitVkPresentInfoKHREach 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-parameterYNoneimplicitVkPresentInfoKHRIf pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values
VUID-VkPresentInfoKHR-pSwapchain-09231YNegativeWsi.PresentDuplicatedSwapchainexplicitVkPresentInfoKHRElements of pSwapchain must be unique
VUID-VkPresentInfoKHR-pSwapchains-09199NNoneexplicitVkPresentInfoKHRIf 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-parameterYNoneimplicitVkPresentInfoKHRpSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles
VUID-VkPresentInfoKHR-pWaitSemaphores-parameterYNoneimplicitVkPresentInfoKHRIf waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkPresentInfoKHR-sType-sTypeYNoneimplicitVkPresentInfoKHRsType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR
VUID-VkPresentInfoKHR-sType-uniqueYNoneimplicitVkPresentInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkPresentInfoKHR-swapchainCount-arraylengthYNegativeWsi.PresentInfoParametersimplicitVkPresentInfoKHRswapchainCount must be greater than 0
VUID-VkPresentInfoKHR-swapchainMaintenance1-10158NNoneexplicitVkPresentInfoKHRIf the swapchainMaintenance1 feature is not enabled, then the pNext chain must not include a VkSwapchainPresentFenceInfoEXT structure
VUID-VkPresentRegionKHR-pRectangles-parameterYNoneimplicitVkPresentRegionKHRIf 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-parameterYNoneimplicitVkPresentRegionsKHRIf pRegions is not NULL, pRegions must be a valid pointer to an array of swapchainCount valid VkPresentRegionKHR structures
VUID-VkPresentRegionsKHR-sType-sTypeYNoneimplicitVkPresentRegionsKHRsType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR
VUID-VkPresentRegionsKHR-swapchainCount-01260YNegativeWsi.PresentRegionsKHRexplicitVkPresentRegionsKHRswapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentRegionsKHR structure
VUID-VkPresentRegionsKHR-swapchainCount-arraylengthYNegativeWsi.PresentRegionsKHRimplicitVkPresentRegionsKHRswapchainCount must be greater than 0
VUID-VkPresentTimesInfoGOOGLE-pTimes-parameterYNoneimplicitVkPresentTimesInfoGOOGLEIf pTimes is not NULL, pTimes must be a valid pointer to an array of swapchainCount VkPresentTimeGOOGLE structures
VUID-VkPresentTimesInfoGOOGLE-sType-sTypeYNoneimplicitVkPresentTimesInfoGOOGLEsType must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247YNoneexplicitVkPresentTimesInfoGOOGLEswapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentTimesInfoGOOGLE structure
VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylengthYNoneimplicitVkPresentTimesInfoGOOGLEswapchainCount must be greater than 0
VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmaskYNoneimplicitVkPrivateDataSlotCreateInfoflags must be 0
VUID-VkPrivateDataSlotCreateInfo-pNext-pNextYNoneimplicitVkPrivateDataSlotCreateInfopNext must be NULL
VUID-VkPrivateDataSlotCreateInfo-sType-sTypeYNoneimplicitVkPrivateDataSlotCreateInfosType must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO
VUID-VkProtectedSubmitInfo-sType-sTypeYNoneimplicitVkProtectedSubmitInfosType must be VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
VUID-VkPushConstantRange-offset-00294YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangeoffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-VkPushConstantRange-offset-00295YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangeoffset must be a multiple of 4
VUID-VkPushConstantRange-size-00296YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangesize must be greater than 0
VUID-VkPushConstantRange-size-00297YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangesize must be a multiple of 4
VUID-VkPushConstantRange-size-00298YNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeexplicitVkPushConstantRangesize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset
VUID-VkPushConstantRange-stageFlags-parameterYNoneimplicitVkPushConstantRangestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkPushConstantRange-stageFlags-requiredbitmaskYNegativeCommand.PushConstants, NegativeShaderPushConstants.PipelineRangeimplicitVkPushConstantRangestageFlags must not be 0
VUID-VkPushConstantsInfoKHR-None-09495YNegativeCommand.PushConstant2PipelineLayoutCreateInfoexplicitVkPushConstantsInfoKHRIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkPushConstantsInfoKHR-layout-09496YNoneexplicitVkPushConstantsInfoKHRIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkPushConstantsInfoKHR-layout-parameterYNoneimplicitVkPushConstantsInfoKHRIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkPushConstantsInfoKHR-offset-00368YNoneexplicitVkPushConstantsInfoKHRoffset must be a multiple of 4
VUID-VkPushConstantsInfoKHR-offset-00370YNoneexplicitVkPushConstantsInfoKHRoffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-VkPushConstantsInfoKHR-offset-01795YNoneexplicitVkPushConstantsInfoKHRFor 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-01796YNoneexplicitVkPushConstantsInfoKHRFor 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-pNextYNoneimplicitVkPushConstantsInfoKHRpNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkPushConstantsInfoKHR-pValues-parameterYNoneimplicitVkPushConstantsInfoKHRpValues must be a valid pointer to an array of size bytes
VUID-VkPushConstantsInfoKHR-sType-sTypeYNoneimplicitVkPushConstantsInfoKHRsType must be VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR
VUID-VkPushConstantsInfoKHR-sType-uniqueYNoneimplicitVkPushConstantsInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkPushConstantsInfoKHR-size-00369YNoneexplicitVkPushConstantsInfoKHRsize must be a multiple of 4
VUID-VkPushConstantsInfoKHR-size-00371YNoneexplicitVkPushConstantsInfoKHRsize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset
VUID-VkPushConstantsInfoKHR-size-arraylengthYNoneimplicitVkPushConstantsInfoKHRsize must be greater than 0
VUID-VkPushConstantsInfoKHR-stageFlags-parameterYNoneimplicitVkPushConstantsInfoKHRstageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkPushConstantsInfoKHR-stageFlags-requiredbitmaskYNoneimplicitVkPushConstantsInfoKHRstageFlags must not be 0
VUID-VkPushDescriptorSetInfoKHR-None-09495YNoneexplicitVkPushDescriptorSetInfoKHRIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetInfoKHR-descriptorWriteCount-arraylengthYNoneimplicitVkPushDescriptorSetInfoKHRdescriptorWriteCount must be greater than 0
VUID-VkPushDescriptorSetInfoKHR-layout-09496YNoneexplicitVkPushDescriptorSetInfoKHRIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkPushDescriptorSetInfoKHR-layout-parameterYNoneimplicitVkPushDescriptorSetInfoKHRIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetInfoKHR-pDescriptorWrites-06494YNoneexplicitVkPushDescriptorSetInfoKHRFor 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-parameterYNoneimplicitVkPushDescriptorSetInfoKHRpDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures
VUID-VkPushDescriptorSetInfoKHR-pNext-pNextYNoneimplicitVkPushDescriptorSetInfoKHRpNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkPushDescriptorSetInfoKHR-sType-sTypeYNoneimplicitVkPushDescriptorSetInfoKHRsType must be VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
VUID-VkPushDescriptorSetInfoKHR-sType-uniqueYNoneimplicitVkPushDescriptorSetInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkPushDescriptorSetInfoKHR-set-00364YNoneexplicitVkPushDescriptorSetInfoKHRset must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkPushDescriptorSetInfoKHR-set-00365YNoneexplicitVkPushDescriptorSetInfoKHRset 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-parameterYNoneimplicitVkPushDescriptorSetInfoKHRstageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkPushDescriptorSetInfoKHR-stageFlags-requiredbitmaskYNoneimplicitVkPushDescriptorSetInfoKHRstageFlags must not be 0
VUID-VkPushDescriptorSetWithTemplateInfoKHR-None-09495YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetWithTemplateInfoKHR-commandBuffer-00366YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRThe pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-VkPushDescriptorSetWithTemplateInfoKHR-commonparentYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRBoth 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-07994YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRdescriptorUpdateTemplate must have been created with a templateType of VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
VUID-VkPushDescriptorSetWithTemplateInfoKHR-descriptorUpdateTemplate-parameterYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRdescriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-07993YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRlayout must be compatible with the layout used to create descriptorUpdateTemplate
VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-09496YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-parameterYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetWithTemplateInfoKHR-pData-01686YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRpData 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-parameterYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRpData must be a pointer value
VUID-VkPushDescriptorSetWithTemplateInfoKHR-pNext-pNextYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRpNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkPushDescriptorSetWithTemplateInfoKHR-sType-sTypeYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRsType must be VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR
VUID-VkPushDescriptorSetWithTemplateInfoKHR-sType-uniqueYNoneimplicitVkPushDescriptorSetWithTemplateInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07304YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRset must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07305YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRset 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-07995YNoneexplicitVkPushDescriptorSetWithTemplateInfoKHRset must be the same value used to create descriptorUpdateTemplate
VUID-VkQueryLowLatencySupportNV-pQueriedLowLatencyData-parameterYNoneimplicitVkQueryLowLatencySupportNVpQueriedLowLatencyData must be a pointer value
VUID-VkQueryLowLatencySupportNV-sType-sTypeYNoneimplicitVkQueryLowLatencySupportNVsType must be VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV
VUID-VkQueryPoolCreateInfo-flags-zerobitmaskYNoneimplicitVkQueryPoolCreateInfoflags must be 0
VUID-VkQueryPoolCreateInfo-meshShaderQueries-07068YNegativeQuery.MeshShaderQueriesexplicitVkQueryPoolCreateInfoIf the meshShaderQueries feature is not enabled, queryType must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT
VUID-VkQueryPoolCreateInfo-meshShaderQueries-07069YNegativeQuery.MeshShaderQueriesexplicitVkQueryPoolCreateInfoIf 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-pNextYNoneimplicitVkQueryPoolCreateInfoEach 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, VkVideoDecodeAV1ProfileInfoKHR, VkVideoDecodeH264ProfileInfoKHR, VkVideoDecodeH265ProfileInfoKHR, VkVideoDecodeUsageInfoKHR, VkVideoEncodeH264ProfileInfoKHR, VkVideoEncodeH265ProfileInfoKHR, VkVideoEncodeUsageInfoKHR, or VkVideoProfileInfoKHR
VUID-VkQueryPoolCreateInfo-queryCount-02763YNegativeQuery.PoolCreateexplicitVkQueryPoolCreateInfoqueryCount must be greater than 0
VUID-VkQueryPoolCreateInfo-queryType-00791YNegativeQuery.PoolCreateexplicitVkQueryPoolCreateInfoIf the pipelineStatisticsQuery feature is not enabled, queryType must not be VK_QUERY_TYPE_PIPELINE_STATISTICS
VUID-VkQueryPoolCreateInfo-queryType-00792YNoneexplicitVkQueryPoolCreateInfoIf queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values
VUID-VkQueryPoolCreateInfo-queryType-03222YNegativeQuery.PerformanceCreationexplicitVkQueryPoolCreateInfoIf queryType is VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the pNext chain must include a VkQueryPoolPerformanceCreateInfoKHR structure
VUID-VkQueryPoolCreateInfo-queryType-07133YNegativeVideo.CreateQueryPoolEncodeFeedbackProfileexplicitVkQueryPoolCreateInfoIf 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.CreateQueryPoolMissingEncodeFeedbackInfoexplicitVkQueryPoolCreateInfoIf queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the pNext chain must include a VkQueryPoolVideoEncodeFeedbackCreateInfoKHR structure
VUID-VkQueryPoolCreateInfo-queryType-07907YNegativeVideo.CreateQueryPoolUnsupportedEncodeFeedbackexplicitVkQueryPoolCreateInfoIf 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-09534YNegativeQuery.PipelineStatisticsZeroexplicitVkQueryPoolCreateInfoIf queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must not be zero
VUID-VkQueryPoolCreateInfo-queryType-parameterYNoneimplicitVkQueryPoolCreateInfoqueryType must be a valid VkQueryType value
VUID-VkQueryPoolCreateInfo-sType-sTypeYNoneimplicitVkQueryPoolCreateInfosType must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
VUID-VkQueryPoolCreateInfo-sType-uniqueYNoneimplicitVkQueryPoolCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylengthYNoneimplicitVkQueryPoolPerformanceCreateInfoKHRcounterIndexCount must be greater than 0
VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321YNegativeQuery.PerformanceCreationexplicitVkQueryPoolPerformanceCreateInfoKHREach element of pCounterIndices must be in the range of counters reported by vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR for the queue family specified in queueFamilyIndex
VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameterYNoneimplicitVkQueryPoolPerformanceCreateInfoKHRpCounterIndices must be a valid pointer to an array of counterIndexCount uint32_t values
VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237YNoneexplicitVkQueryPoolPerformanceCreateInfoKHRThe performanceCounterQueryPools feature must be enabled
VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236YNoneexplicitVkQueryPoolPerformanceCreateInfoKHRqueueFamilyIndex must be a valid queue family index of the device
VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sTypeYNoneimplicitVkQueryPoolPerformanceCreateInfoKHRsType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameterYNoneimplicitVkQueryPoolPerformanceQueryCreateInfoINTELperformanceCountersSampling must be a valid VkQueryPoolSamplingModeINTEL value
VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-sType-sTypeYNoneimplicitVkQueryPoolPerformanceQueryCreateInfoINTELsType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-parameterYNoneimplicitVkQueryPoolVideoEncodeFeedbackCreateInfoKHRencodeFeedbackFlags must be a valid combination of VkVideoEncodeFeedbackFlagBitsKHR values
VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-encodeFeedbackFlags-requiredbitmaskYNoneimplicitVkQueryPoolVideoEncodeFeedbackCreateInfoKHRencodeFeedbackFlags must not be 0
VUID-VkQueryPoolVideoEncodeFeedbackCreateInfoKHR-sType-sTypeYNoneimplicitVkQueryPoolVideoEncodeFeedbackCreateInfoKHRsType must be VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR
VUID-VkQueueFamilyCheckpointProperties2NV-sType-sTypeYNoneimplicitVkQueueFamilyCheckpointProperties2NVsType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
VUID-VkQueueFamilyCheckpointPropertiesNV-sType-sTypeYNoneimplicitVkQueueFamilyCheckpointPropertiesNVsType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyGlobalPriorityPropertiesKHRsType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
VUID-VkQueueFamilyProperties2-pNext-pNextYNoneimplicitVkQueueFamilyProperties2Each 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-sTypeYNoneimplicitVkQueueFamilyProperties2sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
VUID-VkQueueFamilyProperties2-sType-uniqueYNoneimplicitVkQueueFamilyProperties2The sType value of each struct in the pNext chain must be unique
VUID-VkQueueFamilyQueryResultStatusPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyQueryResultStatusPropertiesKHRsType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
VUID-VkQueueFamilyVideoPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyVideoPropertiesKHRsType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-None-09497YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkRayTracingPipelineCreateInfoKHR-commonparentYNoneimplicitVkRayTracingPipelineCreateInfoKHRBoth 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.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRflags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf flags includes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pLibraryInterface must not be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf 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.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf 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-03594YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf 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-03598YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled
VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718YNegativeRayTracingPipeline.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRIf 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.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRIf 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.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRIf 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.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRIf 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.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRIf 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.LibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHRIf 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.PipelineFlagsexplicitVkRayTracingPipelineCreateInfoKHRflags 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-07403YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf 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.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf 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.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf 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-07986YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkRayTracingPipelineCreateInfoKHR-flags-08700YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf 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-08701NNoneexplicitVkRayTracingPipelineCreateInfoKHRIf 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-flags-11008NNoneexplicitVkRayTracingPipelineCreateInfoKHRflags must not include VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428YNegativeRayTracingPipeline.MaxResourcesexplicitVkRayTracingPipelineCreateInfoKHRThe 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-07987YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf a push constant block is declared in a shader, a push constant range in layout must match the shader stage
VUID-VkRayTracingPipelineCreateInfoKHR-layout-07988YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkRayTracingPipelineCreateInfoKHR-layout-07990YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf 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-07991YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkRayTracingPipelineCreateInfoKHR-layout-10069NNoneexplicitVkRayTracingPipelineCreateInfoKHRIf a push constant block is declared in a shader, the block must be contained inside the push constant range in layout that matches the stage
VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRlayout must be a valid VkPipelineLayout handle
VUID-VkRayTracingPipelineCreateInfoKHR-maxPipelineRayRecursionDepth-03589YNoneexplicitVkRayTracingPipelineCreateInfoKHRmaxPipelineRayRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayRecursionDepth
VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRIf pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure
VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRAny element of the pDynamicStates member of pDynamicState must be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRIf groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoKHR structures
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591YNoneexplicitVkRayTracingPipelineCreateInfoKHREach element of pLibraryInfo->pLibraries must have been created with the value of maxPipelineRayRecursionDepth equal to that in this pipeline
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf pLibraryInfo is not NULL and its libraryCount member is greater than 0, pLibraryInterface must not be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592NNoneexplicitVkRayTracingPipelineCreateInfoKHRIf 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-03593YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf 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-03595YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf the VK_KHR_pipeline_library extension is not enabled, pLibraryInfo and pLibraryInterface must be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-07999YNegativeRayTracingPipeline.BasicUsageexplicitVkRayTracingPipelineCreateInfoKHRIf pLibraryInfo is NULL or its libraryCount is 0, stageCount must not be 0
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRIf pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRIf pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure
VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNextYNoneimplicitVkRayTracingPipelineCreateInfoKHREach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineBinaryInfoKHR, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, or VkPipelineRobustnessCreateInfoEXT
VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426NNoneexplicitVkRayTracingPipelineCreateInfoKHRThe 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-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHRIf stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf 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-06652YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf 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-03596YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597YNoneexplicitVkRayTracingPipelineCreateInfoKHRIf the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-sType-sTypeYNoneimplicitVkRayTracingPipelineCreateInfoKHRsType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-sType-uniqueYNoneimplicitVkRayTracingPipelineCreateInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingPipelineCreateInfoKHRIf 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.ShaderGroupsKHRexplicitVkRayTracingPipelineCreateInfoKHRThe 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-09497YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVIf the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkRayTracingPipelineCreateInfoNV-commonparentYNoneimplicitVkRayTracingPipelineCreateInfoNVBoth 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.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkRayTracingPipelineCreateInfoNV-flags-02957YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags 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.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03458YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03459YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03460YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03461YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03462YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03463YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03588YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-04948YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkRayTracingPipelineCreateInfoNV-flags-07402NNoneexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkRayTracingPipelineCreateInfoNV-flags-07984YNegativeRayTracingPipelineNV.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVIf 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.BasicUsageexplicitVkRayTracingPipelineCreateInfoNVIf 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-07986YNoneexplicitVkRayTracingPipelineCreateInfoNVIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE
VUID-VkRayTracingPipelineCreateInfoNV-flags-07998NNoneexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
VUID-VkRayTracingPipelineCreateInfoNV-flags-11008YNoneexplicitVkRayTracingPipelineCreateInfoNVflags must not include VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylengthYNoneimplicitVkRayTracingPipelineCreateInfoNVgroupCount must be greater than 0
VUID-VkRayTracingPipelineCreateInfoNV-layout-03428NNoneexplicitVkRayTracingPipelineCreateInfoNVThe 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-07987YNoneexplicitVkRayTracingPipelineCreateInfoNVIf a push constant block is declared in a shader, a push constant range in layout must match the shader stage
VUID-VkRayTracingPipelineCreateInfoNV-layout-07988YNoneexplicitVkRayTracingPipelineCreateInfoNVIf a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage
VUID-VkRayTracingPipelineCreateInfoNV-layout-07990YNoneexplicitVkRayTracingPipelineCreateInfoNVIf 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-07991YNoneexplicitVkRayTracingPipelineCreateInfoNVIf a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count
VUID-VkRayTracingPipelineCreateInfoNV-layout-10069NNoneexplicitVkRayTracingPipelineCreateInfoNVIf a push constant block is declared in a shader, the block must be contained inside the push constant range in layout that matches the stage
VUID-VkRayTracingPipelineCreateInfoNV-layout-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNVlayout must be a valid VkPipelineLayout handle
VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457YNoneexplicitVkRayTracingPipelineCreateInfoNVmaxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth
VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNVpGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures
VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNextYNoneimplicitVkRayTracingPipelineCreateInfoNVEach 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-03426NNoneexplicitVkRayTracingPipelineCreateInfoNVThe 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-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNVpStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905YNoneexplicitVkRayTracingPipelineCreateInfoNVIf 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.StageCreationFeedbackCountexplicitVkRayTracingPipelineCreateInfoNVIf VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkRayTracingPipelineCreateInfoNV-sType-sTypeYNoneimplicitVkRayTracingPipelineCreateInfoNVsType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
VUID-VkRayTracingPipelineCreateInfoNV-sType-uniqueYNoneimplicitVkRayTracingPipelineCreateInfoNVThe sType value of each struct in the pNext chain must be unique
VUID-VkRayTracingPipelineCreateInfoNV-stage-06232YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingPipelineCreateInfoNVThe stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-stage-06898NNoneexplicitVkRayTracingPipelineCreateInfoNVThe 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-arraylengthYNoneimplicitVkRayTracingPipelineCreateInfoNVstageCount must be greater than 0
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605YNoneexplicitVkRayTracingPipelineInterfaceCreateInfoKHRmaxPipelineRayHitAttributeSize must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayHitAttributeSize
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkRayTracingPipelineInterfaceCreateInfoKHRpNext must be NULL
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkRayTracingPipelineInterfaceCreateInfoKHRsType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-anyHitShader-03479YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRanyHitShader 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.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRclosestHitShader 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-pNextYNoneimplicitVkRayTracingShaderGroupCreateInfoKHRpNext must be NULL
VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03603NNoneexplicitVkRayTracingShaderGroupCreateInfoKHRIf 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-03604NNoneexplicitVkRayTracingShaderGroupCreateInfoKHRIf 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-sTypeYNoneimplicitVkRayTracingShaderGroupCreateInfoKHRsType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474YNegativeRayTracingPipeline.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRIf 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.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRIf 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.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRIf 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.ShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHRIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR then intersectionShader must be VK_SHADER_UNUSED_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-parameterYNoneimplicitVkRayTracingShaderGroupCreateInfoKHRtype must be a valid VkRayTracingShaderGroupTypeKHR value
VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVanyHitShader 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.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVclosestHitShader 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-pNextYNoneimplicitVkRayTracingShaderGroupCreateInfoNVpNext must be NULL
VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sTypeYNoneimplicitVkRayTracingShaderGroupCreateInfoNVsType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413YNegativeRayTracingPipelineNV.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVIf 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.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVIf 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.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVIf 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.ShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNVIf type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV then intersectionShader must be VK_SHADER_UNUSED_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameterYNoneimplicitVkRayTracingShaderGroupCreateInfoNVtype must be a valid VkRayTracingShaderGroupTypeKHR value
VUID-VkRectLayerKHR-layer-01262YNoneexplicitVkRectLayerKHRlayer must be less than the imageArrayLayers member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR
VUID-VkRectLayerKHR-offset-04864YNoneexplicitVkRectLayerKHRThe 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-VkReleaseCapturedPipelineDataInfoKHR-pNext-pNextYNoneimplicitVkReleaseCapturedPipelineDataInfoKHRpNext must be NULL
VUID-VkReleaseCapturedPipelineDataInfoKHR-pipeline-09613YNegativePipelineBinary.ReleaseCapturedDataexplicitVkReleaseCapturedPipelineDataInfoKHRpipeline must have been created with VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
VUID-VkReleaseCapturedPipelineDataInfoKHR-pipeline-09618YNegativePipelineBinary.ReleaseCapturedDataexplicitVkReleaseCapturedPipelineDataInfoKHRpipeline must not have been used in a previous call to vkReleaseCapturedPipelineDataKHR
VUID-VkReleaseCapturedPipelineDataInfoKHR-pipeline-parameterYNoneimplicitVkReleaseCapturedPipelineDataInfoKHRpipeline must be a valid VkPipeline handle
VUID-VkReleaseCapturedPipelineDataInfoKHR-sType-sTypeYNoneimplicitVkReleaseCapturedPipelineDataInfoKHRsType must be VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
VUID-VkReleaseSwapchainImagesInfoEXT-imageIndexCount-arraylengthYNoneimplicitVkReleaseSwapchainImagesInfoEXTimageIndexCount must be greater than 0
VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07785YNegativeWsi.SwapchainMaintenance1ExtensionAcquire, NegativeWsi.SwapchainMaintenance1ExtensionReleaseexplicitVkReleaseSwapchainImagesInfoEXTEach element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by swapchain
VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-07786YNegativeWsi.SwapchainMaintenance1ExtensionReleaseexplicitVkReleaseSwapchainImagesInfoEXTAll uses of presentable images identified by elements of pImageIndices must have completed execution
VUID-VkReleaseSwapchainImagesInfoEXT-pImageIndices-parameterYNoneimplicitVkReleaseSwapchainImagesInfoEXTpImageIndices must be a valid pointer to an array of imageIndexCount uint32_t values
VUID-VkReleaseSwapchainImagesInfoEXT-pNext-pNextYNoneimplicitVkReleaseSwapchainImagesInfoEXTpNext must be NULL
VUID-VkReleaseSwapchainImagesInfoEXT-sType-sTypeYNoneimplicitVkReleaseSwapchainImagesInfoEXTsType must be VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
VUID-VkReleaseSwapchainImagesInfoEXT-swapchain-parameterYNoneimplicitVkReleaseSwapchainImagesInfoEXTswapchain must be a valid VkSwapchainKHR handle
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03218YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassAttachmentBeginInfoEach element of pAttachments must only specify a single mip level
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219YNegativeImagelessFramebuffer.RenderPassBeginImageViewMismatchexplicitVkRenderPassAttachmentBeginInfoEach element of pAttachments must have been created with the identity swizzle
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114YNegativeImagelessFramebuffer.RenderPassBeginImageView3DexplicitVkRenderPassAttachmentBeginInfoEach element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkRenderPassAttachmentBeginInfoIf 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-parameterYNoneimplicitVkRenderPassAttachmentBeginInfoIf attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles
VUID-VkRenderPassAttachmentBeginInfo-sType-sTypeYNoneimplicitVkRenderPassAttachmentBeginInfosType must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
VUID-VkRenderPassBeginInfo-None-08996YNegativeRenderPass.ZeroRenderAreaexplicitVkRenderPassBeginInfoIf 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.ZeroRenderAreaexplicitVkRenderPassBeginInfoIf 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.BeginClearOpMismatchexplicitVkRenderPassBeginInfoclearValueCount 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.RenderPassBeginNullValuesexplicitVkRenderPassBeginInfoIf clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions
VUID-VkRenderPassBeginInfo-commonparentYNegativeParent.RenderPassCommandBufferimplicitVkRenderPassBeginInfoBoth of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice
VUID-VkRenderPassBeginInfo-framebuffer-02780YNegativeParent.RenderPassImagelessFramebufferexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.RenderPassBeginImageViewMismatchexplicitVkRenderPassBeginInfoIf 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.ImagelessFramebufferFormatexplicitVkRenderPassBeginInfoIf 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.ImagelessFramebufferexplicitVkRenderPassBeginInfoIf 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, NegativeWsi.UseDestroyedSwapchainimplicitVkRenderPassBeginInfoframebuffer must be a valid VkFramebuffer handle
VUID-VkRenderPassBeginInfo-pNext-02850YNegativeRenderPass.RenderAreaexplicitVkRenderPassBeginInfoIf 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.RenderAreaexplicitVkRenderPassBeginInfoIf 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.RenderAreaexplicitVkRenderPassBeginInfoIf 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.RenderAreaexplicitVkRenderPassBeginInfoIf 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.DeviceGroupRenderAreaexplicitVkRenderPassBeginInfoIf 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.DeviceGroupRenderAreaexplicitVkRenderPassBeginInfoIf 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-02869NNoneexplicitVkRenderPassBeginInfoIf the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.offset must equal (0,0)
VUID-VkRenderPassBeginInfo-pNext-02870NNoneexplicitVkRenderPassBeginInfoIf the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.extent transformed by VkRenderPassTransformBeginInfoQCOM::transform must equal the framebuffer dimensions
VUID-VkRenderPassBeginInfo-pNext-09539YNegativeRenderPass.BeginRenderPassWithRenderPassStripedexplicitVkRenderPassBeginInfoIf 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-pNext-pNextYNoneimplicitVkRenderPassBeginInfoEach 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-07859NNoneexplicitVkRenderPassBeginInfoIf 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-07860NNoneexplicitVkRenderPassBeginInfoIf 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-VkRenderPassBeginInfo-renderPass-00904YNegativeRenderPass.BeginIncompatibleFramebuffer, NegativeRenderPass.ImageSubresourceOverlapBetweenCurrentRenderPassAndDescriptorSets, NegativeRenderPass.IncompatibleRenderPass, NegativeRenderPass.IncompatibleRenderPass2, NegativeRenderPass.IncompatibleRenderPassSubpassFlagsexplicitVkRenderPassBeginInforenderPass must be compatible with the renderPass member of the VkFramebufferCreateInfo structure specified when creating framebuffer
VUID-VkRenderPassBeginInfo-renderPass-parameterYNegativeRenderPass.BeginInfoWithoutRenderPassimplicitVkRenderPassBeginInforenderPass must be a valid VkRenderPass handle
VUID-VkRenderPassBeginInfo-sType-sTypeYNoneimplicitVkRenderPassBeginInfosType must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
VUID-VkRenderPassBeginInfo-sType-uniqueYNoneimplicitVkRenderPassBeginInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo-attachment-00834YNegativeRenderPass.AttachmentIndexOutOfRangeexplicitVkRenderPassCreateInfoIf 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-parameterYNoneimplicitVkRenderPassCreateInfoflags must be a valid combination of VkRenderPassCreateFlagBits values
VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471YNegativeFragmentShadingRate.FragmentDensityMapReferencesexplicitVkRenderPassCreateInfoIf 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.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfoFor 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.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfoFor 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.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfoFor 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.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfoFor 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-parameterYNoneimplicitVkRenderPassCreateInfoIf attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription structures
VUID-VkRenderPassCreateInfo-pDependencies-00837YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfoFor 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.SubpassDependenciesexplicitVkRenderPassCreateInfoFor 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.SubpassIndicesexplicitVkRenderPassCreateInfoFor any element of pDependencies, if its srcSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount
VUID-VkRenderPassCreateInfo-pDependencies-06867YNegativeSubpass.SubpassDependencies, NegativeSubpass.SubpassIndicesexplicitVkRenderPassCreateInfoFor any element of pDependencies, if its dstSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount
VUID-VkRenderPassCreateInfo-pDependencies-parameterYNoneimplicitVkRenderPassCreateInfoIf dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency structures
VUID-VkRenderPassCreateInfo-pNext-01926YNegativeSubpass.InputAttachmentReferencesexplicitVkRenderPassCreateInfoIf 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.InputAttachmentReferencesexplicitVkRenderPassCreateInfoIf 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.RenderPassViewMasksNotEnoughexplicitVkRenderPassCreateInfoIf 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.SubpassDependenciesexplicitVkRenderPassCreateInfoIf the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, if its dependencyCount member is not zero, it must be equal to dependencyCount
VUID-VkRenderPassCreateInfo-pNext-01930YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfoIf 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.VuidIdFilterStringexplicitVkRenderPassCreateInfoIf 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.RenderPassViewOffsetsexplicitVkRenderPassCreateInfoIf 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.RenderPassViewMasksZeroexplicitVkRenderPassCreateInfoIf 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.AllViewMasksZeroexplicitVkRenderPassCreateInfoIf 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.AllViewMasksZeroexplicitVkRenderPassCreateInfoIf 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-pNextYNoneimplicitVkRenderPassCreateInfoEach 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-parameterYNoneimplicitVkRenderPassCreateInfopSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription structures
VUID-VkRenderPassCreateInfo-sType-sTypeYNoneimplicitVkRenderPassCreateInfosType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
VUID-VkRenderPassCreateInfo-sType-uniqueYNoneimplicitVkRenderPassCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo-subpassCount-arraylengthYNoneimplicitVkRenderPassCreateInfosubpassCount must be greater than 0
VUID-VkRenderPassCreateInfo2-None-03049NNoneexplicitVkRenderPassCreateInfo2If 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.VuidIdFilterStringexplicitVkRenderPassCreateInfo2If 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-03050NNoneexplicitVkRenderPassCreateInfo2If 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.AttachmentIndexOutOfRangeexplicitVkRenderPassCreateInfo2If 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.BeginStencilFormatexplicitVkRenderPassCreateInfo2If 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.BeginStencilFormatexplicitVkRenderPassCreateInfo2If 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.BeginStencilFormatexplicitVkRenderPassCreateInfo2If 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.SubpassIndicesexplicitVkRenderPassCreateInfo2The dstSubpass member of each element of pDependencies must be less than subpassCount
VUID-VkRenderPassCreateInfo2-flags-04521YNegativeFragmentShadingRate.AttachmentsexplicitVkRenderPassCreateInfo2If 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.ShaderResolveQCOMexplicitVkRenderPassCreateInfo2If 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-04908YNoneexplicitVkRenderPassCreateInfo2If 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.ShaderResolveQCOMexplicitVkRenderPassCreateInfo2If 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-parameterYNegativeFragmentShadingRate.AttachmentsimplicitVkRenderPassCreateInfo2flags must be a valid combination of VkRenderPassCreateFlagBits values
VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472YNegativeFragmentShadingRate.FragmentDensityMapAttachmentCountexplicitVkRenderPassCreateInfo2If 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.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfo2For 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.AttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfo2For 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-04585YNoneexplicitVkRenderPassCreateInfo2If 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.AttachmentsexplicitVkRenderPassCreateInfo2If 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-09387YNegativeFragmentShadingRate.LoadOpClearexplicitVkRenderPassCreateInfo2If 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-parameterYNoneimplicitVkRenderPassCreateInfo2If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2 structures
VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056YNegativeMultiview.RenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassCreateInfo2The 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-parameterYNoneimplicitVkRenderPassCreateInfo2If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values
VUID-VkRenderPassCreateInfo2-pDependencies-03054YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfo2For 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.SubpassDependenciesexplicitVkRenderPassCreateInfo2For 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.SubpassDependenciesexplicitVkRenderPassCreateInfo2For 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-parameterYNoneimplicitVkRenderPassCreateInfo2If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2 structures
VUID-VkRenderPassCreateInfo2-pNext-pNextYNoneimplicitVkRenderPassCreateInfo2Each 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-09331YNoneexplicitVkRenderPassCreateInfo2If 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.DepthStencilResolveModeexplicitVkRenderPassCreateInfo2If 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-parameterYNoneimplicitVkRenderPassCreateInfo2pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2 structures
VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905NNoneexplicitVkRenderPassCreateInfo2If 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-sTypeYNoneimplicitVkRenderPassCreateInfo2sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
VUID-VkRenderPassCreateInfo2-sType-uniqueYNoneimplicitVkRenderPassCreateInfo2The sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906NNoneexplicitVkRenderPassCreateInfo2If 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.SubpassIndicesexplicitVkRenderPassCreateInfo2The srcSubpass member of each element of pDependencies must be less than subpassCount
VUID-VkRenderPassCreateInfo2-subpassCount-arraylengthYNoneimplicitVkRenderPassCreateInfo2subpassCount must be greater than 0
VUID-VkRenderPassCreateInfo2-viewMask-03057YNegativeMultiview.RenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassCreateInfo2If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0
VUID-VkRenderPassCreateInfo2-viewMask-03058YNegativeMultiview.RenderPassViewMasksNotEnoughexplicitVkRenderPassCreateInfo2The VkSubpassDescription2::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0
VUID-VkRenderPassCreateInfo2-viewMask-03059YNegativeSubpass.SubpassDependenciesexplicitVkRenderPassCreateInfo2If 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-sTypeYNoneimplicitVkRenderPassCreationControlEXTsType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
VUID-VkRenderPassCreationFeedbackCreateInfoEXT-pRenderPassFeedback-parameterYNoneimplicitVkRenderPassCreationFeedbackCreateInfoEXTpRenderPassFeedback must be a valid pointer to a VkRenderPassCreationFeedbackInfoEXT structure
VUID-VkRenderPassCreationFeedbackCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassCreationFeedbackCreateInfoEXTsType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548YNegativeFragmentShadingRate.FragmentDensityMapDuplicateReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXTIf 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.FragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXTIf 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.FragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXTIf 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.FragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXTIf 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-parameterYNoneimplicitVkRenderPassFragmentDensityMapCreateInfoEXTfragmentDensityMapAttachment must be a valid VkAttachmentReference structure
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassFragmentDensityMapCreateInfoEXTsType must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
VUID-VkRenderPassInputAttachmentAspectCreateInfo-aspectReferenceCount-arraylengthYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfoaspectReferenceCount must be greater than 0
VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameterYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfopAspectReferences must be a valid pointer to an array of aspectReferenceCount valid VkInputAttachmentAspectReference structures
VUID-VkRenderPassInputAttachmentAspectCreateInfo-sType-sTypeYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfosType must be VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
VUID-VkRenderPassMultiviewCreateInfo-multiview-06555YNegativeRenderPass.ViewMaskWithoutFeatureexplicitVkRenderPassMultiviewCreateInfoIf the multiview feature is not enabled, each element of pViewMasks must be 0
VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-00841YNegativeMultiview.RenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassMultiviewCreateInfoEach view index must not be set in more than one element of pCorrelationMasks
VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-parameterYNoneimplicitVkRenderPassMultiviewCreateInfoIf correlationMaskCount is not 0, pCorrelationMasks must be a valid pointer to an array of correlationMaskCount uint32_t values
VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-06697YNegativeMultiview.RenderPassViewMasksLimitexplicitVkRenderPassMultiviewCreateInfoThe index of the most significant bit in each element of pViewMasks must be less than maxMultiviewViewCount
VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-parameterYNoneimplicitVkRenderPassMultiviewCreateInfoIf subpassCount is not 0, pViewMasks must be a valid pointer to an array of subpassCount uint32_t values
VUID-VkRenderPassMultiviewCreateInfo-pViewOffsets-parameterYNoneimplicitVkRenderPassMultiviewCreateInfoIf dependencyCount is not 0, pViewOffsets must be a valid pointer to an array of dependencyCount int32_t values
VUID-VkRenderPassMultiviewCreateInfo-sType-sTypeYNoneimplicitVkRenderPassMultiviewCreateInfosType must be VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameterYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXTIf attachmentInitialSampleLocationsCount is not 0, pAttachmentInitialSampleLocations must be a valid pointer to an array of attachmentInitialSampleLocationsCount valid VkAttachmentSampleLocationsEXT structures
VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameterYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXTIf postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must be a valid pointer to an array of postSubpassSampleLocationsCount valid VkSubpassSampleLocationsEXT structures
VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sTypeYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXTsType must be VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
VUID-VkRenderPassStripeBeginInfoARM-pStripeInfos-parameterYNoneimplicitVkRenderPassStripeBeginInfoARMpStripeInfos must be a valid pointer to an array of stripeInfoCount valid VkRenderPassStripeInfoARM structures
VUID-VkRenderPassStripeBeginInfoARM-sType-sTypeYNoneimplicitVkRenderPassStripeBeginInfoARMsType must be VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
VUID-VkRenderPassStripeBeginInfoARM-stripeArea-09451YNegativeDynamicRendering.BeginRenderingWithRenderPassStriped, NegativeRenderPass.BeginRenderPassWithRenderPassStripedexplicitVkRenderPassStripeBeginInfoARMThe stripeArea defined by each element of pStripeInfos must not overlap the stripeArea of any other element
VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-09450YNegativeDynamicRendering.BeginRenderingWithRenderPassStriped, NegativeRenderPass.BeginRenderPassWithRenderPassStripedexplicitVkRenderPassStripeBeginInfoARMstripeInfoCount must be less than or equal to VkPhysicalDeviceRenderPassStripedPropertiesARM::maxRenderPassStripes
VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-arraylengthYNoneimplicitVkRenderPassStripeBeginInfoARMstripeInfoCount must be greater than 0
VUID-VkRenderPassStripeInfoARM-pNext-pNextNNoneimplicitVkRenderPassStripeInfoARMpNext must be NULL
VUID-VkRenderPassStripeInfoARM-sType-sTypeYNoneimplicitVkRenderPassStripeInfoARMsType must be VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
VUID-VkRenderPassStripeInfoARM-stripeArea-09452YNegativeDynamicRendering.BeginRenderingWithRenderPassStriped, NegativeRenderPass.BeginRenderPassWithRenderPassStripedexplicitVkRenderPassStripeInfoARMstripeArea.offset.x must be a multiple of VkPhysicalDeviceRenderPassStripedPropertiesARM::renderPassStripeGranularity.width
VUID-VkRenderPassStripeInfoARM-stripeArea-09453YNegativeDynamicRendering.BeginRenderingWithRenderPassStriped, NegativeRenderPass.BeginRenderPassWithRenderPassStripedexplicitVkRenderPassStripeInfoARMstripeArea.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-09454YNegativeDynamicRendering.BeginRenderingWithRenderPassStriped, NegativeRenderPass.BeginRenderPassWithRenderPassStripedexplicitVkRenderPassStripeInfoARMstripeArea.offset.y must be a multiple of VkPhysicalDeviceRenderPassStripedPropertiesARM::renderPassStripeGranularity.height
VUID-VkRenderPassStripeInfoARM-stripeArea-09455YNegativeDynamicRendering.BeginRenderingWithRenderPassStriped, NegativeRenderPass.BeginRenderPassWithRenderPassStripedexplicitVkRenderPassStripeInfoARMstripeArea.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-parameterYNoneimplicitVkRenderPassStripeSubmitInfoARMpStripeSemaphoreInfos must be a valid pointer to an array of stripeSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures
VUID-VkRenderPassStripeSubmitInfoARM-sType-sTypeYNoneimplicitVkRenderPassStripeSubmitInfoARMsType must be VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
VUID-VkRenderPassStripeSubmitInfoARM-semaphore-09447YNegativeDynamicRendering.RenderPassStripeInfoQueueSubmit2, NegativeRenderPass.RenderPassWithRenderPassStripedQueueSubmit2explicitVkRenderPassStripeSubmitInfoARMThe semaphore member of each element of pStripeSemaphoreInfos must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkRenderPassStripeSubmitInfoARM-stripeSemaphoreInfoCount-arraylengthYNoneimplicitVkRenderPassStripeSubmitInfoARMstripeSemaphoreInfoCount must be greater than 0
VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-pSubpassFeedback-parameterYNoneimplicitVkRenderPassSubpassFeedbackCreateInfoEXTpSubpassFeedback must be a valid pointer to a VkRenderPassSubpassFeedbackInfoEXT structure
VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassSubpassFeedbackCreateInfoEXTsType must be VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872NNoneexplicitVkRenderPassTransformBeginInfoQCOMThe renderpass must have been created with VkRenderPassCreateInfo::flags containing VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
VUID-VkRenderPassTransformBeginInfoQCOM-sType-sTypeYNoneimplicitVkRenderPassTransformBeginInfoQCOMsType must be VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM
VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871NNoneexplicitVkRenderPassTransformBeginInfoQCOMtransform 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-pNextYNoneimplicitVkRenderingAreaInfoKHRpNext must be NULL
VUID-VkRenderingAreaInfoKHR-sType-sTypeYNoneimplicitVkRenderingAreaInfoKHRsType must be VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR
VUID-VkRenderingAttachmentInfo-clearValue-parameterYNoneimplicitVkRenderingAttachmentInfoclearValue must be a valid VkClearValue union
VUID-VkRenderingAttachmentInfo-commonparentYNoneimplicitVkRenderingAttachmentInfoBoth 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-09323YNoneexplicitVkRenderingAttachmentInfoIf externalFormatResolve is not enabled, resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
VUID-VkRenderingAttachmentInfo-imageLayout-parameterYNoneimplicitVkRenderingAttachmentInfoimageLayout must be a valid VkImageLayout value
VUID-VkRenderingAttachmentInfo-imageView-06129YNegativeAndroidExternalResolve.ClearAttachment, NegativeAndroidExternalResolve.DrawDynamicRasterizationSamples, NegativeAndroidExternalResolve.DynamicRendering, NegativeAndroidExternalResolve.DynamicRenderingResolveModeNonNullColor, NegativeAndroidExternalResolve.MissingImageUsage, NegativeDynamicRendering.ResolveModeWithNonIntegerColorFormat, PositiveAndroidExternalResolve.DynamicRenderingexplicitVkRenderingAttachmentInfoIf 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.ResolveModeWithIntegerColorFormatexplicitVkRenderingAttachmentInfoIf 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.AttachmentImageViewLayoutexplicitVkRenderingAttachmentInfoIf 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.ResolveImageViewLayoutexplicitVkRenderingAttachmentInfoIf 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.ResolveImageViewLayoutSeparateDepthStencilexplicitVkRenderingAttachmentInfoIf 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.AttachmentImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfoIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV
VUID-VkRenderingAttachmentInfo-imageView-06139YNegativeDynamicRendering.ResolveImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfoIf 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.AttachmentImageViewFragmentDensityLayoutexplicitVkRenderingAttachmentInfoIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
VUID-VkRenderingAttachmentInfo-imageView-06141YNegativeDynamicRendering.ResolveImageViewFragmentDensityLayoutexplicitVkRenderingAttachmentInfoIf 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.ResolveImageViewReadOnlyOptimalLayoutexplicitVkRenderingAttachmentInfoIf 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.AttachmentImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfoIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
VUID-VkRenderingAttachmentInfo-imageView-06144YNegativeDynamicRendering.ResolveImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfoIf 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.AttachmentInfoexplicitVkRenderingAttachmentInfoIf imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
VUID-VkRenderingAttachmentInfo-imageView-06146YNegativeDynamicRendering.AttachmentInfoexplicitVkRenderingAttachmentInfoIf 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.MultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInfoimageView 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.MultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInforesolveImageView 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.MultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInfoIf 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.ResolveImageViewSamplesexplicitVkRenderingAttachmentInfoIf 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.DynamicRenderingexplicitVkRenderingAttachmentInfoIf 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-parameterYNoneimplicitVkRenderingAttachmentInfoIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkRenderingAttachmentInfo-loadOp-parameterYNoneimplicitVkRenderingAttachmentInfoloadOp must be a valid VkAttachmentLoadOp value
VUID-VkRenderingAttachmentInfo-nullColorAttachmentWithExternalFormatResolve-09325YNoneexplicitVkRenderingAttachmentInfoIf 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-pNextYNoneimplicitVkRenderingAttachmentInfopNext must be NULL
VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameterYNoneimplicitVkRenderingAttachmentInforesolveImageLayout must be a valid VkImageLayout value
VUID-VkRenderingAttachmentInfo-resolveImageView-parameterYNoneimplicitVkRenderingAttachmentInfoIf resolveImageView is not VK_NULL_HANDLE, resolveImageView must be a valid VkImageView handle
VUID-VkRenderingAttachmentInfo-resolveMode-09324YNoneexplicitVkRenderingAttachmentInfoIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must be a valid image view
VUID-VkRenderingAttachmentInfo-resolveMode-09326YNegativeAndroidExternalResolve.DynamicRenderingResolveModeNonNullColorexplicitVkRenderingAttachmentInfoIf 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.DynamicRenderingResolveModeNonNullColorexplicitVkRenderingAttachmentInfoIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must have been created with a subresourceRange.layerCount of 1
VUID-VkRenderingAttachmentInfo-resolveMode-09328YNoneexplicitVkRenderingAttachmentInfoIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_TRUE, imageView must be VK_NULL_HANDLE
VUID-VkRenderingAttachmentInfo-resolveMode-09329YNegativeAndroidExternalResolve.DynamicRenderingResolveModeNonNullColorexplicitVkRenderingAttachmentInfoIf resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_FALSE, imageView must be a valid VkImageView
VUID-VkRenderingAttachmentInfo-resolveMode-09330YNoneexplicitVkRenderingAttachmentInfoIf 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-parameterYNoneimplicitVkRenderingAttachmentInfoIf resolveMode is not 0, resolveMode must be a valid VkResolveModeFlagBits value
VUID-VkRenderingAttachmentInfo-sType-sTypeYNoneimplicitVkRenderingAttachmentInfosType must be VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO
VUID-VkRenderingAttachmentInfo-storeOp-parameterYNoneimplicitVkRenderingAttachmentInfostoreOp must be a valid VkAttachmentStoreOp value
VUID-VkRenderingAttachmentLocationInfoKHR-colorAttachmentCount-09514YNegativeDynamicRenderingLocalRead.AttachmentLocationsMaxexplicitVkRenderingAttachmentLocationInfoKHRcolorAttachmentCount must be less than or equal to maxColorAttachments
VUID-VkRenderingAttachmentLocationInfoKHR-dynamicRenderingLocalRead-09512YNegativeDynamicRenderingLocalRead.AttachmentLocationsValidityexplicitVkRenderingAttachmentLocationInfoKHRIf the dynamicRenderingLocalRead feature is not enabled, and pColorAttachmentLocations is not NULL, each element must be set to the value of its index within the array
VUID-VkRenderingAttachmentLocationInfoKHR-pColorAttachmentLocations-09513YNegativeDynamicRenderingLocalRead.AttachmentLocationsValidityexplicitVkRenderingAttachmentLocationInfoKHRElements of pColorAttachmentLocations that are not VK_ATTACHMENT_UNUSED must each be unique
VUID-VkRenderingAttachmentLocationInfoKHR-pColorAttachmentLocations-09515YNegativeDynamicRenderingLocalRead.AttachmentLocationsMaxexplicitVkRenderingAttachmentLocationInfoKHREach element of pColorAttachmentLocations must be less than maxColorAttachments
VUID-VkRenderingAttachmentLocationInfoKHR-sType-sTypeYNoneimplicitVkRenderingAttachmentLocationInfoKHRsType must be VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908YNoneexplicitVkRenderingFragmentDensityMapAttachmentInfoEXTIf the multiview feature 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-parameterYNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXTimageLayout must be a valid VkImageLayout value
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157YNegativeDynamicRendering.RenderingFragmentDensityMapAttachmentexplicitVkRenderingFragmentDensityMapAttachmentInfoEXTIf imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158YNegativeDynamicRendering.RenderingFragmentDensityMapAttachmentUsageexplicitVkRenderingFragmentDensityMapAttachmentInfoEXTIf imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159YNegativeDynamicRendering.FragmentDensityMapAttachmentCreateFlagsexplicitVkRenderingFragmentDensityMapAttachmentInfoEXTIf imageView is not VK_NULL_HANDLE, it must not have been created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameterYNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXTimageView must be a valid VkImageView handle
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sTypeYNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXTsType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameterYNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHRimageLayout must be a valid VkImageLayout value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageViewexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf 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.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf 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.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be a power of two value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be a power of two value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155YNegativeDynamicRendering.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf 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.BeginRenderingFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf 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-parameterYNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHRIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sTypeYNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHRsType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
VUID-VkRenderingInfo-None-08994YNegativeDynamicRendering.ZeroRenderAreaexplicitVkRenderingInfoIf VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0
VUID-VkRenderingInfo-None-08995YNegativeDynamicRendering.ZeroRenderAreaexplicitVkRenderingInfoIf VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0
VUID-VkRenderingInfo-None-09044NNoneexplicitVkRenderingInfoValid 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.RenderingInfoColorAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoColorAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoColorAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoColorAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoColorAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoColorAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoColorAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoColorAttachmentexplicitVkRenderingInfocolorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkRenderingInfo-colorAttachmentCount-09320YNegativeAndroidExternalResolve.DynamicRenderingexplicitVkRenderingInfoIf 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.MissingImageUsageexplicitVkRenderingInfoIf 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.IdentitySwizzleColorexplicitVkRenderingInfoIf 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-09480YNoneexplicitVkRenderingInfoIf 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-10012YNegativeDynamicRendering.DynamicRenderingInlineContentsexplicitVkRenderingInfoIf flags includes VK_RENDERING_CONTENTS_INLINE_BIT_KHR then at least one of the following features must be enabled maintenance7 nestedCommandBuffer
VUID-VkRenderingInfo-flags-parameterYNoneimplicitVkRenderingInfoflags must be a valid combination of VkRenderingFlagBits values
VUID-VkRenderingInfo-imageView-06107YNegativeDynamicRendering.MissingImageCreateSubsampledexplicitVkRenderingInfoIf 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-06108YNoneexplicitVkRenderingInfoIf 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.RenderingFragmentDensityMapAttachmentexplicitVkRenderingInfoIf 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.AttachmentInfoexplicitVkRenderingInfoIf 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.BeginRenderingFragmentShadingRateexplicitVkRenderingInfoIf 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.BeginRenderingFragmentShadingRateexplicitVkRenderingInfoIf 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.BeginRenderingFragmentShadingRateexplicitVkRenderingInfoIf 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.PNextImageViewexplicitVkRenderingInfoIf 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.MultisampledRenderToSingleSampledexplicitVkRenderingInfoIf 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.MultisampledRenderToSingleSampledexplicitVkRenderingInfoIf 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-09429NNoneexplicitVkRenderingInfoimageView 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.IdentitySwizzleFragmentShadingRateexplicitVkRenderingInfoIf 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.IdentitySwizzleFragmentDensityMapexplicitVkRenderingInfoIf 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.MaxFramebufferLayersexplicitVkRenderingInfolayerCount must be less than or equal to maxFramebufferLayers
VUID-VkRenderingInfo-multisampledRenderToSingleSampled-06857YNegativeDynamicRendering.InfoMismatchedSamplesexplicitVkRenderingInfoimageView 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.FragmentDensityMapAttachmentLayerCountexplicitVkRenderingInfoIf the multiview feature is not enabled, viewMask must be 0
VUID-VkRenderingInfo-pColorAttachments-parameterYNoneimplicitVkRenderingInfoIf colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkRenderingAttachmentInfo structures
VUID-VkRenderingInfo-pDepthAttachment-06085YNegativeDynamicRendering.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.BeginRenderingDepthAttachmentFormatexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.DynamicRenderingexplicitVkRenderingInfopDepthAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
VUID-VkRenderingInfo-pDepthAttachment-09477YNegativeDynamicRendering.ResolveAttachmentUsageexplicitVkRenderingInfoIf 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.IdentitySwizzleDepthStencilexplicitVkRenderingInfoIf 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-09482YNoneexplicitVkRenderingInfoIf 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-parameterYNoneimplicitVkRenderingInfoIf pDepthAttachment is not NULL, pDepthAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure
VUID-VkRenderingInfo-pNext-06077YNegativeDynamicRendering.RenderArea, NegativeDynamicRendering.RenderAreaNegativeOffsetexplicitVkRenderingInfoIf 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.RenderAreaNegativeOffsetexplicitVkRenderingInfoIf 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.DeviceGroupAreaGreaterThanAttachmentExtentexplicitVkRenderingInfoIf 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.DeviceGroupAreaGreaterThanAttachmentExtentexplicitVkRenderingInfoIf 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.DeviceGroupRenderPassBeginInfoexplicitVkRenderingInfoIf 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.DeviceGroupRenderPassBeginInfoexplicitVkRenderingInfoIf 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.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfoIf 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.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfoIf 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.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfoIf 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.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfoIf 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.FragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfoIf maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, 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.FragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfoIf maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, 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.BeginRenderingFragmentShadingRateAttachmentSizeexplicitVkRenderingInfoIf maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, 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.FragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfoIf maintenance7 is not enabled or the robustFragmentShadingRateAttachmentAccess limit is VK_FALSE or the imageView member of a VkRenderingFragmentShadingRateAttachmentInfoKHR structure was created with VkImageSubresourceRange::baseMipLevel greater than 0, 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.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfoIf 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.TestFragmentDensityMapRenderAreaexplicitVkRenderingInfoIf 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-09535YNegativeDynamicRendering.BeginRenderingWithRenderPassStripedexplicitVkRenderingInfoIf 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-pNext-pNextYNoneimplicitVkRenderingInfoEach 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.BeginRenderingStencilAttachmentFormatexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.RenderingInfoDepthAttachmentexplicitVkRenderingInfoIf 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.DynamicRenderingexplicitVkRenderingInfopStencilAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
VUID-VkRenderingInfo-pStencilAttachment-09478YNegativeDynamicRendering.ResolveAttachmentUsageexplicitVkRenderingInfoIf 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.IdentitySwizzleDepthStencilexplicitVkRenderingInfoIf 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-09484YNoneexplicitVkRenderingInfoIf 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-parameterYNoneimplicitVkRenderingInfoIf pStencilAttachment is not NULL, pStencilAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure
VUID-VkRenderingInfo-perViewRenderAreaCount-07857NNoneexplicitVkRenderingInfoIf 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-07858NNoneexplicitVkRenderingInfoIf 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-09321YNoneexplicitVkRenderingInfoIf 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-09322YNoneexplicitVkRenderingInfoIf the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView must be VK_NULL_HANDLE
VUID-VkRenderingInfo-sType-sTypeYNoneimplicitVkRenderingInfosType must be VK_STRUCTURE_TYPE_RENDERING_INFO
VUID-VkRenderingInfo-sType-uniqueYNoneimplicitVkRenderingInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderingInfo-viewMask-06069YNegativeDynamicRendering.LayerCountexplicitVkRenderingInfoIf viewMask is 0, layerCount must not be 0
VUID-VkRenderingInfo-viewMask-06128YNegativeDynamicRendering.InfoViewMaskexplicitVkRenderingInfoThe index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkRenderingInputAttachmentIndexInfoKHR-colorAttachmentCount-09525YNegativeDynamicRenderingLocalRead.InputAttachmentIndexColorAttachmentCountexplicitVkRenderingInputAttachmentIndexInfoKHRcolorAttachmentCount must be less than or equal to maxColorAttachments
VUID-VkRenderingInputAttachmentIndexInfoKHR-dynamicRenderingLocalRead-09519YNegativeDynamicRenderingLocalRead.InputAttachmentIndexSetToUnusedexplicitVkRenderingInputAttachmentIndexInfoKHRIf the dynamicRenderingLocalRead feature is not enabled, and pColorAttachmentInputIndices is not NULL, each element must be set to VK_ATTACHMENT_UNUSED
VUID-VkRenderingInputAttachmentIndexInfoKHR-dynamicRenderingLocalRead-09520YNegativeDynamicRenderingLocalRead.InputAttachmentIndexSetToUnusedexplicitVkRenderingInputAttachmentIndexInfoKHRIf the dynamicRenderingLocalRead feature is not enabled, pDepthInputAttachmentIndex must be a valid pointer to a value of VK_ATTACHMENT_UNUSED
VUID-VkRenderingInputAttachmentIndexInfoKHR-dynamicRenderingLocalRead-09521YNegativeDynamicRenderingLocalRead.InputAttachmentIndexSetToUnusedexplicitVkRenderingInputAttachmentIndexInfoKHRIf the dynamicRenderingLocalRead feature is not enabled, pStencilInputAttachmentIndex must be a valid pointer to a value of VK_ATTACHMENT_UNUSED
VUID-VkRenderingInputAttachmentIndexInfoKHR-pColorAttachmentInputIndices-09522YNegativeDynamicRenderingLocalRead.InputAttachmentIndexUniqueexplicitVkRenderingInputAttachmentIndexInfoKHRElements of pColorAttachmentInputIndices that are not VK_ATTACHMENT_UNUSED must each be unique
VUID-VkRenderingInputAttachmentIndexInfoKHR-pColorAttachmentInputIndices-09523YNegativeDynamicRenderingLocalRead.InputAttachmentIndexUniqueexplicitVkRenderingInputAttachmentIndexInfoKHRElements of pColorAttachmentInputIndices that are not VK_ATTACHMENT_UNUSED must not take the same value as the content of pDepthInputAttachmentIndex
VUID-VkRenderingInputAttachmentIndexInfoKHR-pColorAttachmentInputIndices-09524YNegativeDynamicRenderingLocalRead.InputAttachmentIndexUniqueexplicitVkRenderingInputAttachmentIndexInfoKHRElements of pColorAttachmentInputIndices that are not VK_ATTACHMENT_UNUSED must not take the same value as the content of pStencilInputAttachmentIndex
VUID-VkRenderingInputAttachmentIndexInfoKHR-pColorAttachmentInputIndices-parameterNNoneimplicitVkRenderingInputAttachmentIndexInfoKHRIf colorAttachmentCount is not 0, and pColorAttachmentInputIndices is not NULL, pColorAttachmentInputIndices must be a valid pointer to an array of colorAttachmentCount uint32_t values
VUID-VkRenderingInputAttachmentIndexInfoKHR-pDepthInputAttachmentIndex-parameterYNoneimplicitVkRenderingInputAttachmentIndexInfoKHRIf pDepthInputAttachmentIndex is not NULL, pDepthInputAttachmentIndex must be a valid pointer to a valid uint32_t value
VUID-VkRenderingInputAttachmentIndexInfoKHR-pStencilInputAttachmentIndex-parameterYNoneimplicitVkRenderingInputAttachmentIndexInfoKHRIf pStencilInputAttachmentIndex is not NULL, pStencilInputAttachmentIndex must be a valid pointer to a valid uint32_t value
VUID-VkRenderingInputAttachmentIndexInfoKHR-sType-sTypeYNoneimplicitVkRenderingInputAttachmentIndexInfoKHRsType must be VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR
VUID-VkResolveImageInfo2-commonparentYNoneimplicitVkResolveImageInfo2Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkResolveImageInfo2-dstImage-00258YNoneexplicitVkResolveImageInfo2If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkResolveImageInfo2-dstImage-00259YNoneexplicitVkResolveImageInfo2dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkResolveImageInfo2-dstImage-00276YNoneexplicitVkResolveImageInfo2If 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-00278YNoneexplicitVkResolveImageInfo2If 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-02003YNoneexplicitVkResolveImageInfo2The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkResolveImageInfo2-dstImage-02546YNoneexplicitVkResolveImageInfo2dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkResolveImageInfo2-dstImage-06764YNoneexplicitVkResolveImageInfo2dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkResolveImageInfo2-dstImage-06765YNoneexplicitVkResolveImageInfo2The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkResolveImageInfo2-dstImage-parameterYNoneimplicitVkResolveImageInfo2dstImage must be a valid VkImage handle
VUID-VkResolveImageInfo2-dstImageLayout-00262YNoneexplicitVkResolveImageInfo2dstImageLayout 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-01401YNoneexplicitVkResolveImageInfo2dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-dstImageLayout-parameterYNoneimplicitVkResolveImageInfo2dstImageLayout must be a valid VkImageLayout value
VUID-VkResolveImageInfo2-dstOffset-00274YNoneexplicitVkResolveImageInfo2For 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-00275YNoneexplicitVkResolveImageInfo2For 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-00277YNoneexplicitVkResolveImageInfo2For 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.ResolveInvalidSubresourceexplicitVkResolveImageInfo2The 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.ResolveInvalidSubresourceexplicitVkResolveImageInfo2If 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-06519NNoneexplicitVkResolveImageInfo2If 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-pNextYNoneimplicitVkResolveImageInfo2pNext must be NULL
VUID-VkResolveImageInfo2-pRegions-00255NNoneexplicitVkResolveImageInfo2The 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-parameterYNoneimplicitVkResolveImageInfo2pRegions must be a valid pointer to an array of regionCount valid VkImageResolve2 structures
VUID-VkResolveImageInfo2-regionCount-arraylengthYNoneimplicitVkResolveImageInfo2regionCount must be greater than 0
VUID-VkResolveImageInfo2-sType-sTypeYNoneimplicitVkResolveImageInfo2sType must be VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2
VUID-VkResolveImageInfo2-srcImage-00256YNoneexplicitVkResolveImageInfo2If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkResolveImageInfo2-srcImage-00257YNegativeCopyBufferImage.CopyCommands2V13explicitVkResolveImageInfo2srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT
VUID-VkResolveImageInfo2-srcImage-00271YNoneexplicitVkResolveImageInfo2If 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-00273YNoneexplicitVkResolveImageInfo2If 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-01386YNoneexplicitVkResolveImageInfo2srcImage and dstImage must have been created with the same image format
VUID-VkResolveImageInfo2-srcImage-04446YNoneexplicitVkResolveImageInfo2If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.layerCount must be 1
VUID-VkResolveImageInfo2-srcImage-04447YNoneexplicitVkResolveImageInfo2If 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-06762YNoneexplicitVkResolveImageInfo2srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkResolveImageInfo2-srcImage-06763YNoneexplicitVkResolveImageInfo2The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkResolveImageInfo2-srcImage-parameterYNoneimplicitVkResolveImageInfo2srcImage must be a valid VkImage handle
VUID-VkResolveImageInfo2-srcImageLayout-00260YNoneexplicitVkResolveImageInfo2srcImageLayout 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-01400YNoneexplicitVkResolveImageInfo2srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-srcImageLayout-parameterYNoneimplicitVkResolveImageInfo2srcImageLayout must be a valid VkImageLayout value
VUID-VkResolveImageInfo2-srcOffset-00269YNoneexplicitVkResolveImageInfo2For 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-00270YNoneexplicitVkResolveImageInfo2For 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-00272YNoneexplicitVkResolveImageInfo2For 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.ResolveInvalidSubresourceexplicitVkResolveImageInfo2The 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.ResolveInvalidSubresourceexplicitVkResolveImageInfo2If 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-parameterYNoneimplicitVkSampleLocationsInfoEXTIf sampleLocationsCount is not 0, pSampleLocations must be a valid pointer to an array of sampleLocationsCount VkSampleLocationEXT structures
VUID-VkSampleLocationsInfoEXT-sType-sTypeYNoneimplicitVkSampleLocationsInfoEXTsType must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527YNegativeDynamicState.SampleLocationsexplicitVkSampleLocationsInfoEXTsampleLocationsCount must equal sampleLocationsPerPixel × sampleLocationGridSize.width × sampleLocationGridSize.height
VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526YNegativeDynamicState.SampleLocationsexplicitVkSampleLocationsInfoEXTsampleLocationsPerPixel must be a valid VkSampleCountFlagBits value that is set in VkPhysicalDeviceSampleLocationsPropertiesEXT::sampleLocationSampleCounts
VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-WindowExtent-09210NNoneexplicitVkSamplerBlockMatchWindowCreateInfoQCOMWindowExtent must not be larger than VkPhysicalDeviceImageProcessing2PropertiesQCOM::maxBlockMatchWindow
VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-sType-sTypeYNoneimplicitVkSamplerBlockMatchWindowCreateInfoQCOMsType must be VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM
VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-windowCompareMode-parameterYNoneimplicitVkSamplerBlockMatchWindowCreateInfoQCOMwindowCompareMode must be a valid VkBlockMatchWindowCompareModeQCOM value
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437YNegativeSampler.BorderColorSwizzleexplicitVkSamplerBorderColorComponentMappingCreateInfoEXTThe borderColorSwizzle feature must be enabled
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-components-parameterYNoneimplicitVkSamplerBorderColorComponentMappingCreateInfoEXTcomponents must be a valid VkComponentMapping structure
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-sType-sTypeYNoneimplicitVkSamplerBorderColorComponentMappingCreateInfoEXTsType must be VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
VUID-VkSamplerCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXTpNext must be NULL
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXTsType must be VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-08087YNegativeDescriptorBuffer.NotEnabledGetSamplerOpaqueCaptureDescriptorDataEXTexplicitVkSamplerCaptureDescriptorDataInfoEXTsampler must have been created with VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkSamplerCreateInfo::flags
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-parameterYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXTsampler must be a valid VkSampler handle
VUID-VkSamplerCreateInfo-None-01647YNegativeSampler.FilterMinmaxexplicitVkSamplerCreateInfoIf 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.CustomBorderColorexplicitVkSamplerCreateInfoThe 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.BorderColorValueexplicitVkSamplerCreateInfoIf 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.MirrorClampToEdgeNotEnabled12explicitVkSamplerCreateInfoIf 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.MultiplaneImageSamplerConversionMismatchexplicitVkSamplerCreateInfoIf 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.MirrorClampToEdgeNotEnabledimplicitVkSamplerCreateInfoaddressModeU must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-addressModeV-parameterYNoneimplicitVkSamplerCreateInfoaddressModeV must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-addressModeW-parameterYNoneimplicitVkSamplerCreateInfoaddressModeW must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-anisotropyEnable-01070YNegativeSampler.AnisotropyFeatureDisabledexplicitVkSamplerCreateInfoIf the samplerAnisotropy feature is not enabled, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-anisotropyEnable-01071YNegativeSampler.AnisotropyFeatureEnabledexplicitVkSamplerCreateInfoIf anisotropyEnable is VK_TRUE, maxAnisotropy must be between 1.0 and VkPhysicalDeviceLimits::maxSamplerAnisotropy, inclusive
VUID-VkSamplerCreateInfo-borderColor-04011YNegativeSampler.CustomBorderColorexplicitVkSamplerCreateInfoIf 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-04442NNoneexplicitVkSamplerCreateInfoIf 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.CompareOpValueexplicitVkSamplerCreateInfoIf compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value
VUID-VkSamplerCreateInfo-compareEnable-01423YNegativeSampler.FilterMinmaxexplicitVkSamplerCreateInfoIf compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
VUID-VkSamplerCreateInfo-customBorderColors-04085YNegativeSampler.CustomBorderColorsFeatureexplicitVkSamplerCreateInfoIf 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.FragmentDensityMapEnabledexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minFilter and magFilter must be equal
VUID-VkSamplerCreateInfo-flags-02575YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-flags-02576YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-flags-02577YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfoIf 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.FragmentDensityMapEnabledexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-02579YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then compareEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-02580YNegativeFragmentShadingRate.FragmentDensityMapEnabledexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then unnormalizedCoordinates must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-06964YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minFilter and magFilter must be VK_FILTER_NEAREST
VUID-VkSamplerCreateInfo-flags-06965YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-flags-06966YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfo[If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-flags-06967YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfoIf 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.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfoIf 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-06969YNoneexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-06970YNegativeImage.ImageViewTextureSampleWeightedexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then compareEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-08110YNegativeDescriptorBuffer.NotEnabledDescriptorBufferCaptureReplayexplicitVkSamplerCreateInfoIf flags includes VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkSamplerCreateInfo-flags-parameterYNoneimplicitVkSamplerCreateInfoflags must be a valid combination of VkSamplerCreateFlagBits values
VUID-VkSamplerCreateInfo-magFilter-01081YNegativeSampler.AnisotropyFeatureEnabledexplicitVkSamplerCreateInfoIf either magFilter or minFilter is VK_FILTER_CUBIC_EXT, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-magFilter-07911YNegativeSampler.ReductionModeCubicIMGexplicitVkSamplerCreateInfoIf the VK_EXT_filter_cubic extension is not enabled and either magFilter or minFilter is VK_FILTER_CUBIC_IMG, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
VUID-VkSamplerCreateInfo-magFilter-parameterYVkLayerTest.InvalidExtEnumimplicitVkSamplerCreateInfomagFilter must be a valid VkFilter value
VUID-VkSamplerCreateInfo-maxLod-01973YNegativeSampler.BasicUsageexplicitVkSamplerCreateInfomaxLod must be greater than or equal to minLod
VUID-VkSamplerCreateInfo-minFilter-01645YNegativeYcbcr.SamplerexplicitVkSamplerCreateInfoIf 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-parameterYNoneimplicitVkSamplerCreateInfominFilter must be a valid VkFilter value
VUID-VkSamplerCreateInfo-mipLodBias-01069YNegativeSampler.BasicUsageexplicitVkSamplerCreateInfoThe absolute value of mipLodBias must be less than or equal to VkPhysicalDeviceLimits::maxSamplerLodBias
VUID-VkSamplerCreateInfo-mipmapMode-parameterYNoneimplicitVkSamplerCreateInfomipmapMode must be a valid VkSamplerMipmapMode value
VUID-VkSamplerCreateInfo-nonSeamlessCubeMap-06788YNegativeSampler.NonSeamlessCubeMapNotEnabledexplicitVkSamplerCreateInfoIf the nonSeamlessCubeMap feature is not enabled, flags must not include VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT
VUID-VkSamplerCreateInfo-pNext-06726YNegativeSampler.ReductionModeFeatureexplicitVkSamplerCreateInfoIf 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.NotEnabledDescriptorBufferCaptureReplayexplicitVkSamplerCreateInfoIf the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkSamplerCreateInfo-pNext-pNextYNoneimplicitVkSamplerCreateInfoEach 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-sTypeYNoneimplicitVkSamplerCreateInfosType must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
VUID-VkSamplerCreateInfo-sType-uniqueYNoneimplicitVkSamplerCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkSamplerCreateInfo-samplerMipLodBias-04467YNegativePortabilitySubset.SamplerexplicitVkSamplerCreateInfoIf the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias is VK_FALSE, mipLodBias must be zero
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfoIf unnormalizedCoordinates is VK_TRUE, minFilter and magFilter must be equal
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfoIf unnormalizedCoordinates is VK_TRUE, mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfoIf unnormalizedCoordinates is VK_TRUE, minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfoIf 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.AnisotropyFeatureEnabledexplicitVkSamplerCreateInfoIf unnormalizedCoordinates is VK_TRUE, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077YNegativeSampler.UnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfoIf unnormalizedCoordinates is VK_TRUE, compareEnable must be VK_FALSE
VUID-VkSamplerCubicWeightsCreateInfoQCOM-cubicWeights-parameterYNoneimplicitVkSamplerCubicWeightsCreateInfoQCOMcubicWeights must be a valid VkCubicFilterWeightsQCOM value
VUID-VkSamplerCubicWeightsCreateInfoQCOM-sType-sTypeYNoneimplicitVkSamplerCubicWeightsCreateInfoQCOMsType must be VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014YNegativeSampler.CustomBorderColorexplicitVkSamplerCustomBorderColorCreateInfoEXTIf the customBorderColorWithoutFormat feature is not enabled then format must not be VK_FORMAT_UNDEFINED
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015YNegativeSampler.CustomBorderColorFormatUndefinedexplicitVkSamplerCustomBorderColorCreateInfoEXTIf 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.CustomBorderColorexplicitVkSamplerCustomBorderColorCreateInfoEXTIf 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-parameterYNoneimplicitVkSamplerCustomBorderColorCreateInfoEXTformat must be a valid VkFormat value
VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sTypeYNoneimplicitVkSamplerCustomBorderColorCreateInfoEXTsType must be VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameterYNoneimplicitVkSamplerReductionModeCreateInforeductionMode must be a valid VkSamplerReductionMode value
VUID-VkSamplerReductionModeCreateInfo-sType-sTypeYNoneimplicitVkSamplerReductionModeCreateInfosType must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657YNegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfoIf 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfochromaFilter must be a valid VkFilter value
VUID-VkSamplerYcbcrConversionCreateInfo-components-02581YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfoIf the format has a _422 or _420 suffix, then components.g must be the identity swizzle
VUID-VkSamplerYcbcrConversionCreateInfo-components-02582YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfoIf 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.SwizzleexplicitVkSamplerYcbcrConversionCreateInfoIf 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.SwizzleexplicitVkSamplerYcbcrConversionCreateInfoIf 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.SwizzleexplicitVkSamplerYcbcrConversionCreateInfoIf 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfocomponents must be a valid VkComponentMapping structure
VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656YNegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfoIf 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.RenderPassAndFramebufferexplicitVkSamplerYcbcrConversionCreateInfoThe 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.CreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfoIf an external format conversion is being created, format must be VK_FORMAT_UNDEFINED
VUID-VkSamplerYcbcrConversionCreateInfo-format-04061YNegativeAndroidHardwareBuffer.CreateYCbCrSampler, NegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfoIf 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfoformat must be a valid VkFormat value
VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09207NNoneexplicitVkSamplerYcbcrConversionCreateInfoIf 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-09208NNoneexplicitVkSamplerYcbcrConversionCreateInfoIf 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-09209NNoneexplicitVkSamplerYcbcrConversionCreateInfoIf the pNext chain includes a VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM structure, format must be a format with 8-bit R, G, and B components
VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNextYNoneimplicitVkSamplerYcbcrConversionCreateInfoEach 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-sTypeYNoneimplicitVkSamplerYcbcrConversionCreateInfosType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
VUID-VkSamplerYcbcrConversionCreateInfo-sType-uniqueYNoneimplicitVkSamplerYcbcrConversionCreateInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651YNegativeAndroidHardwareBuffer.CreateYCbCrSampler, NegativeYcbcr.SamplerexplicitVkSamplerYcbcrConversionCreateInfoIf 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.SamplerexplicitVkSamplerYcbcrConversionCreateInfoIf 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfoxChromaOffset must be a valid VkChromaLocation value
VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfoyChromaOffset must be a valid VkChromaLocation value
VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655YNegativeYcbcr.SwizzleexplicitVkSamplerYcbcrConversionCreateInfoIf 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfoycbcrModel must be a valid VkSamplerYcbcrModelConversion value
VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748NNoneexplicitVkSamplerYcbcrConversionCreateInfoIf 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfoycbcrRange must be a valid VkSamplerYcbcrRange value
VUID-VkSamplerYcbcrConversionImageFormatProperties-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionImageFormatPropertiessType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
VUID-VkSamplerYcbcrConversionInfo-conversion-parameterYNoneimplicitVkSamplerYcbcrConversionInfoconversion must be a valid VkSamplerYcbcrConversion handle
VUID-VkSamplerYcbcrConversionInfo-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionInfosType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
VUID-VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMsType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM
VUID-VkScreenBufferFormatPropertiesQNX-sType-sTypeYNoneimplicitVkScreenBufferFormatPropertiesQNXsType must be VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX
VUID-VkScreenBufferPropertiesQNX-pNext-pNextYNoneimplicitVkScreenBufferPropertiesQNXpNext must be NULL or a pointer to a valid instance of VkScreenBufferFormatPropertiesQNX
VUID-VkScreenBufferPropertiesQNX-sType-sTypeYNoneimplicitVkScreenBufferPropertiesQNXsType must be VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
VUID-VkScreenBufferPropertiesQNX-sType-uniqueYNoneimplicitVkScreenBufferPropertiesQNXThe sType value of each struct in the pNext chain must be unique
VUID-VkScreenSurfaceCreateInfoQNX-context-04741NNoneexplicitVkScreenSurfaceCreateInfoQNXcontext must point to a valid QNX Screen struct _screen_context
VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmaskYNoneimplicitVkScreenSurfaceCreateInfoQNXflags must be 0
VUID-VkScreenSurfaceCreateInfoQNX-pNext-pNextYNoneimplicitVkScreenSurfaceCreateInfoQNXpNext must be NULL
VUID-VkScreenSurfaceCreateInfoQNX-sType-sTypeYNoneimplicitVkScreenSurfaceCreateInfoQNXsType must be VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
VUID-VkScreenSurfaceCreateInfoQNX-window-04742NNoneexplicitVkScreenSurfaceCreateInfoQNXwindow must point to a valid QNX Screen struct _screen_window
VUID-VkSemaphoreCreateInfo-flags-zerobitmaskYVkLayerTest.ZeroBitmaskimplicitVkSemaphoreCreateInfoflags must be 0
VUID-VkSemaphoreCreateInfo-pNext-06789YNegativeExternalMemorySync.ExportMetalObjectsexplicitVkSemaphoreCreateInfoIf 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-pNextYNoneimplicitVkSemaphoreCreateInfoEach 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-sTypeYNoneimplicitVkSemaphoreCreateInfosType must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
VUID-VkSemaphoreCreateInfo-sType-uniqueYNoneimplicitVkSemaphoreCreateInfoThe 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.SyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHRhandleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore's current payload was created
VUID-VkSemaphoreGetFdInfoKHR-handleType-01134NNoneexplicitVkSemaphoreGetFdInfoKHRIf 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-01135NNoneexplicitVkSemaphoreGetFdInfoKHRIf 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.SemaphoreexplicitVkSemaphoreGetFdInfoKHRhandleType must be defined as a POSIX file descriptor handle
VUID-VkSemaphoreGetFdInfoKHR-handleType-03253YNegativeExternalMemorySync.SyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHRIf 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.SyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHRIf 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-parameterYNoneimplicitVkSemaphoreGetFdInfoKHRhandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetFdInfoKHR-pNext-pNextYNoneimplicitVkSemaphoreGetFdInfoKHRpNext must be NULL
VUID-VkSemaphoreGetFdInfoKHR-sType-sTypeYNoneimplicitVkSemaphoreGetFdInfoKHRsType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133YNegativeExternalMemorySync.SyncFdExportFromImportedSemaphoreexplicitVkSemaphoreGetFdInfoKHRsemaphore 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-parameterYNoneimplicitVkSemaphoreGetFdInfoKHRsemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126YNegativeExternalMemorySync.SemaphoreexplicitVkSemaphoreGetWin32HandleInfoKHRhandleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore's current payload was created
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127NNoneexplicitVkSemaphoreGetWin32HandleInfoKHRIf 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-01129NNoneexplicitVkSemaphoreGetWin32HandleInfoKHRIf 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-01130NNoneexplicitVkSemaphoreGetWin32HandleInfoKHRIf 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.SemaphoreexplicitVkSemaphoreGetWin32HandleInfoKHRhandleType must be defined as an NT handle or a global share handle
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkSemaphoreGetWin32HandleInfoKHRhandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkSemaphoreGetWin32HandleInfoKHRpNext must be NULL
VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkSemaphoreGetWin32HandleInfoKHRsType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128YNegativeExternalMemorySync.Win32ExportFromImportedSemaphoreexplicitVkSemaphoreGetWin32HandleInfoKHRsemaphore 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-parameterYNoneimplicitVkSemaphoreGetWin32HandleInfoKHRsemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAhandleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore's current payload was created
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAIf 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-04761NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAIf 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-04762NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAhandleType must be defined as a Zircon event handle
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIAhandleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIApNext must be NULL
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIAsType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAsemaphore 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-04763NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIAsemaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameterYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIAsemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSignalInfo-pNext-pNextYNoneimplicitVkSemaphoreSignalInfopNext must be NULL
VUID-VkSemaphoreSignalInfo-sType-sTypeYNoneimplicitVkSemaphoreSignalInfosType must be VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
VUID-VkSemaphoreSignalInfo-semaphore-03257YNegativeSyncObject.SignalSemaphoreTypeexplicitVkSemaphoreSignalInfosemaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreSignalInfo-semaphore-parameterYNoneimplicitVkSemaphoreSignalInfosemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSignalInfo-value-03258YNegativeSyncObject.SignalSemaphoreValueexplicitVkSemaphoreSignalInfovalue must have a value greater than the current value of the semaphore
VUID-VkSemaphoreSignalInfo-value-03259YNegativeSyncObject.SignalSemaphoreValue, NegativeSyncObject.Sync2SignalSemaphoreValueexplicitVkSemaphoreSignalInfovalue must be less than the value of any pending semaphore signal operations
VUID-VkSemaphoreSignalInfo-value-03260YNegativeSyncObject.SignalSemaphoreValueexplicitVkSemaphoreSignalInfovalue 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-03888NNoneexplicitVkSemaphoreSubmitInfoIf the device that semaphore was created on is not a device group, deviceIndex must be 0
VUID-VkSemaphoreSubmitInfo-device-03889NNoneexplicitVkSemaphoreSubmitInfoIf the device that semaphore was created on is a device group, deviceIndex must be a valid device index
VUID-VkSemaphoreSubmitInfo-pNext-pNextYNoneimplicitVkSemaphoreSubmitInfopNext must be NULL
VUID-VkSemaphoreSubmitInfo-sType-sTypeYNoneimplicitVkSemaphoreSubmitInfosType must be VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO
VUID-VkSemaphoreSubmitInfo-semaphore-parameterYNoneimplicitVkSemaphoreSubmitInfosemaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSubmitInfo-stageMask-03929YNoneexplicitVkSemaphoreSubmitInfoIf the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkSemaphoreSubmitInfo-stageMask-03930YNoneexplicitVkSemaphoreSubmitInfoIf 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-03931YNoneexplicitVkSemaphoreSubmitInfoIf the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03932YNoneexplicitVkSemaphoreSubmitInfoIf the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03933YNoneexplicitVkSemaphoreSubmitInfoIf the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03934YNoneexplicitVkSemaphoreSubmitInfoIf the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03935YNoneexplicitVkSemaphoreSubmitInfoIf the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-04957YNoneexplicitVkSemaphoreSubmitInfoIf the subpassShading feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-VkSemaphoreSubmitInfo-stageMask-04995YNoneexplicitVkSemaphoreSubmitInfoIf the invocationMask feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkSemaphoreSubmitInfo-stageMask-07316YNoneexplicitVkSemaphoreSubmitInfoIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSemaphoreSubmitInfo-stageMask-07946YNoneexplicitVkSemaphoreSubmitInfoIf 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-parameterYNoneimplicitVkSemaphoreSubmitInfostageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkSemaphoreTypeCreateInfo-sType-sTypeYNoneimplicitVkSemaphoreTypeCreateInfosType must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279YNegativeSyncObject.SemaphoreTypeCreateInfoCore, NegativeSyncObject.SemaphoreTypeCreateInfoExtensionexplicitVkSemaphoreTypeCreateInfoIf semaphoreType is VK_SEMAPHORE_TYPE_BINARY, initialValue must be zero
VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameterYNoneimplicitVkSemaphoreTypeCreateInfosemaphoreType must be a valid VkSemaphoreType value
VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252YNegativeSyncObject.SemaphoreTypeCreateInfoCore, NegativeSyncObject.SemaphoreTypeCreateInfoExtensionexplicitVkSemaphoreTypeCreateInfoIf the timelineSemaphore feature is not enabled, semaphoreType must not equal VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreWaitInfo-flags-parameterYNoneimplicitVkSemaphoreWaitInfoflags must be a valid combination of VkSemaphoreWaitFlagBits values
VUID-VkSemaphoreWaitInfo-pNext-pNextYNoneimplicitVkSemaphoreWaitInfopNext must be NULL
VUID-VkSemaphoreWaitInfo-pSemaphores-03256YNegativeSyncObject.WaitSemaphoresTypeexplicitVkSemaphoreWaitInfoAll of the elements of pSemaphores must reference a semaphore that was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreWaitInfo-pSemaphores-parameterYNoneimplicitVkSemaphoreWaitInfopSemaphores must be a valid pointer to an array of semaphoreCount valid VkSemaphore handles
VUID-VkSemaphoreWaitInfo-pValues-parameterYNoneimplicitVkSemaphoreWaitInfopValues must be a valid pointer to an array of semaphoreCount uint64_t values
VUID-VkSemaphoreWaitInfo-sType-sTypeYNoneimplicitVkSemaphoreWaitInfosType must be VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylengthYNoneimplicitVkSemaphoreWaitInfosemaphoreCount must be greater than 0
VUID-VkSetDescriptorBufferOffsetsInfoEXT-None-09495YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTIf the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle
VUID-VkSetDescriptorBufferOffsetsInfoEXT-firstSet-08066YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTThe sum of firstSet and setCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-VkSetDescriptorBufferOffsetsInfoEXT-firstSet-09006YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTThe 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-09496YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTIf layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure
VUID-VkSetDescriptorBufferOffsetsInfoEXT-layout-parameterYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTIf layout is not VK_NULL_HANDLE, layout must be a valid VkPipelineLayout handle
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-08064YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTEach element of pBufferIndices must be less than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-08065YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTEach element of pBufferIndices must reference a valid descriptor buffer binding set by a previous call to vkCmdBindDescriptorBuffersEXT in commandBuffer
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pBufferIndices-parameterYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTpBufferIndices must be a valid pointer to an array of setCount uint32_t values
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pNext-pNextYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTpNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08061YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTThe offsets in pOffsets must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment
VUID-VkSetDescriptorBufferOffsetsInfoEXT-pOffsets-08063YNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTThe 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-08126NNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTThe 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-08127NNoneexplicitVkSetDescriptorBufferOffsetsInfoEXTThe 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-parameterYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTpOffsets must be a valid pointer to an array of setCount VkDeviceSize values
VUID-VkSetDescriptorBufferOffsetsInfoEXT-sType-sTypeYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTsType must be VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT
VUID-VkSetDescriptorBufferOffsetsInfoEXT-sType-uniqueYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTThe sType value of each struct in the pNext chain must be unique
VUID-VkSetDescriptorBufferOffsetsInfoEXT-setCount-arraylengthYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTsetCount must be greater than 0
VUID-VkSetDescriptorBufferOffsetsInfoEXT-stageFlags-parameterYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTstageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkSetDescriptorBufferOffsetsInfoEXT-stageFlags-requiredbitmaskYNoneimplicitVkSetDescriptorBufferOffsetsInfoEXTstageFlags must not be 0
VUID-VkSetLatencyMarkerInfoNV-marker-parameterYNoneimplicitVkSetLatencyMarkerInfoNVmarker must be a valid VkLatencyMarkerNV value
VUID-VkSetLatencyMarkerInfoNV-sType-sTypeYNoneimplicitVkSetLatencyMarkerInfoNVsType must be VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV
VUID-VkShaderCreateInfoEXT-codeSize-08735YNegativeShaderObject.SpirvCodeSizeexplicitVkShaderCreateInfoEXTIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, codeSize must be a multiple of 4
VUID-VkShaderCreateInfoEXT-codeSize-arraylengthYNoneimplicitVkShaderCreateInfoEXTcodeSize must be greater than 0
VUID-VkShaderCreateInfoEXT-codeType-08872YNegativeShaderObject.MissingTessellationEvaluationSubdivisionexplicitVkShaderCreateInfoEXTIf 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.MissingTessellationEvaluationOrientationexplicitVkShaderCreateInfoEXTIf 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.MissingTessellationEvaluationSpacingexplicitVkShaderCreateInfoEXTIf 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-08875NNoneexplicitVkShaderCreateInfoEXTIf 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-10064NNoneexplicitVkShaderCreateInfoEXTIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and if a push constant block is declared in a shader, then an element of pPushConstantRanges::stageFlags must match pname::stage
VUID-VkShaderCreateInfoEXT-codeType-10065NNoneexplicitVkShaderCreateInfoEXTIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and if a push constant block is declared in a shader, the block must be contained inside the element of pPushConstantRanges that matches the stage
VUID-VkShaderCreateInfoEXT-codeType-parameterYNoneimplicitVkShaderCreateInfoEXTcodeType must be a valid VkShaderCodeTypeEXT value
VUID-VkShaderCreateInfoEXT-flags-08412YNegativeShaderObject.LinkedComputeShaderexplicitVkShaderCreateInfoEXTIf 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.InvalidMeshShaderExtFlagsexplicitVkShaderCreateInfoEXTIf 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.ComputeVaryingAndFullSubgroupsexplicitVkShaderCreateInfoEXTIf 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.ComputeVaryingSubgroupsexplicitVkShaderCreateInfoEXTIf 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.InvalidFlagsexplicitVkShaderCreateInfoEXTIf stage is not VK_SHADER_STAGE_COMPUTE_BIT, flags must not include VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08486YNegativeShaderObject.InvalidFlagsexplicitVkShaderCreateInfoEXTIf 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.FlagAttachmentFragmentShadingRateexplicitVkShaderCreateInfoEXTIf the attachmentFragmentShadingRate feature is not enabled, flags must not include VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT
VUID-VkShaderCreateInfoEXT-flags-08488YNegativeShaderObject.InvalidFlagsexplicitVkShaderCreateInfoEXTIf 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.FlagFragmentDensityMapexplicitVkShaderCreateInfoEXTIf 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.InvalidRequireFullSubgroupsFlagexplicitVkShaderCreateInfoEXTIf 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.MissingSubgroupSizeControlFeatureexplicitVkShaderCreateInfoEXTIf flags includes VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, the subgroupSizeControl feature must be enabled
VUID-VkShaderCreateInfoEXT-flags-09405YNegativeShaderObject.MissingComputeFullSubgroupsexplicitVkShaderCreateInfoEXTIf flags includes VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, the computeFullSubgroups feature must be enabled
VUID-VkShaderCreateInfoEXT-flags-11005YNoneexplicitVkShaderCreateInfoEXTIf flags includes VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT, then the deviceGeneratedCommands feature must be enabled
VUID-VkShaderCreateInfoEXT-flags-11006NNoneexplicitVkShaderCreateInfoEXTIf flags includes VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT, then the identified entry point must not specify Xfb execution mode
VUID-VkShaderCreateInfoEXT-flags-parameterYNoneimplicitVkShaderCreateInfoEXTflags must be a valid combination of VkShaderCreateFlagBitsEXT values
VUID-VkShaderCreateInfoEXT-nextStage-08427YNegativeShaderObject.VertexNextStageexplicitVkShaderCreateInfoEXTIf 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.UnsupportedNextStageexplicitVkShaderCreateInfoEXTIf 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.UnsupportedNextStageexplicitVkShaderCreateInfoEXTIf the geometryShader feature is not enabled, nextStage must not include VK_SHADER_STAGE_GEOMETRY_BIT
VUID-VkShaderCreateInfoEXT-nextStage-08430YNegativeShaderObject.InvalidTessellationControlNextStage, NegativeShaderObject.TessellationControlNextStageexplicitVkShaderCreateInfoEXTIf 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.TessellationEvaluationNextStageexplicitVkShaderCreateInfoEXTIf 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.InvalidGeometryNextStageexplicitVkShaderCreateInfoEXTIf 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.InvalidFragmentNextStageexplicitVkShaderCreateInfoEXTIf 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.TaskNextStageexplicitVkShaderCreateInfoEXTIf 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.MeshNextStageexplicitVkShaderCreateInfoEXTIf stage is VK_SHADER_STAGE_MESH_BIT_EXT, nextStage must not include any bits other than VK_SHADER_STAGE_FRAGMENT_BIT
VUID-VkShaderCreateInfoEXT-nextStage-parameterYNoneimplicitVkShaderCreateInfoEXTnextStage must be a valid combination of VkShaderStageFlagBits values
VUID-VkShaderCreateInfoEXT-pCode-08448NNoneexplicitVkShaderCreateInfoEXTIf 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-08449NNoneexplicitVkShaderCreateInfoEXTIf 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-08450NNoneexplicitVkShaderCreateInfoEXTIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes variables in its interface that are declared with the ClipDistance BuiltIn decoration and variables in its interface that are declared with the CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances
VUID-VkShaderCreateInfoEXT-pCode-08451YNegativeShaderObject.MaxSampleMaskWordsexplicitVkShaderCreateInfoEXTIf 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-08452NNoneexplicitVkShaderCreateInfoEXTIf 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.TessellationPatchSizeexplicitVkShaderCreateInfoEXTIf 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.GeometryShaderMaxOutputVerticesexplicitVkShaderCreateInfoEXTIf 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.GeometryShaderMaxInvocationsexplicitVkShaderCreateInfoEXTIf 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-08456NNoneexplicitVkShaderCreateInfoEXTIf 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-08457NNoneexplicitVkShaderCreateInfoEXTIf 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-08458NNoneexplicitVkShaderCreateInfoEXTIf 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-08459NNoneexplicitVkShaderCreateInfoEXTIf 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.SpecializationAppliedexplicitVkShaderCreateInfoEXTIf 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.BinaryCodeAlignmentexplicitVkShaderCreateInfoEXTIf codeType is VK_SHADER_CODE_TYPE_BINARY_EXT, pCode must be aligned to 16 bytes
VUID-VkShaderCreateInfoEXT-pCode-08493YNegativeShaderObject.SpirvCodeAlignmentexplicitVkShaderCreateInfoEXTIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must be aligned to 4 bytes
VUID-VkShaderCreateInfoEXT-pCode-08736YNoneexplicitVkShaderCreateInfoEXTIf 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-08737YNoneexplicitVkShaderCreateInfoEXTIf 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-08738YNoneexplicitVkShaderCreateInfoEXTIf codeType is VK_SHADER_CODE_TYPE_SPIRV_EXT, pCode must declare the Shader capability for SPIR-V code
VUID-VkShaderCreateInfoEXT-pCode-08739YNoneexplicitVkShaderCreateInfoEXTIf 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.UnsupportedSpirvCapabilityexplicitVkShaderCreateInfoEXTIf 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.UnsupportedSpirvExtensionexplicitVkShaderCreateInfoEXTIf 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.SpirvExtensionRequirementsNotMetexplicitVkShaderCreateInfoEXTIf 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-parameterYNoneimplicitVkShaderCreateInfoEXTpCode must be a valid pointer to an array of codeSize bytes
VUID-VkShaderCreateInfoEXT-pName-08440YNegativeShaderObject.MissingEntrypointexplicitVkShaderCreateInfoEXTIf 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-parameterYNoneimplicitVkShaderCreateInfoEXTIf pName is not NULL, pName must be a null-terminated UTF-8 string
VUID-VkShaderCreateInfoEXT-pNext-pNextYNoneimplicitVkShaderCreateInfoEXTEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo or VkValidationFeaturesEXT
VUID-VkShaderCreateInfoEXT-pPushConstantRanges-10063NNoneexplicitVkShaderCreateInfoEXTAny two elements of pPushConstantRanges must not include the same stage in stageFlags
VUID-VkShaderCreateInfoEXT-pPushConstantRanges-parameterYNoneimplicitVkShaderCreateInfoEXTIf 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-parameterYNoneimplicitVkShaderCreateInfoEXTIf 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-parameterYNoneimplicitVkShaderCreateInfoEXTIf pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure
VUID-VkShaderCreateInfoEXT-sType-sTypeYNoneimplicitVkShaderCreateInfoEXTsType must be VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT
VUID-VkShaderCreateInfoEXT-sType-uniqueYNoneimplicitVkShaderCreateInfoEXTThe sType value of each struct in the pNext chain must be unique
VUID-VkShaderCreateInfoEXT-stage-08418YNoneexplicitVkShaderCreateInfoEXTstage must not be VK_SHADER_STAGE_ALL_GRAPHICS or VK_SHADER_STAGE_ALL
VUID-VkShaderCreateInfoEXT-stage-08419YNegativeShaderObject.CreateShadersWithoutEnabledFeaturesexplicitVkShaderCreateInfoEXTIf 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.CreateShadersWithoutEnabledFeaturesexplicitVkShaderCreateInfoEXTIf the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT
VUID-VkShaderCreateInfoEXT-stage-08421YNegativeShaderObject.CreateMeshShadersWithoutEnabledFeaturesexplicitVkShaderCreateInfoEXTIf the taskShader feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT
VUID-VkShaderCreateInfoEXT-stage-08422YNegativeShaderObject.CreateMeshShadersWithoutEnabledFeaturesexplicitVkShaderCreateInfoEXTIf the meshShader feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkShaderCreateInfoEXT-stage-08425YNegativeShaderObject.InvalidStageexplicitVkShaderCreateInfoEXTstage must not be VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkShaderCreateInfoEXT-stage-08426YNegativeShaderObject.InvalidStageexplicitVkShaderCreateInfoEXTstage must not be VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
VUID-VkShaderCreateInfoEXT-stage-parameterYNegativeShaderObject.InvalidStageimplicitVkShaderCreateInfoEXTstage must be a valid VkShaderStageFlagBits value
VUID-VkShaderModuleCreateInfo-codeSize-01085YNegativeShaderSpirv.CodeSize, NegativeShaderSpirv.CodeSizeMaintenance5, NegativeShaderSpirv.CodeSizeMaintenance5ComputeexplicitVkShaderModuleCreateInfocodeSize must be greater than 0
VUID-VkShaderModuleCreateInfo-codeSize-08735YNegativeShaderSpirv.CodeSize, NegativeShaderSpirv.CodeSizeMaintenance5, NegativeShaderSpirv.CodeSizeMaintenance5ComputeexplicitVkShaderModuleCreateInfoIf pCode is a pointer to SPIR-V code, codeSize must be a multiple of 4
VUID-VkShaderModuleCreateInfo-flags-zerobitmaskYNoneimplicitVkShaderModuleCreateInfoflags must be 0
VUID-VkShaderModuleCreateInfo-pCode-01379NNoneexplicitVkShaderModuleCreateInfoIf 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.Magic, NegativeShaderSpirv.MagicMaintenance5, NegativeShaderSpirv.MagicMaintenance5ComputeexplicitVkShaderModuleCreateInfoIf the VK_NV_glsl_shader extension is not enabled, pCode must be a pointer to SPIR-V code
VUID-VkShaderModuleCreateInfo-pCode-08736YNoneexplicitVkShaderModuleCreateInfoIf 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-08737YNegativeShaderCompute.WorkgroupMemoryExplicitLayout, NegativeShaderInterface.InvalidStaticSpirv, NegativeShaderInterface.InvalidStaticSpirvMaintenance5, NegativeShaderInterface.InvalidStaticSpirvMaintenance5Compute, NegativeShaderSpirv.NoScalarBlockLayout10, NegativeShaderSpirv.NoScalarBlockLayout12, NegativeShaderSpirv.NoUniformBufferStandardLayout10, NegativeShaderSpirv.NoUniformBufferStandardLayout12, NegativeShaderSpirv.ScalarBlockLayoutShaderCacheexplicitVkShaderModuleCreateInfoIf 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-08738YNoneexplicitVkShaderModuleCreateInfoIf pCode is a pointer to SPIR-V code, pCode must declare the Shader capability for SPIR-V code
VUID-VkShaderModuleCreateInfo-pCode-08739YNoneexplicitVkShaderModuleCreateInfoIf 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.ImageFloat16Vector, NegativeAtomic.ImageInt64, NegativeAtomic.Int64, NegativeGeometryTessellation.GeometryShaderEnabled, NegativeGeometryTessellation.GeometryStreamsCapability, NegativeGeometryTessellation.PipelineTessellationPointSize, NegativeGeometryTessellation.TessellationShaderEnabled, NegativePipeline.ShaderDrawParametersNotEnabled10, NegativePipeline.ShaderDrawParametersNotEnabled11, NegativeRayTracingPipelineNV.MissingEntrypoint, NegativeShaderCompute.WorkgroupMemoryExplicitLayout, NegativeShaderSpirv.ComputeShaderDerivativesEnabled, NegativeShaderSpirv.DemoteToHelperInvocation, NegativeShaderSpirv.DynamicUniformIndex, NegativeShaderSpirv.FragmentShaderBarycentricEnabled, NegativeShaderSpirv.FragmentShaderInterlockEnabled, NegativeShaderSpirv.QueueFamilyMemoryScope, NegativeShaderSpirv.ShaderFloatControl, NegativeShaderSpirv.ShaderImageFootprintEnabled, NegativeShaderSpirv.ShaderNotEnabled, NegativeShaderSpirv.SpirvStatelessMaintenance5, NegativeShaderSpirv.Storage8and16bitCapability, NegativeShaderSpirv.SubgroupRotate, NegativeShaderStorageImage.MissingFormatRead, NegativeShaderStorageImage.MissingFormatWrite, NegativeSubgroup.Properties, NegativeSubpass.SubpassInputWithoutFormat, PositiveAtomic.Float2explicitVkShaderModuleCreateInfoIf 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.InvalidExtensionexplicitVkShaderModuleCreateInfoIf 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, NegativeRayTracingPipelineNV.MissingEntrypoint, NegativeShaderCompute.WorkgroupMemoryExplicitLayout, NegativeShaderSpirv.NonSemanticInfoEnabled, NegativeSubgroup.PropertiesexplicitVkShaderModuleCreateInfoIf 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-parameterYNoneimplicitVkShaderModuleCreateInfopCode must be a valid pointer to an array of (codeSize/4) uint32_t values
VUID-VkShaderModuleCreateInfo-sType-sTypeYNoneimplicitVkShaderModuleCreateInfosType must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
VUID-VkShaderModuleIdentifierEXT-pNext-pNextYNoneimplicitVkShaderModuleIdentifierEXTpNext must be NULL
VUID-VkShaderModuleIdentifierEXT-sType-sTypeYNoneimplicitVkShaderModuleIdentifierEXTsType must be VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
VUID-VkShaderModuleValidationCacheCreateInfoEXT-sType-sTypeYNoneimplicitVkShaderModuleValidationCacheCreateInfoEXTsType must be VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameterYNoneimplicitVkShaderModuleValidationCacheCreateInfoEXTvalidationCache must be a valid VkValidationCacheEXT handle
VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameterYNoneimplicitVkShadingRatePaletteNVpShadingRatePaletteEntries must be a valid pointer to an array of shadingRatePaletteEntryCount valid VkShadingRatePaletteEntryNV values
VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071YNegativeFragmentShadingRate.ShadingRateImageNVexplicitVkShadingRatePaletteNVshadingRatePaletteEntryCount must be between 1 and VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRatePaletteSize, inclusive
VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylengthYNoneimplicitVkShadingRatePaletteNVshadingRatePaletteEntryCount must be greater than 0
VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sTypeYNoneimplicitVkSharedPresentSurfaceCapabilitiesKHRsType must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseBufferMemoryBindInfobindCount must be greater than 0
VUID-VkSparseBufferMemoryBindInfo-buffer-parameterYNoneimplicitVkSparseBufferMemoryBindInfobuffer must be a valid VkBuffer handle
VUID-VkSparseBufferMemoryBindInfo-pBinds-parameterYNoneimplicitVkSparseBufferMemoryBindInfopBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures
VUID-VkSparseImageFormatProperties2-pNext-pNextYNoneimplicitVkSparseImageFormatProperties2pNext must be NULL
VUID-VkSparseImageFormatProperties2-sType-sTypeYNoneimplicitVkSparseImageFormatProperties2sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
VUID-VkSparseImageMemoryBind-extent-01108YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindextent.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.ImageMemoryBindexplicitVkSparseImageMemoryBindextent.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.ImageMemoryBindexplicitVkSparseImageMemoryBindextent.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.ImageMemoryBindInvalidExtentexplicitVkSparseImageMemoryBindextent.width must be greater than 0
VUID-VkSparseImageMemoryBind-extent-09389YNegativeSparseImage.ImageMemoryBindInvalidExtentexplicitVkSparseImageMemoryBindextent.height must be greater than 0
VUID-VkSparseImageMemoryBind-extent-09390YNegativeSparseImage.ImageMemoryBindInvalidExtentexplicitVkSparseImageMemoryBindextent.depth must be greater than 0
VUID-VkSparseImageMemoryBind-flags-parameterYNoneimplicitVkSparseImageMemoryBindflags must be a valid combination of VkSparseMemoryBindFlagBits values
VUID-VkSparseImageMemoryBind-memory-01104NNoneexplicitVkSparseImageMemoryBindIf 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-01105YNegativeSparseImage.ImageMemoryBindInvalidAlignment, NegativeSparseImage.ImageMemoryBindInvalidMemoryexplicitVkSparseImageMemoryBindmemory and memoryOffset must match the memory requirements of the calling command's image, as described in section Resource Memory Association
VUID-VkSparseImageMemoryBind-memory-02732YNegativeSparseImage.QueueBindSparseMemoryType3explicitVkSparseImageMemoryBindIf 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-02733YNoneexplicitVkSparseImageMemoryBindIf 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-parameterYNoneimplicitVkSparseImageMemoryBindIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-VkSparseImageMemoryBind-offset-01107YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindoffset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image
VUID-VkSparseImageMemoryBind-offset-01109YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindoffset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image
VUID-VkSparseImageMemoryBind-offset-01111YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindoffset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image
VUID-VkSparseImageMemoryBind-subresource-parameterYNoneimplicitVkSparseImageMemoryBindsubresource must be a valid VkImageSubresource structure
VUID-VkSparseImageMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseImageMemoryBindInfobindCount must be greater than 0
VUID-VkSparseImageMemoryBindInfo-image-02901YNegativeSparseImage.ResidencyFlagexplicitVkSparseImageMemoryBindInfoimage must have been created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set
VUID-VkSparseImageMemoryBindInfo-image-parameterYNoneimplicitVkSparseImageMemoryBindInfoimage must be a valid VkImage handle
VUID-VkSparseImageMemoryBindInfo-pBinds-parameterYNoneimplicitVkSparseImageMemoryBindInfopBinds must be a valid pointer to an array of bindCount valid VkSparseImageMemoryBind structures
VUID-VkSparseImageMemoryBindInfo-subresource-01106YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindInfoThe subresource.aspectMask member of each element of pBinds must be valid for the format specified in VkImageCreateInfo when image was created
VUID-VkSparseImageMemoryBindInfo-subresource-01722YNegativeSparseImage.ImageMemoryBindexplicitVkSparseImageMemoryBindInfoThe 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.ImageMemoryBindexplicitVkSparseImageMemoryBindInfoThe subresource.arrayLayer member of each element of pBinds must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkSparseImageMemoryRequirements2-pNext-pNextYNoneimplicitVkSparseImageMemoryRequirements2pNext must be NULL
VUID-VkSparseImageMemoryRequirements2-sType-sTypeYNoneimplicitVkSparseImageMemoryRequirements2sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseImageOpaqueMemoryBindInfobindCount must be greater than 0
VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameterYNoneimplicitVkSparseImageOpaqueMemoryBindInfoimage must be a valid VkImage handle
VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103NNoneexplicitVkSparseImageOpaqueMemoryBindInfoIf 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-parameterYNoneimplicitVkSparseImageOpaqueMemoryBindInfopBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures
VUID-VkSparseMemoryBind-flags-parameterYNegativeSparseBuffer.VkSparseMemoryBindFlagsimplicitVkSparseMemoryBindflags must be a valid combination of VkSparseMemoryBindFlagBits values
VUID-VkSparseMemoryBind-memory-01096YNegativeSparseBuffer.QueueBindSparseMemoryBindAlignments, NegativeSparseBuffer.QueueBindSparseMemoryBindSizeMemoryOffset, NegativeSparseImage.QueueBindSparseMemoryType, NegativeSparseImage.QueueBindSparseMemoryType2, NegativeSparseImage.UnalignedBindOffsetsexplicitVkSparseMemoryBindIf 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.QueueBindSparseMemoryType2explicitVkSparseMemoryBindIf 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.QueueBindSparseMemoryType3explicitVkSparseMemoryBindIf 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-02731YNoneexplicitVkSparseMemoryBindIf 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.VkSparseMemoryBindMemoryimplicitVkSparseMemoryBindIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-VkSparseMemoryBind-memoryOffset-01101YNegativeSparseImage.MemoryBindOffsetexplicitVkSparseMemoryBindmemoryOffset must be less than the size of memory
VUID-VkSparseMemoryBind-resourceOffset-01099YNegativeSparseBuffer.QueueBindSparseMemoryBindResourceOffsetexplicitVkSparseMemoryBindresourceOffset must be less than the size of the resource
VUID-VkSparseMemoryBind-resourceOffset-09491YNegativeSparseBuffer.QueueBindSparseMemoryBindAlignments, NegativeSparseBuffer.QueueBindSparseMemoryBindSizeMemoryOffset, NegativeSparseBuffer.QueueBindSparseMemoryBindSizeResourceOffsetexplicitVkSparseMemoryBindIf the resource being bound is a VkBuffer, resourceOffset, memoryOffset and size 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-09492YNegativeSparseImage.UnalignedBindOffsetsexplicitVkSparseMemoryBindIf 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.QueueBindSparseMemoryBindSizeexplicitVkSparseMemoryBindsize must be greater than 0
VUID-VkSparseMemoryBind-size-01100YNegativeSparseBuffer.QueueBindSparseMemoryBindSizeResourceOffsetexplicitVkSparseMemoryBindsize must be less than or equal to the size of the resource minus resourceOffset
VUID-VkSparseMemoryBind-size-01102YNegativeSparseBuffer.QueueBindSparseMemoryBindSizeMemoryOffset, NegativeSparseImage.MemoryBindOffsetexplicitVkSparseMemoryBindsize must be less than or equal to the size of memory minus memoryOffset
VUID-VkSpecializationInfo-constantID-04911YNegativeShaderObject.SpecializationSameConstantId, NegativeShaderSpirv.DuplicatedSpecializationConstantIDexplicitVkSpecializationInfoThe constantID value of each element of pMapEntries must be unique within pMapEntries
VUID-VkSpecializationInfo-offset-00773YNegativeShaderObject.SpecializationMapEntryOffset, NegativeShaderSpirv.SpecializationOffsetOutOfBounds, NegativeShaderSpirv.SpecializationOffsetOutOfBoundsWithIdentifierexplicitVkSpecializationInfoThe offset member of each element of pMapEntries must be less than dataSize
VUID-VkSpecializationInfo-pData-parameterYNoneimplicitVkSpecializationInfoIf dataSize is not 0, pData must be a valid pointer to an array of dataSize bytes
VUID-VkSpecializationInfo-pMapEntries-00774YNegativeShaderObject.SpecializationMapEntrySize, NegativeShaderSpirv.SpecializationSizeOutOfBoundsexplicitVkSpecializationInfoThe size member of each element of pMapEntries must be less than or equal to dataSize minus offset
VUID-VkSpecializationInfo-pMapEntries-parameterYNoneimplicitVkSpecializationInfoIf 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.SpecializationSizeZeroexplicitVkSpecializationMapEntryFor 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-parameterYNoneimplicitVkStencilOpStatecompareOp must be a valid VkCompareOp value
VUID-VkStencilOpState-depthFailOp-parameterYNoneimplicitVkStencilOpStatedepthFailOp must be a valid VkStencilOp value
VUID-VkStencilOpState-failOp-parameterYNoneimplicitVkStencilOpStatefailOp must be a valid VkStencilOp value
VUID-VkStencilOpState-passOp-parameterYNoneimplicitVkStencilOpStatepassOp must be a valid VkStencilOp value
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmaskYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGPflags must be 0
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-pNext-pNextYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGPpNext must be NULL
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-sType-sTypeYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGPsType must be VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681NNoneexplicitVkStreamDescriptorSurfaceCreateInfoGGPstreamDescriptor must be a valid GgpStreamDescriptor
VUID-VkStridedDeviceAddressRegionKHR-size-04631YNegativeRayTracing.CmdTraceRaysKHRexplicitVkStridedDeviceAddressRegionKHRIf 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.CmdTraceRaysKHRexplicitVkStridedDeviceAddressRegionKHRIf size is not zero, stride must be less than or equal to the size of the buffer from which deviceAddress was queried
VUID-VkSubmitInfo-commonparentYNoneimplicitVkSubmitInfoEach 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-00075YNegativeSecondaryCommandBuffer.AsPrimaryexplicitVkSubmitInfoEach element of pCommandBuffers must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-VkSubmitInfo-pCommandBuffers-06014YNegativeDynamicRendering.SuspendingRenderPassInstanceexplicitVkSubmitInfoIf 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-06015NNoneexplicitVkSubmitInfoIf 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.SuspendingRenderPassInstanceexplicitVkSubmitInfoIf 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.SuspendingRenderPassInstanceexplicitVkSubmitInfoIf 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-parameterYNoneimplicitVkSubmitInfoIf commandBufferCount is not 0, pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles
VUID-VkSubmitInfo-pNext-03240YNegativeSyncObject.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfoIf 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.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfoIf 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.MixingProtectedResourcesexplicitVkSubmitInfoIf 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.SubmitexplicitVkSubmitInfoIf 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-pNextYPositiveCommand.DeviceLostimplicitVkSubmitInfoEach 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.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfoFor 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.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfoFor 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-parameterYNoneimplicitVkSubmitInfoIf signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles
VUID-VkSubmitInfo-pWaitDstStageMask-00078YNegativeSyncObject.StageMaskHostexplicitVkSubmitInfoEach element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-VkSubmitInfo-pWaitDstStageMask-03937YNoneexplicitVkSubmitInfoIf the synchronization2 feature is not enabled, pWaitDstStageMask must not be 0
VUID-VkSubmitInfo-pWaitDstStageMask-04090YNoneexplicitVkSubmitInfoIf the geometryShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubmitInfo-pWaitDstStageMask-04091YNoneexplicitVkSubmitInfoIf 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-04092YNoneexplicitVkSubmitInfoIf the conditionalRendering feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04093YNoneexplicitVkSubmitInfoIf the fragmentDensityMap feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04094YNoneexplicitVkSubmitInfoIf the transformFeedback feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitVkSubmitInfoIf the meshShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitVkSubmitInfoIf the taskShader feature is not enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-07318YNoneexplicitVkSubmitInfoIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubmitInfo-pWaitDstStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitVkSubmitInfoIf 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.RequiredParameter, VkLayerTest.UnrecognizedValueBadFlagimplicitVkSubmitInfoIf waitSemaphoreCount is not 0, pWaitDstStageMask must be a valid pointer to an array of waitSemaphoreCount valid combinations of VkPipelineStageFlagBits values
VUID-VkSubmitInfo-pWaitSemaphores-03239YNegativeSyncObject.QueueSubmitNoTimelineSemaphoreInfoexplicitVkSubmitInfoIf 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.QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfoFor 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.RequiredParameterimplicitVkSubmitInfoIf waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkSubmitInfo-sType-sTypeYVkLayerTest.InvalidStructSType, VkLayerTest.RequiredParameterimplicitVkSubmitInfosType must be VK_STRUCTURE_TYPE_SUBMIT_INFO
VUID-VkSubmitInfo-sType-uniqueYNoneimplicitVkSubmitInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkSubmitInfo-variableSampleLocations-06017NNoneexplicitVkSubmitInfoIf 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-03886YNoneexplicitVkSubmitInfo2If flags includes VK_SUBMIT_PROTECTED_BIT, all elements of pCommandBuffers must be protected command buffers
VUID-VkSubmitInfo2-flags-03887YNoneexplicitVkSubmitInfo2If flags does not include VK_SUBMIT_PROTECTED_BIT, each element of pCommandBuffers must not be a protected command buffer
VUID-VkSubmitInfo2-flags-parameterYNoneimplicitVkSubmitInfo2flags must be a valid combination of VkSubmitFlagBits values
VUID-VkSubmitInfo2-pCommandBufferInfos-parameterYNoneimplicitVkSubmitInfo2If commandBufferInfoCount is not 0, pCommandBufferInfos must be a valid pointer to an array of commandBufferInfoCount valid VkCommandBufferSubmitInfo structures
VUID-VkSubmitInfo2-pNext-pNextYNoneimplicitVkSubmitInfo2Each 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-parameterYNoneimplicitVkSubmitInfo2If signalSemaphoreInfoCount is not 0, pSignalSemaphoreInfos must be a valid pointer to an array of signalSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures
VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameterYNoneimplicitVkSubmitInfo2If waitSemaphoreInfoCount is not 0, pWaitSemaphoreInfos must be a valid pointer to an array of waitSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures
VUID-VkSubmitInfo2-sType-sTypeYNoneimplicitVkSubmitInfo2sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO_2
VUID-VkSubmitInfo2-sType-uniqueYNoneimplicitVkSubmitInfo2The sType value of each struct in the pNext chain must be unique
VUID-VkSubmitInfo2-semaphore-03881YNegativeSyncObject.Sync2SignalSemaphoreValueexplicitVkSubmitInfo2If 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.Sync2SignalSemaphoreValueexplicitVkSubmitInfo2If 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.Sync2QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfo2If 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.Sync2QueueSubmitTimelineSemaphoreValueexplicitVkSubmitInfo2If 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.SuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2If 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-06011NNoneexplicitVkSubmitInfo2If 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.SuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2If 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.SuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2If 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-06013NNoneexplicitVkSubmitInfo2If 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-09382YNegativeRenderPass.MissingNestedCommandBuffersFeature2explicitVkSubpassBeginInfoIf contents is VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR, then at least one of the following features must be enabled: maintenance7 nestedCommandBuffer
VUID-VkSubpassBeginInfo-contents-parameterYNoneimplicitVkSubpassBeginInfocontents must be a valid VkSubpassContents value
VUID-VkSubpassBeginInfo-pNext-pNextYNoneimplicitVkSubpassBeginInfopNext must be NULL
VUID-VkSubpassBeginInfo-sType-sTypeYNoneimplicitVkSubpassBeginInfosType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
VUID-VkSubpassDependency-dependencyFlags-02520YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyIf dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-dependencyFlags-02521YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyIf dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-dependencyFlags-parameterYNoneimplicitVkSubpassDependencydependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkSubpassDependency-dstAccessMask-00869YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyAny 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-parameterYNoneimplicitVkSubpassDependencydstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency-dstStageMask-03937YNoneexplicitVkSubpassDependencyIf the synchronization2 feature is not enabled, dstStageMask must not be 0
VUID-VkSubpassDependency-dstStageMask-04090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency-dstStageMask-04091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyIf 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-04092YNoneexplicitVkSubpassDependencyIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04093YNoneexplicitVkSubpassDependencyIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04094YNoneexplicitVkSubpassDependencyIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04095YNoneexplicitVkSubpassDependencyIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04096YNoneexplicitVkSubpassDependencyIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-07318YNoneexplicitVkSubpassDependencyIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency-dstStageMask-07949YNoneexplicitVkSubpassDependencyIf 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-parameterYNoneimplicitVkSubpassDependencydstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency-srcAccessMask-00868YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyAny 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-parameterYNoneimplicitVkSubpassDependencysrcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency-srcStageMask-03937YNoneexplicitVkSubpassDependencyIf the synchronization2 feature is not enabled, srcStageMask must not be 0
VUID-VkSubpassDependency-srcStageMask-04090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency-srcStageMask-04091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyIf 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-04092YNoneexplicitVkSubpassDependencyIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04093YNoneexplicitVkSubpassDependencyIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04094YNoneexplicitVkSubpassDependencyIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04095YNoneexplicitVkSubpassDependencyIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04096YNoneexplicitVkSubpassDependencyIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-07318YNoneexplicitVkSubpassDependencyIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency-srcStageMask-07949YNoneexplicitVkSubpassDependencyIf 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-parameterYNoneimplicitVkSubpassDependencysrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency-srcSubpass-00864YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencysrcSubpass 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.SubpassDependenciesexplicitVkSubpassDependencysrcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-srcSubpass-00872YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependencyIf 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.SubpassDependenciesexplicitVkSubpassDependencyIf 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.SubpassDependenciesexplicitVkSubpassDependencyIf srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages
VUID-VkSubpassDependency2-dependencyFlags-03090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-dependencyFlags-03091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-dependencyFlags-03092YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If dependencyFlags does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, viewOffset must be 0
VUID-VkSubpassDependency2-dependencyFlags-parameterYNoneimplicitVkSubpassDependency2dependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkSubpassDependency2-dstAccessMask-03089YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2Any 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-parameterYNoneimplicitVkSubpassDependency2dstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency2-dstStageMask-03937YNoneexplicitVkSubpassDependency2If the synchronization2 feature is not enabled, dstStageMask must not be 0
VUID-VkSubpassDependency2-dstStageMask-04090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency2-dstStageMask-04091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If 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-04092YNoneexplicitVkSubpassDependency2If the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04093YNoneexplicitVkSubpassDependency2If the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04094YNoneexplicitVkSubpassDependency2If the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04095YNoneexplicitVkSubpassDependency2If the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04096YNoneexplicitVkSubpassDependency2If the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-07318YNoneexplicitVkSubpassDependency2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency2-dstStageMask-07949YNoneexplicitVkSubpassDependency2If 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-parameterYNoneimplicitVkSubpassDependency2dstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency2-pNext-pNextYNoneimplicitVkSubpassDependency2pNext must be NULL or a pointer to a valid instance of VkMemoryBarrier2
VUID-VkSubpassDependency2-sType-sTypeYNoneimplicitVkSubpassDependency2sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
VUID-VkSubpassDependency2-sType-uniqueYNoneimplicitVkSubpassDependency2The sType value of each struct in the pNext chain must be unique
VUID-VkSubpassDependency2-srcAccessMask-03088YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2Any 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-parameterYNoneimplicitVkSubpassDependency2srcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency2-srcStageMask-03937YNoneexplicitVkSubpassDependency2If the synchronization2 feature is not enabled, srcStageMask must not be 0
VUID-VkSubpassDependency2-srcStageMask-04090YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency2-srcStageMask-04091YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If 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-04092YNoneexplicitVkSubpassDependency2If the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04093YNoneexplicitVkSubpassDependency2If the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04094YNoneexplicitVkSubpassDependency2If the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04095YNoneexplicitVkSubpassDependency2If the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04096YNoneexplicitVkSubpassDependency2If the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-07318YNoneexplicitVkSubpassDependency2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency2-srcStageMask-07949YNoneexplicitVkSubpassDependency2If 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.SubpassDependencyMasksSync2implicitVkSubpassDependency2srcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency2-srcSubpass-02245YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If 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.SubpassDependenciesexplicitVkSubpassDependency2srcSubpass 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.SubpassDependenciesexplicitVkSubpassDependency2srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-srcSubpass-06810YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages
VUID-VkSubpassDependency2-viewOffset-02530YNegativeSubpass.SubpassDependenciesexplicitVkSubpassDependency2If viewOffset is not equal to 0, srcSubpass must not be equal to dstSubpass
VUID-VkSubpassDescription-None-09431YNegativeRenderPass.MixedAttachmentSamplesAMDexplicitVkSubpassDescriptionIf 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.AttachmentsMiscexplicitVkSubpassDescriptionEach element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription-attachment-06912YNegativeRenderPass.SubpassAttachmentImageLayoutexplicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutexplicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutexplicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutexplicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutMaintenance2explicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutMaintenance2explicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescriptionIf 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.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescriptionIf 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.AttachmentsMiscexplicitVkSubpassDescriptioncolorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkSubpassDescription-flags-00856YNegativeMultiview.RenderPassCreateSubpassMissingAttributesBitNVXexplicitVkSubpassDescriptionIf 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.ShaderResolveQCOMexplicitVkSubpassDescriptionIf 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.ShaderResolveQCOMexplicitVkSubpassDescriptionIf 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-parameterYNoneimplicitVkSubpassDescriptionflags must be a valid combination of VkSubpassDescriptionFlagBits values
VUID-VkSubpassDescription-layout-02519YNegativeRenderPass.AttachmentMismatchingLayoutsColorexplicitVkSubpassDescriptionIf any attachment is used by more than one VkAttachmentReference member, then each use must use the same layout
VUID-VkSubpassDescription-linearColorAttachment-06496YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptionIf 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.MissingAttachmentexplicitVkSubpassDescriptionIf 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.MissingAttachmentexplicitVkSubpassDescriptionIf 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.AttachmentsMiscexplicitVkSubpassDescriptionIf 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.MissingAttachmentexplicitVkSubpassDescriptionAll 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.AttachmentsMiscexplicitVkSubpassDescriptionAll attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count
VUID-VkSubpassDescription-pColorAttachments-parameterYNoneimplicitVkSubpassDescriptionIf colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures
VUID-VkSubpassDescription-pDepthStencilAttachment-01418YNegativePipeline.FramebufferMixedSamples, NegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptionIf 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.MissingAttachmentexplicitVkSubpassDescriptionIf 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.AttachmentsMiscexplicitVkSubpassDescriptionpDepthStencilAttachment and pColorAttachments must not contain references to the same attachment
VUID-VkSubpassDescription-pDepthStencilAttachment-parameterYNoneimplicitVkSubpassDescriptionIf pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference structure
VUID-VkSubpassDescription-pInputAttachments-02647YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescriptionAll 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-02868NNoneexplicitVkSubpassDescriptionIf 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-parameterYNoneimplicitVkSubpassDescriptionIf inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference structures
VUID-VkSubpassDescription-pPreserveAttachments-00854YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptionEach element of pPreserveAttachments must not also be an element of any other member of the subpass description
VUID-VkSubpassDescription-pPreserveAttachments-parameterYNoneimplicitVkSubpassDescriptionIf preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values
VUID-VkSubpassDescription-pResolveAttachments-00847YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescriptionIf 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.AttachmentsMiscexplicitVkSubpassDescriptionIf 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.AttachmentsMiscexplicitVkSubpassDescriptionIf 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.MissingAttachmentexplicitVkSubpassDescriptionIf 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.MissingAttachmentexplicitVkSubpassDescriptionAll 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-parameterYNoneimplicitVkSubpassDescriptionIf 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.NonGraphicsPipelineexplicitVkSubpassDescriptionpipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
VUID-VkSubpassDescription-pipelineBindPoint-parameterYNoneimplicitVkSubpassDescriptionpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkSubpassDescription2-None-09456YNegativeRenderPass.MixedAttachmentSamplesAMDexplicitVkSubpassDescription2If 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.InputAttachmentParametersexplicitVkSubpassDescription2If 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.InputAttachmentParametersexplicitVkSubpassDescription2If 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.InputAttachmentParametersexplicitVkSubpassDescription2If 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.AttachmentsMiscexplicitVkSubpassDescription2Each element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-attachment-04563YNoneexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutMaintenance2explicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutMaintenance2explicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutSeparateDepthStencilexplicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescription2If 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.SubpassAttachmentImageLayoutSynchronization2explicitVkSubpassDescription2If 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.AttachmentsMiscexplicitVkSubpassDescription2colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkSubpassDescription2-externalFormatResolve-09335YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2If 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.AttachmentsMiscexplicitVkSubpassDescription2If 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.MissingAttachmentexplicitVkSubpassDescription2If externalFormatResolve is not enabled, each element of pResolveAttachments must have the same VkFormat as its corresponding color attachment
VUID-VkSubpassDescription2-externalFormatResolve-09344YNegativeAndroidExternalResolve.SubpassDescriptionColorAttachmentCountexplicitVkSubpassDescription2If 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.SubpassDescriptionSampleexplicitVkSubpassDescription2If 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.SubpassDescriptionViewMaskexplicitVkSubpassDescription2If 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-09347YNoneexplicitVkSubpassDescription2If 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 an attachment value of VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-externalFormatResolve-09348YNegativeAndroidExternalResolve.SubpassDescriptionMultiPlaneInputexplicitVkSubpassDescription2If 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.RenderPassCreateSubpassMissingAttributesBitNVXexplicitVkSubpassDescription2If 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-parameterYNoneimplicitVkSubpassDescription2flags must be a valid combination of VkSubpassDescriptionFlagBits values
VUID-VkSubpassDescription2-layout-02528YNegativeRenderPass.AttachmentMismatchingLayoutsColorexplicitVkSubpassDescription2If any attachment is used by more than one VkAttachmentReference2 member, then each use must use the same layout
VUID-VkSubpassDescription2-linearColorAttachment-06499YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2If 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.MissingAttachmentexplicitVkSubpassDescription2If 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.MissingAttachmentexplicitVkSubpassDescription2If 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.AttachmentsMiscexplicitVkSubpassDescription2If 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-06869YNoneexplicitVkSubpassDescription2If 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.AttachmentsMiscexplicitVkSubpassDescription2All 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.ViewMaskexplicitVkSubpassDescription2If the multiview feature is not enabled, viewMask must be 0
VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336YNegativeAndroidExternalResolve.SubpassDescriptionNullColorPropertyexplicitVkSubpassDescription2If 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.SubpassDescriptionNullColorPropertyexplicitVkSubpassDescription2If 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.MissingAttachmentexplicitVkSubpassDescription2All 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-parameterYNoneimplicitVkSubpassDescription2If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures
VUID-VkSubpassDescription2-pDepthStencilAttachment-02900YNegativeRenderPass.MissingAttachmentexplicitVkSubpassDescription2If 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.AttachmentsMiscexplicitVkSubpassDescription2An attachment must not be used in both pDepthStencilAttachment and pColorAttachments
VUID-VkSubpassDescription2-pDepthStencilAttachment-parameterYNoneimplicitVkSubpassDescription2If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkSubpassDescription2-pInputAttachments-02897YNegativeRenderPass.MissingAttachment, NegativeSubpass.InputAttachmentParametersexplicitVkSubpassDescription2All 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-parameterYNoneimplicitVkSubpassDescription2If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2 structures
VUID-VkSubpassDescription2-pNext-06870YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescription2If 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.MultisampledRenderToSingleSampledexplicitVkSubpassDescription2If 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-pNextYNoneimplicitVkSubpassDescription2Each 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.AttachmentsMiscexplicitVkSubpassDescription2Each element of pPreserveAttachments must not also be an element of any other member of the subpass description
VUID-VkSubpassDescription2-pPreserveAttachments-parameterYNoneimplicitVkSubpassDescription2If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values
VUID-VkSubpassDescription2-pResolveAttachments-03067YNegativeRenderPass.AttachmentsMiscexplicitVkSubpassDescription2If 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.MissingAttachmentexplicitVkSubpassDescription2All 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-parameterYNoneimplicitVkSubpassDescription2If 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.NonGraphicsPipelineexplicitVkSubpassDescription2pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
VUID-VkSubpassDescription2-pipelineBindPoint-parameterYNoneimplicitVkSubpassDescription2pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkSubpassDescription2-sType-sTypeYNoneimplicitVkSubpassDescription2sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
VUID-VkSubpassDescription2-sType-uniqueYNoneimplicitVkSubpassDescription2The sType value of each struct in the pNext chain must be unique
VUID-VkSubpassDescription2-viewMask-06706YNegativeSubpass.SubpassDescriptionViewMaskexplicitVkSubpassDescription2The index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveAttachmentFormatexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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-parameterYNoneimplicitVkSubpassDescriptionDepthStencilResolveIf pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06873YNegativeRenderPass.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolveIf 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.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolveIf 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.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolveIf 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.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolveIf 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.MultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolveIf 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-sTypeYNoneimplicitVkSubpassDescriptionDepthStencilResolvesType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184YNegativeRenderPass.DepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolveIf 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-pNextYNoneimplicitVkSubpassEndInfopNext must be NULL or a pointer to a valid instance of VkSubpassFragmentDensityMapOffsetEndInfoQCOM
VUID-VkSubpassEndInfo-sType-sTypeYNoneimplicitVkSubpassEndInfosType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO
VUID-VkSubpassEndInfo-sType-uniqueYNoneimplicitVkSubpassEndInfoThe sType value of each struct in the pNext chain must be unique
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf 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.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf the fragmentDensityMapOffset feature is not enabled or fragment density map is not enabled in the render pass, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06510YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf 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.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf fragmentDensityOffsetCount is not 0 and multiview is not enabled for the render pass, fragmentDensityOffsetCount must equal 1
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf 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.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf 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-parameterYNoneimplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf fragmentDensityOffsetCount is not 0, pFragmentDensityOffsets must be a valid pointer to an array of fragmentDensityOffsetCount VkOffset2D structures
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf 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.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf 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.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMIf 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-sTypeYNoneimplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMsType must be VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMThe x component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.width
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513YNegativeFragmentShadingRate.FragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOMThe y component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.height
VUID-VkSubpassResolvePerformanceQueryEXT-sType-sTypeYNoneimplicitVkSubpassResolvePerformanceQueryEXTsType must be VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameterYNoneimplicitVkSubpassSampleLocationsEXTsampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532YNegativeRenderPass.BeginSampleLocationsIndicesEXTexplicitVkSubpassSampleLocationsEXTsubpassIndex must be less than the subpassCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with
VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-renderPass-parameterYNoneimplicitVkSubpassShadingPipelineCreateInfoHUAWEIrenderPass must be a valid VkRenderPass handle
VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-sType-sTypeYNoneimplicitVkSubpassShadingPipelineCreateInfoHUAWEIsType must be VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-subpass-04946NNoneexplicitVkSubpassShadingPipelineCreateInfoHUAWEIsubpass must be created with VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI bind point
VUID-VkSubresourceHostMemcpySizeEXT-sType-sTypeYNoneimplicitVkSubresourceHostMemcpySizeEXTsType must be VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT
VUID-VkSubresourceLayout2KHR-pNext-pNextYNoneimplicitVkSubresourceLayout2KHREach 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-sTypeYNoneimplicitVkSubresourceLayout2KHRsType must be VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
VUID-VkSubresourceLayout2KHR-sType-uniqueYNoneimplicitVkSubresourceLayout2KHRThe sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceCapabilities2EXT-pNext-pNextYNoneimplicitVkSurfaceCapabilities2EXTpNext must be NULL
VUID-VkSurfaceCapabilities2EXT-sType-sTypeYNoneimplicitVkSurfaceCapabilities2EXTsType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246NNoneexplicitVkSurfaceCapabilities2EXTsupportedSurfaceCounters must not include VK_SURFACE_COUNTER_VBLANK_BIT_EXT unless the surface queried is a display surface
VUID-VkSurfaceCapabilities2KHR-pNext-pNextYNoneimplicitVkSurfaceCapabilities2KHREach 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-sTypeYNoneimplicitVkSurfaceCapabilities2KHRsType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
VUID-VkSurfaceCapabilities2KHR-sType-uniqueYNoneimplicitVkSurfaceCapabilities2KHRThe sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sTypeYNoneimplicitVkSurfaceCapabilitiesFullScreenExclusiveEXTsType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
VUID-VkSurfaceCapabilitiesPresentBarrierNV-sType-sTypeYNoneimplicitVkSurfaceCapabilitiesPresentBarrierNVsType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
VUID-VkSurfaceFormat2KHR-pNext-06750NNoneexplicitVkSurfaceFormat2KHRIf the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionPropertiesEXT structure
VUID-VkSurfaceFormat2KHR-pNext-pNextYNoneimplicitVkSurfaceFormat2KHRpNext must be NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT
VUID-VkSurfaceFormat2KHR-sType-sTypeYNoneimplicitVkSurfaceFormat2KHRsType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
VUID-VkSurfaceFormat2KHR-sType-uniqueYNoneimplicitVkSurfaceFormat2KHRThe sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceFullScreenExclusiveInfoEXT-fullScreenExclusive-parameterYNoneimplicitVkSurfaceFullScreenExclusiveInfoEXTfullScreenExclusive must be a valid VkFullScreenExclusiveEXT value
VUID-VkSurfaceFullScreenExclusiveInfoEXT-sType-sTypeYNoneimplicitVkSurfaceFullScreenExclusiveInfoEXTsType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-hmonitor-02673NNoneexplicitVkSurfaceFullScreenExclusiveWin32InfoEXThmonitor must be a valid HMONITOR
VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-sType-sTypeYNoneimplicitVkSurfaceFullScreenExclusiveWin32InfoEXTsType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
VUID-VkSurfacePresentModeCompatibilityEXT-pPresentModes-parameterYNoneimplicitVkSurfacePresentModeCompatibilityEXTIf 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-sTypeYNoneimplicitVkSurfacePresentModeCompatibilityEXTsType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT
VUID-VkSurfacePresentModeEXT-presentMode-07780YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSurfacePresentModeEXTpresentMode must be a value reported by vkGetPhysicalDeviceSurfacePresentModesKHR for the specified surface
VUID-VkSurfacePresentModeEXT-presentMode-parameterYNegativeWsi.SwapchainMaintenance1ExtensionAcquireimplicitVkSurfacePresentModeEXTpresentMode must be a valid VkPresentModeKHR value
VUID-VkSurfacePresentModeEXT-sType-sTypeYNoneimplicitVkSurfacePresentModeEXTsType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT
VUID-VkSurfacePresentScalingCapabilitiesEXT-sType-sTypeYNoneimplicitVkSurfacePresentScalingCapabilitiesEXTsType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT
VUID-VkSurfaceProtectedCapabilitiesKHR-sType-sTypeYNoneimplicitVkSurfaceProtectedCapabilitiesKHRsType must be VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
VUID-VkSwapchainCounterCreateInfoEXT-sType-sTypeYNoneimplicitVkSwapchainCounterCreateInfoEXTsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244NNoneexplicitVkSwapchainCounterCreateInfoEXTThe bits in surfaceCounters must be supported by VkSwapchainCreateInfoKHR::surface, as reported by vkGetPhysicalDeviceSurfaceCapabilities2EXT
VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameterYNoneimplicitVkSwapchainCounterCreateInfoEXTsurfaceCounters must be a valid combination of VkSurfaceCounterFlagBitsEXT values
VUID-VkSwapchainCreateInfoKHR-commonparentYNegativeParent.Device_OldSwapchain, NegativeParent.Instance_SurfaceimplicitVkSwapchainCreateInfoKHRBoth 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-01280YNoneexplicitVkSwapchainCreateInfoKHRcompositeAlpha must be one of the bits present in the supportedCompositeAlpha member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameterYNoneimplicitVkSwapchainCreateInfoKHRcompositeAlpha must be a valid VkCompositeAlphaFlagBitsKHR value
VUID-VkSwapchainCreateInfoKHR-flags-03168YNegativeWsi.SwapchainImageFormatListexplicitVkSwapchainCreateInfoKHRIf 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.InitSwapchainPotentiallyIncompatibleFlagexplicitVkSwapchainCreateInfoKHRIf 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.SwapchainImageFormatListexplicitVkSwapchainCreateInfoKHRIf 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-parameterYNegativeWsi.SwapchainMaintenance1DeferredMemoryFlagsimplicitVkSwapchainCreateInfoKHRflags must be a valid combination of VkSwapchainCreateFlagBitsKHR values
VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275YNoneexplicitVkSwapchainCreateInfoKHRimageArrayLayers 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-parameterYNoneimplicitVkSwapchainCreateInfoKHRimageColorSpace must be a valid VkColorSpaceKHR value
VUID-VkSwapchainCreateInfoKHR-imageExtent-01689YNoneexplicitVkSwapchainCreateInfoKHRimageExtent members width and height must both be non-zero
VUID-VkSwapchainCreateInfoKHR-imageFormat-01273YNoneexplicitVkSwapchainCreateInfoKHRimageFormat 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.SwapchainImageParamsexplicitVkSwapchainCreateInfoKHRThe implied image creation parameters of the swapchain must be supported as reported by vkGetPhysicalDeviceImageFormatProperties
VUID-VkSwapchainCreateInfoKHR-imageFormat-parameterYNoneimplicitVkSwapchainCreateInfoKHRimageFormat must be a valid VkFormat value
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277YNoneexplicitVkSwapchainCreateInfoKHRIf imageSharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278YNoneexplicitVkSwapchainCreateInfoKHRIf imageSharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428YNoneexplicitVkSwapchainCreateInfoKHRIf 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-parameterYNoneimplicitVkSwapchainCreateInfoKHRimageSharingMode must be a valid VkSharingMode value
VUID-VkSwapchainCreateInfoKHR-imageUsage-01384YNegativeWsi.SwapchainUsageSharedexplicitVkSwapchainCreateInfoKHRIf 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-parameterYNoneimplicitVkSwapchainCreateInfoKHRimageUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmaskYNoneimplicitVkSwapchainCreateInfoKHRimageUsage must not be 0
VUID-VkSwapchainCreateInfoKHR-minImageCount-01272YNoneexplicitVkSwapchainCreateInfoKHRminImageCount 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.SwapchainMinImageCountSharedexplicitVkSwapchainCreateInfoKHRminImageCount 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-01933YNoneexplicitVkSwapchainCreateInfoKHRIf oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a non-retired swapchain associated with native window referred to by surface
VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameterYNoneimplicitVkSwapchainCreateInfoKHRIf oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle
VUID-VkSwapchainCreateInfoKHR-pNext-02679YNegativeWsi.CreateSwapchainFullscreenExclusiveexplicitVkSwapchainCreateInfoKHRIf 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.SwapchainImageFormatListexplicitVkSwapchainCreateInfoKHRIf 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.ImageCompressionControlSwapchainWithoutFeatureexplicitVkSwapchainCreateInfoKHRIf the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionControlEXT structure
VUID-VkSwapchainCreateInfoKHR-pNext-07781YNegativeWsi.CreatingSwapchainWithExtentexplicitVkSwapchainCreateInfoKHRIf 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-07782YNoneexplicitVkSwapchainCreateInfoKHRIf 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-pNextYNoneimplicitVkSwapchainCreateInfoKHREach 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.SwapchainImageParamsexplicitVkSwapchainCreateInfoKHRIf 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.WarningSwapchainCreateInfoPreTransformexplicitVkSwapchainCreateInfoKHRpreTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-preTransform-parameterYNoneimplicitVkSwapchainCreateInfoKHRpreTransform must be a valid VkSurfaceTransformFlagBitsKHR value
VUID-VkSwapchainCreateInfoKHR-presentMode-01281YNegativeWsi.NonSupportedPresentMode, VkBestPracticesLayerTest.SwapchainCreationTestexplicitVkSwapchainCreateInfoKHRpresentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-presentMode-01427YNegativeWsi.SwapchainUsageNonSharedexplicitVkSwapchainCreateInfoKHRIf 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.SwapchainMinImageCountNonShared, VkBestPracticesLayerTest.NoCreateSwapchainPresentModes, VkBestPracticesLayerTest.SwapchainCreationTest, VkBestPracticesLayerTest.TripleBufferingTest, VkPositiveBestPracticesLayerTest.CreateFifoRelaxedSwapchainexplicitVkSwapchainCreateInfoKHR
VUID-VkSwapchainCreateInfoKHR-presentMode-parameterYNoneimplicitVkSwapchainCreateInfoKHRpresentMode must be a valid VkPresentModeKHR value
VUID-VkSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkSwapchainCreateInfoKHRsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkSwapchainCreateInfoKHR-sType-uniqueYNoneimplicitVkSwapchainCreateInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkSwapchainCreateInfoKHR-surface-01270YNegativeWsi.SwapchainNotSupportedexplicitVkSwapchainCreateInfoKHRsurface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR
VUID-VkSwapchainCreateInfoKHR-surface-parameterYNoneimplicitVkSwapchainCreateInfoKHRsurface must be a valid VkSurfaceKHR handle
VUID-VkSwapchainCreateInfoKHR-swapchainMaintenance1-10155NNoneexplicitVkSwapchainCreateInfoKHRIf the swapchainMaintenance1 feature is not enabled, then the pNext chain must not include a VkSwapchainPresentModesCreateInfoEXT structure
VUID-VkSwapchainCreateInfoKHR-swapchainMaintenance1-10156NNoneexplicitVkSwapchainCreateInfoKHRIf the swapchainMaintenance1 feature is not enabled, then the pNext chain must not include a VkSwapchainPresentScalingCreateInfoEXT structure If 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-swapchainMaintenance1-10157NNoneexplicitVkSwapchainCreateInfoKHRIf the swapchainMaintenance1 feature is not enabled, then flags must not include VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT
VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-04449NNoneexplicitVkSwapchainDisplayNativeHdrCreateInfoAMDIt is only valid to set localDimmingEnable to VK_TRUE if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported
VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sTypeYNoneimplicitVkSwapchainDisplayNativeHdrCreateInfoAMDsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
VUID-VkSwapchainLatencyCreateInfoNV-sType-sTypeYNoneimplicitVkSwapchainLatencyCreateInfoNVsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV
VUID-VkSwapchainPresentBarrierCreateInfoNV-sType-sTypeYNoneimplicitVkSwapchainPresentBarrierCreateInfoNVsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
VUID-VkSwapchainPresentFenceInfoEXT-pFences-07758YNoneexplicitVkSwapchainPresentFenceInfoEXTEach element of pFences that is not VK_NULL_HANDLE must be unsignaled
VUID-VkSwapchainPresentFenceInfoEXT-pFences-07759YNoneexplicitVkSwapchainPresentFenceInfoEXTEach element of pFences that is not VK_NULL_HANDLE must not be associated with any other queue command that has not yet completed execution on that queue
VUID-VkSwapchainPresentFenceInfoEXT-pFences-parameterYNoneimplicitVkSwapchainPresentFenceInfoEXTpFences must be a valid pointer to an array of swapchainCount valid VkFence handles
VUID-VkSwapchainPresentFenceInfoEXT-sType-sTypeYNoneimplicitVkSwapchainPresentFenceInfoEXTsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-07757YNegativeWsi.SwapchainMaintenance1ExtensionReleaseexplicitVkSwapchainPresentFenceInfoEXTswapchainCount must be equal to VkPresentInfoKHR::swapchainCount
VUID-VkSwapchainPresentFenceInfoEXT-swapchainCount-arraylengthYNoneimplicitVkSwapchainPresentFenceInfoEXTswapchainCount must be greater than 0
VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761YNegativeWsi.SwapchainMaintenance1ExtensionReleaseexplicitVkSwapchainPresentModeInfoEXTEach entry in pPresentModes must be a presentation mode specified in VkSwapchainPresentModesCreateInfoEXT::pPresentModes when creating the entry's corresponding swapchain
VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-parameterYNegativeWsi.SwapchainPresentModeInfoImplicitimplicitVkSwapchainPresentModeInfoEXTpPresentModes must be a valid pointer to an array of swapchainCount valid VkPresentModeKHR values
VUID-VkSwapchainPresentModeInfoEXT-sType-sTypeYNoneimplicitVkSwapchainPresentModeInfoEXTsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-07760YNoneexplicitVkSwapchainPresentModeInfoEXTswapchainCount must be equal to VkPresentInfoKHR::swapchainCount
VUID-VkSwapchainPresentModeInfoEXT-swapchainCount-arraylengthYNegativeWsi.SwapchainPresentModeInfoImplicitimplicitVkSwapchainPresentModeInfoEXTswapchainCount must be greater than 0
VUID-VkSwapchainPresentModesCreateInfoEXT-None-07762YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentModesCreateInfoEXTEach entry in pPresentModes must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface
VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-07763YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentModesCreateInfoEXTThe entries in pPresentModes must be a subset of the present modes returned in VkSurfacePresentModeCompatibilityEXT::pPresentModes, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-parameterYNoneimplicitVkSwapchainPresentModesCreateInfoEXTpPresentModes must be a valid pointer to an array of presentModeCount valid VkPresentModeKHR values
VUID-VkSwapchainPresentModesCreateInfoEXT-presentMode-07764YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentModesCreateInfoEXTVkSwapchainCreateInfoKHR::presentMode must be included in pPresentModes
VUID-VkSwapchainPresentModesCreateInfoEXT-presentModeCount-arraylengthYNoneimplicitVkSwapchainPresentModesCreateInfoEXTpresentModeCount must be greater than 0
VUID-VkSwapchainPresentModesCreateInfoEXT-sType-sTypeYNoneimplicitVkSwapchainPresentModesCreateInfoEXTsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07765YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTIf presentGravityX is 0, presentGravityY must be 0
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07766YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTIf presentGravityX is not 0, presentGravityY must not be 0
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07768YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTpresentGravityX must not have more than one bit set
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07772YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTpresentGravityX must be 0 or a valid x-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityX, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07773YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTIf the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, presentGravityX must be 0 or 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-parameterYNoneimplicitVkSwapchainPresentScalingCreateInfoEXTpresentGravityX must be a valid combination of VkPresentGravityFlagBitsEXT values
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07769YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTpresentGravityY must not have more than one bit set
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07774YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTpresentGravityY must be 0 or a valid y-axis present gravity for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentGravityY, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07775YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTIf the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, presentGravityY must be 0 or 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-parameterYNoneimplicitVkSwapchainPresentScalingCreateInfoEXTpresentGravityY must be a valid combination of VkPresentGravityFlagBitsEXT values
VUID-VkSwapchainPresentScalingCreateInfoEXT-sType-sTypeYNoneimplicitVkSwapchainPresentScalingCreateInfoEXTsType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07767YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTscalingBehavior must not have more than one bit set
VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07770YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTscalingBehavior must be 0 or a valid scaling method for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentScaling, given VkSwapchainCreateInfoKHR::presentMode in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07771YNegativeWsi.SwapchainMaintenance1ExtensionAcquireexplicitVkSwapchainPresentScalingCreateInfoEXTIf the swapchain is created with VkSwapchainPresentModesCreateInfoEXT, scalingBehavior must be 0 or a valid scaling method for the surface as returned in VkSurfacePresentScalingCapabilitiesEXT::supportedPresentScaling, given each present mode in VkSwapchainPresentModesCreateInfoEXT::pPresentModes in VkSurfacePresentModeEXT
VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-parameterYNoneimplicitVkSwapchainPresentScalingCreateInfoEXTscalingBehavior must be a valid combination of VkPresentScalingFlagBitsEXT values
VUID-VkSwapchainPresentScalingCreateInfoEXT-swapchainMaintenance1-10154NNoneexplicitVkSwapchainPresentScalingCreateInfoEXTIf the swapchainMaintenance1 feature is not enabled, then presentScaling, presentGravityX, and presentGravityY must be 0
VUID-VkSysmemColorSpaceFUCHSIA-colorSpace-06402NNoneexplicitVkSysmemColorSpaceFUCHSIAcolorSpace must be a ColorSpaceType as defined in fuchsia.sysmem/image_formats.fidl
VUID-VkSysmemColorSpaceFUCHSIA-pNext-pNextYNoneimplicitVkSysmemColorSpaceFUCHSIApNext must be NULL
VUID-VkSysmemColorSpaceFUCHSIA-sType-sTypeYNoneimplicitVkSysmemColorSpaceFUCHSIAsType must be VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
VUID-VkTextureLODGatherFormatPropertiesAMD-sType-sTypeYNoneimplicitVkTextureLODGatherFormatPropertiesAMDsType must be VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
VUID-VkTilePropertiesQCOM-pNext-pNextNNoneimplicitVkTilePropertiesQCOMpNext must be NULL
VUID-VkTilePropertiesQCOM-sType-sTypeYNoneimplicitVkTilePropertiesQCOMsType must be VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
VUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameterYNoneimplicitVkTimelineSemaphoreSubmitInfoIf 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-parameterYNoneimplicitVkTimelineSemaphoreSubmitInfoIf 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-sTypeYNoneimplicitVkTimelineSemaphoreSubmitInfosType must be VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
VUID-VkTraceRaysIndirectCommand2KHR-depth-03640NNoneexplicitVkTraceRaysIndirectCommand2KHRdepth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-VkTraceRaysIndirectCommand2KHR-flags-03511NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03512NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03513NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03514NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03696NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03697NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03639NNoneexplicitVkTraceRaysIndirectCommand2KHRheight must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03691NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03692NNoneexplicitVkTraceRaysIndirectCommand2KHRThe 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-03693NNoneexplicitVkTraceRaysIndirectCommand2KHRcallableShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03687NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03688NNoneexplicitVkTraceRaysIndirectCommand2KHRThe 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-03689NNoneexplicitVkTraceRaysIndirectCommand2KHRhitShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04735NNoneexplicitVkTraceRaysIndirectCommand2KHRAny 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-04736NNoneexplicitVkTraceRaysIndirectCommand2KHRAny 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-03683NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03684NNoneexplicitVkTraceRaysIndirectCommand2KHRThe 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-03685NNoneexplicitVkTraceRaysIndirectCommand2KHRmissShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03680NNoneexplicitVkTraceRaysIndirectCommand2KHRIf 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-03681NNoneexplicitVkTraceRaysIndirectCommand2KHRThe 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-03682NNoneexplicitVkTraceRaysIndirectCommand2KHRraygenShaderRecordAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03686NNoneexplicitVkTraceRaysIndirectCommand2KHRmissShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03690NNoneexplicitVkTraceRaysIndirectCommand2KHRhitShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03694NNoneexplicitVkTraceRaysIndirectCommand2KHRcallableShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-04029NNoneexplicitVkTraceRaysIndirectCommand2KHRmissShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-stride-04035NNoneexplicitVkTraceRaysIndirectCommand2KHRhitShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-stride-04041NNoneexplicitVkTraceRaysIndirectCommand2KHRcallableShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-width-03638NNoneexplicitVkTraceRaysIndirectCommand2KHRwidth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-VkTraceRaysIndirectCommand2KHR-width-03641NNoneexplicitVkTraceRaysIndirectCommand2KHRwidth × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-VkTraceRaysIndirectCommandKHR-depth-03640YNoneexplicitVkTraceRaysIndirectCommandKHRdepth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-VkTraceRaysIndirectCommandKHR-height-03639YNoneexplicitVkTraceRaysIndirectCommandKHRheight must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-VkTraceRaysIndirectCommandKHR-width-03638YNoneexplicitVkTraceRaysIndirectCommandKHRwidth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-VkTraceRaysIndirectCommandKHR-width-03641NNoneexplicitVkTraceRaysIndirectCommandKHRwidth × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-VkTransformMatrixKHR-matrix-03799NNoneexplicitVkTransformMatrixKHRThe first three columns of matrix must define an invertible 3x3 matrix
VUID-VkValidationCacheCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkValidationCacheCreateInfoEXTflags must be 0
VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01534YNoneexplicitVkValidationCacheCreateInfoEXTIf 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-01535YNoneexplicitVkValidationCacheCreateInfoEXTIf initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetValidationCacheDataEXT
VUID-VkValidationCacheCreateInfoEXT-pInitialData-parameterYNoneimplicitVkValidationCacheCreateInfoEXTIf initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes
VUID-VkValidationCacheCreateInfoEXT-pNext-pNextYNoneimplicitVkValidationCacheCreateInfoEXTpNext must be NULL
VUID-VkValidationCacheCreateInfoEXT-sType-sTypeYNoneimplicitVkValidationCacheCreateInfoEXTsType must be VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
VUID-VkValidationFeaturesEXT-pDisabledValidationFeatures-parameterYNegativeInstanceless.InstanceValidationFeaturesBadFlagsimplicitVkValidationFeaturesEXTIf disabledValidationFeatureCount is not 0, pDisabledValidationFeatures must be a valid pointer to an array of disabledValidationFeatureCount valid VkValidationFeatureDisableEXT values
VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967YNegativeGpuAV.ValidationFeaturesexplicitVkValidationFeaturesEXTIf 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 or VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968YNegativeGpuAV.ValidationFeaturesexplicitVkValidationFeaturesEXTIf 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-parameterYNegativeInstanceless.InstanceValidationFeaturesBadFlagsimplicitVkValidationFeaturesEXTIf enabledValidationFeatureCount is not 0, pEnabledValidationFeatures must be a valid pointer to an array of enabledValidationFeatureCount valid VkValidationFeatureEnableEXT values
VUID-VkValidationFeaturesEXT-sType-sTypeYNoneimplicitVkValidationFeaturesEXTsType must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
VUID-VkValidationFlagsEXT-disabledValidationCheckCount-arraylengthYNegativeInstanceless.InstanceValidationFlagsimplicitVkValidationFlagsEXTdisabledValidationCheckCount must be greater than 0
VUID-VkValidationFlagsEXT-pDisabledValidationChecks-parameterYNegativeInstanceless.InstanceValidationFlagsimplicitVkValidationFlagsEXTpDisabledValidationChecks must be a valid pointer to an array of disabledValidationCheckCount valid VkValidationCheckEXT values
VUID-VkValidationFlagsEXT-sType-sTypeYNoneimplicitVkValidationFlagsEXTsType must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
VUID-VkVertexInputAttributeDescription-binding-00621YNegativeVertexInput.InputAttributeMaxVertexInputBindingsexplicitVkVertexInputAttributeDescriptionbinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputAttributeDescription-format-00623YNegativeVertexInput.AttributeFormat, NegativeVertexInput.InputAttributeMaxVertexInputAttributes, NegativeVertexInput.InputAttributeMaxVertexInputBindingsexplicitVkVertexInputAttributeDescriptionThe format features of format must contain VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
VUID-VkVertexInputAttributeDescription-format-parameterYNoneimplicitVkVertexInputAttributeDescriptionformat must be a valid VkFormat value
VUID-VkVertexInputAttributeDescription-location-00620YNegativeVertexInput.InputAttributeMaxVertexInputAttributesexplicitVkVertexInputAttributeDescriptionlocation must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkVertexInputAttributeDescription-offset-00622YNegativeVertexInput.AttributeDescriptionOffsetexplicitVkVertexInputAttributeDescriptionoffset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset
VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457YNegativePortabilitySubset.VertexAttributesexplicitVkVertexInputAttributeDescriptionIf 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.VertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXTbinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputAttributeDescription2EXT-format-04805YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXTThe format features of format must contain VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
VUID-VkVertexInputAttributeDescription2EXT-format-parameterYNoneimplicitVkVertexInputAttributeDescription2EXTformat must be a valid VkFormat value
VUID-VkVertexInputAttributeDescription2EXT-location-06228YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXTlocation must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkVertexInputAttributeDescription2EXT-offset-06230YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXToffset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset
VUID-VkVertexInputAttributeDescription2EXT-sType-sTypeYNoneimplicitVkVertexInputAttributeDescription2EXTsType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806NNoneexplicitVkVertexInputAttributeDescription2EXTIf 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.InputBindingMaxVertexInputBindingsexplicitVkVertexInputBindingDescriptionbinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDescription-inputRate-parameterYNoneimplicitVkVertexInputBindingDescriptioninputRate must be a valid VkVertexInputRate value
VUID-VkVertexInputBindingDescription-stride-00619YNegativeVertexInput.InputBindingMaxVertexInputBindingStrideexplicitVkVertexInputBindingDescriptionstride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-VkVertexInputBindingDescription-stride-04456YNegativePortabilitySubset.VertexInputStrideexplicitVkVertexInputBindingDescriptionIf 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.VertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXTbinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDescription2EXT-divisor-04798YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXTIf the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0
VUID-VkVertexInputBindingDescription2EXT-divisor-04799YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXTIf the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1
VUID-VkVertexInputBindingDescription2EXT-divisor-06226YNegativeDynamicState.VertexInputDynamicStateDivisorexplicitVkVertexInputBindingDescription2EXTdivisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive
VUID-VkVertexInputBindingDescription2EXT-divisor-06227YNegativeDynamicState.VertexInputDynamicStateDivisorexplicitVkVertexInputBindingDescription2EXTIf divisor is not 1 then inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE
VUID-VkVertexInputBindingDescription2EXT-inputRate-parameterYNoneimplicitVkVertexInputBindingDescription2EXTinputRate must be a valid VkVertexInputRate value
VUID-VkVertexInputBindingDescription2EXT-sType-sTypeYNoneimplicitVkVertexInputBindingDescription2EXTsType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
VUID-VkVertexInputBindingDescription2EXT-stride-04797YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXTstride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-VkVertexInputBindingDivisorDescriptionKHR-binding-01869YNegativeVertexInput.DivisorExtension, NegativeVertexInput.DivisorExtensionKHRexplicitVkVertexInputBindingDivisorDescriptionKHRbinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870YNegativeVertexInput.DivisorExtension, NegativeVertexInput.DivisorExtensionKHRexplicitVkVertexInputBindingDivisorDescriptionKHRdivisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::maxVertexAttribDivisor, inclusive
VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871YNegativeVertexInput.DivisorExtension, NegativeVertexInput.DivisorExtensionKHRexplicitVkVertexInputBindingDivisorDescriptionKHRVkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding
VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229YNegativeVertexInput.DivisorDisabled, NegativeVertexInput.DivisorDisabledKHRexplicitVkVertexInputBindingDivisorDescriptionKHRIf the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1
VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228YNegativeVertexInput.DivisorInstanceRateZero, NegativeVertexInput.DivisorInstanceRateZeroKHRexplicitVkVertexInputBindingDivisorDescriptionKHRIf the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0
VUID-VkViSurfaceCreateInfoNN-flags-zerobitmaskYNoneimplicitVkViSurfaceCreateInfoNNflags must be 0
VUID-VkViSurfaceCreateInfoNN-pNext-pNextYNoneimplicitVkViSurfaceCreateInfoNNpNext must be NULL
VUID-VkViSurfaceCreateInfoNN-sType-sTypeYNoneimplicitVkViSurfaceCreateInfoNNsType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
VUID-VkViSurfaceCreateInfoNN-window-01318NNoneexplicitVkViSurfaceCreateInfoNNwindow must be a valid nn::vi::NativeWindowHandle
VUID-VkVideoBeginCodingInfoKHR-commonparentYNoneimplicitVkVideoBeginCodingInfoKHRBoth 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.BeginCodingInvalidSeparateReferenceImagesexplicitVkVideoBeginCodingInfoKHRIf 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-zerobitmaskYNoneimplicitVkVideoBeginCodingInfoKHRflags must be 0
VUID-VkVideoBeginCodingInfoKHR-pNext-pNextYNoneimplicitVkVideoBeginCodingInfoKHREach 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.BeginCodingResourcesNotUniqueexplicitVkVideoBeginCodingInfoKHREach 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.BeginCodingIncompatRefPicProfileexplicitVkVideoBeginCodingInfoKHRIf 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.BeginCodingReferenceFormatMismatchexplicitVkVideoBeginCodingInfoKHRIf 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.BeginCodingInvalidCodedOffsetexplicitVkVideoBeginCodingInfoKHRIf 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.BeginCodingInvalidCodedExtentexplicitVkVideoBeginCodingInfoKHRIf 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-parameterYNoneimplicitVkVideoBeginCodingInfoKHRIf referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoBeginCodingInfoKHR-sType-sTypeYNoneimplicitVkVideoBeginCodingInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR
VUID-VkVideoBeginCodingInfoKHR-sType-uniqueYNoneimplicitVkVideoBeginCodingInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoBeginCodingInfoKHR-slotIndex-04856YNegativeVideo.BeginCodingInvalidSlotIndex, PositiveVideo.BeginCodingOutOfBoundsSlotIndexexplicitVkVideoBeginCodingInfoKHREach 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.BeginCodingMissingDecodeDpbUsageexplicitVkVideoBeginCodingInfoKHRIf 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.BeginCodingMissingEncodeDpbUsageexplicitVkVideoBeginCodingInfoKHRIf 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.BeginCodingSessionMemoryNotBoundexplicitVkVideoBeginCodingInfoKHRvideoSession must have memory bound to all of its memory bindings returned by vkGetVideoSessionMemoryRequirementsKHR for videoSession
VUID-VkVideoBeginCodingInfoKHR-videoSession-07247YNegativeVideo.BeginCodingDecodeH264RequiresParamsexplicitVkVideoBeginCodingInfoKHRIf 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.BeginCodingDecodeH265RequiresParamsexplicitVkVideoBeginCodingInfoKHRIf 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.BeginCodingEncodeH264RequiresParamsexplicitVkVideoBeginCodingInfoKHRIf 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.BeginCodingEncodeH265RequiresParamsexplicitVkVideoBeginCodingInfoKHRIf 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-09261YNegativeVideo.BeginCodingDecodeAV1RequiresParamsexplicitVkVideoBeginCodingInfoKHRIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then videoSessionParameters must not be VK_NULL_HANDLE
VUID-VkVideoBeginCodingInfoKHR-videoSession-parameterYNoneimplicitVkVideoBeginCodingInfoKHRvideoSession must be a valid VkVideoSessionKHR handle
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-04857YNegativeVideo.BeginCodingInvalidSessionParamsexplicitVkVideoBeginCodingInfoKHRIf videoSessionParameters is not VK_NULL_HANDLE, it must have been created with videoSession specified in VkVideoSessionParametersCreateInfoKHR::videoSession
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parameterYNoneimplicitVkVideoBeginCodingInfoKHRIf videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parentNNoneimplicitVkVideoBeginCodingInfoKHRIf videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from videoSession
VUID-VkVideoCapabilitiesKHR-pNext-pNextYNoneimplicitVkVideoCapabilitiesKHREach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeAV1CapabilitiesKHR, VkVideoDecodeCapabilitiesKHR, VkVideoDecodeH264CapabilitiesKHR, VkVideoDecodeH265CapabilitiesKHR, VkVideoEncodeCapabilitiesKHR, VkVideoEncodeH264CapabilitiesKHR, or VkVideoEncodeH265CapabilitiesKHR
VUID-VkVideoCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoCapabilitiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR
VUID-VkVideoCapabilitiesKHR-sType-uniqueYNoneimplicitVkVideoCapabilitiesKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoCodingControlInfoKHR-flags-07018YNegativeVideo.EncodeRateControlMissingChainexplicitVkVideoCodingControlInfoKHRIf flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, then the pNext chain must include a VkVideoEncodeRateControlInfoKHR structure
VUID-VkVideoCodingControlInfoKHR-flags-08349YNegativeVideo.EncodeQualityLevelControlMissingChainexplicitVkVideoCodingControlInfoKHRIf flags includes VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR, then the pNext chain must include a VkVideoEncodeQualityLevelInfoKHR structure
VUID-VkVideoCodingControlInfoKHR-flags-parameterYNoneimplicitVkVideoCodingControlInfoKHRflags must be a valid combination of VkVideoCodingControlFlagBitsKHR values
VUID-VkVideoCodingControlInfoKHR-flags-requiredbitmaskYNoneimplicitVkVideoCodingControlInfoKHRflags must not be 0
VUID-VkVideoCodingControlInfoKHR-pNext-pNextYNoneimplicitVkVideoCodingControlInfoKHREach 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-sTypeYNoneimplicitVkVideoCodingControlInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR
VUID-VkVideoCodingControlInfoKHR-sType-uniqueYNoneimplicitVkVideoCodingControlInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoDecodeAV1CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoDecodeAV1CapabilitiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR
VUID-VkVideoDecodeAV1DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoDecodeAV1DpbSlotInfoKHRpStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeAV1ReferenceInfo value
VUID-VkVideoDecodeAV1DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeAV1DpbSlotInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR
VUID-VkVideoDecodeAV1PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoDecodeAV1PictureInfoKHRpStdPictureInfo must be a valid pointer to a valid StdVideoDecodeAV1PictureInfo value
VUID-VkVideoDecodeAV1PictureInfoKHR-pTileOffsets-parameterYNoneimplicitVkVideoDecodeAV1PictureInfoKHRpTileOffsets must be a valid pointer to an array of tileCount uint32_t values
VUID-VkVideoDecodeAV1PictureInfoKHR-pTileSizes-parameterYNoneimplicitVkVideoDecodeAV1PictureInfoKHRpTileSizes must be a valid pointer to an array of tileCount uint32_t values
VUID-VkVideoDecodeAV1PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeAV1PictureInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR
VUID-VkVideoDecodeAV1PictureInfoKHR-tileCount-arraylengthYNoneimplicitVkVideoDecodeAV1PictureInfoKHRtileCount must be greater than 0
VUID-VkVideoDecodeAV1ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeAV1ProfileInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR
VUID-VkVideoDecodeAV1SessionParametersCreateInfoKHR-pStdSequenceHeader-parameterYNoneimplicitVkVideoDecodeAV1SessionParametersCreateInfoKHRpStdSequenceHeader must be a valid pointer to a valid StdVideoAV1SequenceHeader value
VUID-VkVideoDecodeAV1SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeAV1SessionParametersCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoDecodeCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoDecodeCapabilitiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR
VUID-VkVideoDecodeH264CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264CapabilitiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR
VUID-VkVideoDecodeH264DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoDecodeH264DpbSlotInfoKHRpStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH264ReferenceInfo value
VUID-VkVideoDecodeH264DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264DpbSlotInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR
VUID-VkVideoDecodeH264PictureInfoKHR-pSliceOffsets-parameterYNoneimplicitVkVideoDecodeH264PictureInfoKHRpSliceOffsets must be a valid pointer to an array of sliceCount uint32_t values
VUID-VkVideoDecodeH264PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoDecodeH264PictureInfoKHRpStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH264PictureInfo value
VUID-VkVideoDecodeH264PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264PictureInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR
VUID-VkVideoDecodeH264PictureInfoKHR-sliceCount-arraylengthYNoneimplicitVkVideoDecodeH264PictureInfoKHRsliceCount must be greater than 0
VUID-VkVideoDecodeH264ProfileInfoKHR-pictureLayout-parameterYNoneimplicitVkVideoDecodeH264ProfileInfoKHRIf pictureLayout is not 0, pictureLayout must be a valid VkVideoDecodeH264PictureLayoutFlagBitsKHR value
VUID-VkVideoDecodeH264ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264ProfileInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-None-04825YNegativeVideo.DecodeH264ParametersAddInfoUniquenessexplicitVkVideoDecodeH264SessionParametersAddInfoKHRThe seq_parameter_set_id member of each StdVideoH264SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-None-04826YNegativeVideo.DecodeH264ParametersAddInfoUniquenessexplicitVkVideoDecodeH264SessionParametersAddInfoKHRThe 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-parameterYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoKHRIf stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-pStdSPSs-parameterYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoKHRIf stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values
VUID-VkVideoDecodeH264SessionParametersAddInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR
VUID-VkVideoDecodeH264SessionParametersCreateInfoKHR-pParametersAddInfo-parameterYNoneimplicitVkVideoDecodeH264SessionParametersCreateInfoKHRIf pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH264SessionParametersAddInfoKHR structure
VUID-VkVideoDecodeH264SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH264SessionParametersCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoDecodeH265CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265CapabilitiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR
VUID-VkVideoDecodeH265DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoDecodeH265DpbSlotInfoKHRpStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH265ReferenceInfo value
VUID-VkVideoDecodeH265DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265DpbSlotInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR
VUID-VkVideoDecodeH265PictureInfoKHR-pSliceSegmentOffsets-parameterYNoneimplicitVkVideoDecodeH265PictureInfoKHRpSliceSegmentOffsets must be a valid pointer to an array of sliceSegmentCount uint32_t values
VUID-VkVideoDecodeH265PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoDecodeH265PictureInfoKHRpStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH265PictureInfo value
VUID-VkVideoDecodeH265PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265PictureInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR
VUID-VkVideoDecodeH265PictureInfoKHR-sliceSegmentCount-arraylengthYNoneimplicitVkVideoDecodeH265PictureInfoKHRsliceSegmentCount must be greater than 0
VUID-VkVideoDecodeH265ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265ProfileInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04833YNegativeVideo.DecodeH265ParametersAddInfoUniquenessexplicitVkVideoDecodeH265SessionParametersAddInfoKHRThe 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.DecodeH265ParametersAddInfoUniquenessexplicitVkVideoDecodeH265SessionParametersAddInfoKHRThe 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.DecodeH265ParametersAddInfoUniquenessexplicitVkVideoDecodeH265SessionParametersAddInfoKHRThe 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-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoKHRIf stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdSPSs-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoKHRIf stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-pStdVPSs-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoKHRIf stdVPSCount is not 0, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR
VUID-VkVideoDecodeH265SessionParametersCreateInfoKHR-pParametersAddInfo-parameterYNoneimplicitVkVideoDecodeH265SessionParametersCreateInfoKHRIf pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH265SessionParametersAddInfoKHR structure
VUID-VkVideoDecodeH265SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeH265SessionParametersCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoDecodeInfoKHR-dstPictureResource-parameterYNoneimplicitVkVideoDecodeInfoKHRdstPictureResource must be a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoDecodeInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoDecodeInfoKHRflags must be 0
VUID-VkVideoDecodeInfoKHR-pNext-pNextYNoneimplicitVkVideoDecodeInfoKHREach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeAV1PictureInfoKHR, VkVideoDecodeH264PictureInfoKHR, VkVideoDecodeH265PictureInfoKHR, or VkVideoInlineQueryInfoKHR
VUID-VkVideoDecodeInfoKHR-pPictureResource-07172YNegativeVideo.DecodeReferenceResourceNullexplicitVkVideoDecodeInfoKHRThe pPictureResource member of each element of pReferenceSlots must not be NULL
VUID-VkVideoDecodeInfoKHR-pReferenceSlots-parameterYNoneimplicitVkVideoDecodeInfoKHRIf referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-07168YNegativeVideo.DecodeInvalidSetupSlotIndexexplicitVkVideoDecodeInfoKHRIf pSetupReferenceSlot is not NULL, then its slotIndex member must not be negative
VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-07169YNegativeVideo.DecodeSetupResourceNullexplicitVkVideoDecodeInfoKHRIf pSetupReferenceSlot is not NULL, then its pPictureResource must not be NULL
VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-parameterYNoneimplicitVkVideoDecodeInfoKHRIf pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure
VUID-VkVideoDecodeInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR
VUID-VkVideoDecodeInfoKHR-sType-uniqueYNoneimplicitVkVideoDecodeInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoDecodeInfoKHR-slotIndex-07171YNegativeVideo.DecodeInvalidRefSlotIndexexplicitVkVideoDecodeInfoKHRThe slotIndex member of each element of pReferenceSlots must not be negative
VUID-VkVideoDecodeInfoKHR-srcBuffer-07165YNegativeVideo.DecodeBufferMissingDecodeSrcUsageexplicitVkVideoDecodeInfoKHRsrcBuffer must have been created with VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR set
VUID-VkVideoDecodeInfoKHR-srcBuffer-parameterYNoneimplicitVkVideoDecodeInfoKHRsrcBuffer must be a valid VkBuffer handle
VUID-VkVideoDecodeInfoKHR-srcBufferOffset-07166YNegativeVideo.DecodeBufferOffsetOutOfBoundsexplicitVkVideoDecodeInfoKHRsrcBufferOffset must be less than the size of srcBuffer
VUID-VkVideoDecodeInfoKHR-srcBufferRange-07167YNegativeVideo.DecodeBufferOffsetOutOfBounds, NegativeVideo.DecodeBufferRangeOutOfBoundsexplicitVkVideoDecodeInfoKHRsrcBufferRange must be less than or equal to the size of srcBuffer minus srcBufferOffset
VUID-VkVideoDecodeUsageInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeUsageInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR
VUID-VkVideoDecodeUsageInfoKHR-videoUsageHints-parameterYNoneimplicitVkVideoDecodeUsageInfoKHRvideoUsageHints must be a valid combination of VkVideoDecodeUsageFlagBitsKHR values
VUID-VkVideoEncodeCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeCapabilitiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
VUID-VkVideoEncodeH264CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264CapabilitiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR
VUID-VkVideoEncodeH264DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoEncodeH264DpbSlotInfoKHRpStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH264ReferenceInfo value
VUID-VkVideoEncodeH264DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264DpbSlotInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR
VUID-VkVideoEncodeH264GopRemainingFrameInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264GopRemainingFrameInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR
VUID-VkVideoEncodeH264NaluSliceInfoKHR-pNext-pNextNNoneimplicitVkVideoEncodeH264NaluSliceInfoKHRpNext must be NULL
VUID-VkVideoEncodeH264NaluSliceInfoKHR-pStdSliceHeader-parameterYNoneimplicitVkVideoEncodeH264NaluSliceInfoKHRpStdSliceHeader must be a valid pointer to a valid StdVideoEncodeH264SliceHeader value
VUID-VkVideoEncodeH264NaluSliceInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264NaluSliceInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR
VUID-VkVideoEncodeH264PictureInfoKHR-flags-08304YNegativeVideo.EncodeCapsH264GenPrefixNaluexplicitVkVideoEncodeH264PictureInfoKHRIf 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.EncodeCapsH264WeightTableexplicitVkVideoEncodeH264PictureInfoKHRIf 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.EncodeCapsH264DifferentSliceTypesexplicitVkVideoEncodeH264PictureInfoKHRIf 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.EncodeCapsH264MoreSlicesThanMBsexplicitVkVideoEncodeH264PictureInfoKHRnaluSliceEntryCount must be between 1 and VkVideoEncodeH264CapabilitiesKHR::maxSliceCount, inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeH264PictureInfoKHR-naluSliceEntryCount-arraylengthYNoneimplicitVkVideoEncodeH264PictureInfoKHRnaluSliceEntryCount must be greater than 0
VUID-VkVideoEncodeH264PictureInfoKHR-pNaluSliceEntries-parameterYNoneimplicitVkVideoEncodeH264PictureInfoKHRpNaluSliceEntries must be a valid pointer to an array of naluSliceEntryCount valid VkVideoEncodeH264NaluSliceInfoKHR structures
VUID-VkVideoEncodeH264PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoEncodeH264PictureInfoKHRpStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH264PictureInfo value
VUID-VkVideoEncodeH264PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264PictureInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR
VUID-VkVideoEncodeH264ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264ProfileInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR
VUID-VkVideoEncodeH264QualityLevelPropertiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264QualityLevelPropertiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR
VUID-VkVideoEncodeH264RateControlInfoKHR-consecutiveBFrameCount-08285YNegativeVideo.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRIf consecutiveBFrameCount is not 0, then it must be less than gopFrameCount
VUID-VkVideoEncodeH264RateControlInfoKHR-flags-08280YNegativeVideo.EncodeRateControlH264HrdComplianceexplicitVkVideoEncodeH264RateControlInfoKHRIf 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.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRIf 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.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRIf 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.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRIf flags contains VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR, then gopFrameCount must be greater than 0
VUID-VkVideoEncodeH264RateControlInfoKHR-flags-parameterYNoneimplicitVkVideoEncodeH264RateControlInfoKHRflags must be a valid combination of VkVideoEncodeH264RateControlFlagBitsKHR values
VUID-VkVideoEncodeH264RateControlInfoKHR-idrPeriod-08284YNegativeVideo.EncodeRateControlH264InvalidCodecInfoexplicitVkVideoEncodeH264RateControlInfoKHRIf idrPeriod is not 0, then it must be greater than or equal to gopFrameCount
VUID-VkVideoEncodeH264RateControlInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264RateControlInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-maxFrameSize-parameterYNoneimplicitVkVideoEncodeH264RateControlLayerInfoKHRmaxFrameSize must be a valid VkVideoEncodeH264FrameSizeKHR structure
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-maxQp-parameterYNoneimplicitVkVideoEncodeH264RateControlLayerInfoKHRmaxQp must be a valid VkVideoEncodeH264QpKHR structure
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-minQp-parameterYNoneimplicitVkVideoEncodeH264RateControlLayerInfoKHRminQp must be a valid VkVideoEncodeH264QpKHR structure
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264RateControlLayerInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR
VUID-VkVideoEncodeH264RateControlLayerInfoKHR-useMaxQp-08287YNegativeVideo.EncodeRateControlH264MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlH264PerPicTypeQp, NegativeVideo.EncodeRateControlH264QpRange, NegativeVideo.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRIf 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.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRIf 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.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRIf 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.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRIf 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.EncodeRateControlStateMismatchH264explicitVkVideoEncodeH264RateControlLayerInfoKHRIf 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-sTypeYNoneimplicitVkVideoEncodeH264SessionCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-None-04837YNegativeVideo.EncodeH264ParametersAddInfoUniquenessexplicitVkVideoEncodeH264SessionParametersAddInfoKHRThe seq_parameter_set_id member of each StdVideoH264SequenceParameterSet structure specified in the elements of pStdSPSs must be unique within pStdSPSs
VUID-VkVideoEncodeH264SessionParametersAddInfoKHR-None-04838YNegativeVideo.EncodeH264ParametersAddInfoUniquenessexplicitVkVideoEncodeH264SessionParametersAddInfoKHRThe 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-parameterYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoKHRIf 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-parameterYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoKHRIf 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-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersCreateInfoKHR-pParametersAddInfo-parameterYNoneimplicitVkVideoEncodeH264SessionParametersCreateInfoKHRIf pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH264SessionParametersAddInfoKHR structure
VUID-VkVideoEncodeH264SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersFeedbackInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersFeedbackInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersGetInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersGetInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR
VUID-VkVideoEncodeH264SessionParametersGetInfoKHR-writeStdSPS-08279YNegativeVideo.GetEncodedSessionParamsH264explicitVkVideoEncodeH264SessionParametersGetInfoKHRAt least one of writeStdSPS and writeStdPPS must be VK_TRUE
VUID-VkVideoEncodeH265CapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265CapabilitiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR
VUID-VkVideoEncodeH265DpbSlotInfoKHR-pStdReferenceInfo-parameterYNoneimplicitVkVideoEncodeH265DpbSlotInfoKHRpStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH265ReferenceInfo value
VUID-VkVideoEncodeH265DpbSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265DpbSlotInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR
VUID-VkVideoEncodeH265GopRemainingFrameInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265GopRemainingFrameInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR
VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-pNext-pNextNNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoKHRpNext must be NULL
VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-pStdSliceSegmentHeader-parameterYNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoKHRpStdSliceSegmentHeader must be a valid pointer to a valid StdVideoEncodeH265SliceSegmentHeader value
VUID-VkVideoEncodeH265NaluSliceSegmentInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08316YNegativeVideo.EncodeCapsH265WeightTableexplicitVkVideoEncodeH265PictureInfoKHRIf 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.EncodeCapsH265DifferentSliceSegmentTypesexplicitVkVideoEncodeH265PictureInfoKHRIf 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.EncodeCapsH265MultipleTilesPerSliceSegmentexplicitVkVideoEncodeH265PictureInfoKHRIf 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.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitVkVideoEncodeH265PictureInfoKHRIf 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.EncodeCapsH265MoreSliceSegmentsThanCTBsexplicitVkVideoEncodeH265PictureInfoKHRnaluSliceSegmentEntryCount must be between 1 and VkVideoEncodeH265CapabilitiesKHR::maxSliceSegmentCount, inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeH265PictureInfoKHR-naluSliceSegmentEntryCount-arraylengthYNoneimplicitVkVideoEncodeH265PictureInfoKHRnaluSliceSegmentEntryCount must be greater than 0
VUID-VkVideoEncodeH265PictureInfoKHR-pNaluSliceSegmentEntries-parameterYNoneimplicitVkVideoEncodeH265PictureInfoKHRpNaluSliceSegmentEntries must be a valid pointer to an array of naluSliceSegmentEntryCount valid VkVideoEncodeH265NaluSliceSegmentInfoKHR structures
VUID-VkVideoEncodeH265PictureInfoKHR-pStdPictureInfo-parameterYNoneimplicitVkVideoEncodeH265PictureInfoKHRpStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH265PictureInfo value
VUID-VkVideoEncodeH265PictureInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265PictureInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR
VUID-VkVideoEncodeH265ProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265ProfileInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR
VUID-VkVideoEncodeH265QualityLevelPropertiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265QualityLevelPropertiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR
VUID-VkVideoEncodeH265RateControlInfoKHR-consecutiveBFrameCount-08296YNegativeVideo.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRIf consecutiveBFrameCount is not 0, then it must be less than gopFrameCount
VUID-VkVideoEncodeH265RateControlInfoKHR-flags-08291YNegativeVideo.EncodeRateControlH265HrdComplianceexplicitVkVideoEncodeH265RateControlInfoKHRIf 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.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRIf 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.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRIf 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.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRIf flags contains VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR, then gopFrameCount must be greater than 0
VUID-VkVideoEncodeH265RateControlInfoKHR-flags-parameterYNoneimplicitVkVideoEncodeH265RateControlInfoKHRflags must be a valid combination of VkVideoEncodeH265RateControlFlagBitsKHR values
VUID-VkVideoEncodeH265RateControlInfoKHR-idrPeriod-08295YNegativeVideo.EncodeRateControlH265InvalidCodecInfoexplicitVkVideoEncodeH265RateControlInfoKHRIf idrPeriod is not 0, then it must be greater than or equal to gopFrameCount
VUID-VkVideoEncodeH265RateControlInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265RateControlInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-maxFrameSize-parameterYNoneimplicitVkVideoEncodeH265RateControlLayerInfoKHRmaxFrameSize must be a valid VkVideoEncodeH265FrameSizeKHR structure
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-maxQp-parameterYNoneimplicitVkVideoEncodeH265RateControlLayerInfoKHRmaxQp must be a valid VkVideoEncodeH265QpKHR structure
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-minQp-parameterYNoneimplicitVkVideoEncodeH265RateControlLayerInfoKHRminQp must be a valid VkVideoEncodeH265QpKHR structure
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265RateControlLayerInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR
VUID-VkVideoEncodeH265RateControlLayerInfoKHR-useMaxQp-08298YNegativeVideo.EncodeRateControlH265MinQpGreaterThanMaxQp, NegativeVideo.EncodeRateControlH265PerPicTypeQp, NegativeVideo.EncodeRateControlH265QpRange, NegativeVideo.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRIf 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.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRIf 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.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRIf 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.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRIf 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.EncodeRateControlStateMismatchH265explicitVkVideoEncodeH265RateControlLayerInfoKHRIf 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-sTypeYNoneimplicitVkVideoEncodeH265SessionCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersAddInfoKHR-None-06438YNegativeVideo.EncodeH265ParametersAddInfoUniquenessexplicitVkVideoEncodeH265SessionParametersAddInfoKHRThe 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.EncodeH265ParametersAddInfoUniquenessexplicitVkVideoEncodeH265SessionParametersAddInfoKHRThe 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.EncodeH265ParametersAddInfoUniquenessexplicitVkVideoEncodeH265SessionParametersAddInfoKHRThe 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-parameterYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoKHRIf 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-parameterYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoKHRIf 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-parameterYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoKHRIf 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-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersCreateInfoKHR-pParametersAddInfo-parameterYNoneimplicitVkVideoEncodeH265SessionParametersCreateInfoKHRIf pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH265SessionParametersAddInfoKHR structure
VUID-VkVideoEncodeH265SessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersFeedbackInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersFeedbackInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersGetInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersGetInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR
VUID-VkVideoEncodeH265SessionParametersGetInfoKHR-writeStdVPS-08290YNegativeVideo.GetEncodedSessionParamsH265explicitVkVideoEncodeH265SessionParametersGetInfoKHRAt least one of writeStdVPS, writeStdSPS, and writeStdPPS must be VK_TRUE
VUID-VkVideoEncodeInfoKHR-dstBuffer-08236YNegativeVideo.EncodeBufferMissingEncodeDstUsageexplicitVkVideoEncodeInfoKHRdstBuffer must have been created with VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR set
VUID-VkVideoEncodeInfoKHR-dstBuffer-parameterYNoneimplicitVkVideoEncodeInfoKHRdstBuffer must be a valid VkBuffer handle
VUID-VkVideoEncodeInfoKHR-dstBufferOffset-08237YNegativeVideo.EncodeBufferOffsetOutOfBoundsexplicitVkVideoEncodeInfoKHRdstBufferOffset must be less than the size of dstBuffer
VUID-VkVideoEncodeInfoKHR-dstBufferRange-08238YNegativeVideo.EncodeBufferOffsetOutOfBounds, NegativeVideo.EncodeBufferRangeOutOfBoundsexplicitVkVideoEncodeInfoKHRdstBufferRange must be less than or equal to the size of dstBuffer minus dstBufferOffset
VUID-VkVideoEncodeInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEncodeInfoKHRflags must be 0
VUID-VkVideoEncodeInfoKHR-pNext-pNextYNoneimplicitVkVideoEncodeInfoKHREach 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.EncodeReferenceResourceNullexplicitVkVideoEncodeInfoKHRThe pPictureResource member of each element of pReferenceSlots must not be NULL
VUID-VkVideoEncodeInfoKHR-pReferenceSlots-parameterYNoneimplicitVkVideoEncodeInfoKHRIf referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-08239YNegativeVideo.EncodeInvalidSetupSlotIndexexplicitVkVideoEncodeInfoKHRIf pSetupReferenceSlot is not NULL, then its slotIndex member must not be negative
VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-08240YNegativeVideo.EncodeSetupResourceNullexplicitVkVideoEncodeInfoKHRIf pSetupReferenceSlot is not NULL, then its pPictureResource must not be NULL
VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-parameterYNoneimplicitVkVideoEncodeInfoKHRIf pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure
VUID-VkVideoEncodeInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR
VUID-VkVideoEncodeInfoKHR-sType-uniqueYNoneimplicitVkVideoEncodeInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeInfoKHR-slotIndex-08241YNegativeVideo.EncodeInvalidRefSlotIndexexplicitVkVideoEncodeInfoKHRThe slotIndex member of each element of pReferenceSlots must not be negative
VUID-VkVideoEncodeInfoKHR-srcPictureResource-parameterYNoneimplicitVkVideoEncodeInfoKHRsrcPictureResource must be a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoEncodeQualityLevelInfoKHR-qualityLevel-08311YNegativeVideo.CreateSessionParamsInvalidEncodeQualityLevel, NegativeVideo.EncodeQualityLevelControlInvalidQualityLevelexplicitVkVideoEncodeQualityLevelInfoKHRqualityLevel must be less than VkVideoEncodeCapabilitiesKHR::maxQualityLevels, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeQualityLevelInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeQualityLevelInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR
VUID-VkVideoEncodeQualityLevelPropertiesKHR-pNext-pNextYNoneimplicitVkVideoEncodeQualityLevelPropertiesKHREach 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-sTypeYNoneimplicitVkVideoEncodeQualityLevelPropertiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR
VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-uniqueYNoneimplicitVkVideoEncodeQualityLevelPropertiesKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeRateControlInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEncodeRateControlInfoKHRflags must be 0
VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08245YNegativeVideo.EncodeRateControlTooManyLayersexplicitVkVideoEncodeRateControlInfoKHRlayerCount member must be less than or equal to VkVideoEncodeCapabilitiesKHR::maxRateControlLayers, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video profile
VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08357YNegativeVideo.EncodeRateControlVirtualBufferSizeexplicitVkVideoEncodeRateControlInfoKHRIf layerCount is not zero, then virtualBufferSizeInMs must be greater than zero
VUID-VkVideoEncodeRateControlInfoKHR-layerCount-08358YNegativeVideo.EncodeRateControlVirtualBufferSizeexplicitVkVideoEncodeRateControlInfoKHRIf layerCount is not zero, then initialVirtualBufferSizeInMs must be less than virtualBufferSizeInMs
VUID-VkVideoEncodeRateControlInfoKHR-pLayers-08276YNegativeVideo.EncodeRateControlLayerBitrateexplicitVkVideoEncodeRateControlInfoKHRFor 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.EncodeRateControlLayerBitrateexplicitVkVideoEncodeRateControlInfoKHRFor 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-parameterYNoneimplicitVkVideoEncodeRateControlInfoKHRIf layerCount is not 0, pLayers must be a valid pointer to an array of layerCount valid VkVideoEncodeRateControlLayerInfoKHR structures
VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-08244YNegativeVideo.EncodeRateControlUnsupportedModeexplicitVkVideoEncodeRateControlInfoKHRIf 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.EncodeRateControlNoLayersexplicitVkVideoEncodeRateControlInfoKHRIf 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.EncodeRateControlMissingLayersexplicitVkVideoEncodeRateControlInfoKHRIf 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.EncodeRateControlLayerBitrateVBRexplicitVkVideoEncodeRateControlInfoKHRIf 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.EncodeRateControlLayerBitrateCBRexplicitVkVideoEncodeRateControlInfoKHRIf 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-parameterYNoneimplicitVkVideoEncodeRateControlInfoKHRIf rateControlMode is not 0, rateControlMode must be a valid VkVideoEncodeRateControlModeFlagBitsKHR value
VUID-VkVideoEncodeRateControlInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeRateControlInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR
VUID-VkVideoEncodeRateControlInfoKHR-videoCodecOperation-07022YNegativeVideo.EncodeRateControlH264LayerCountMismatchexplicitVkVideoEncodeRateControlInfoKHRIf 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.EncodeRateControlH265LayerCountMismatchexplicitVkVideoEncodeRateControlInfoKHRIf 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.EncodeRateControlLayerFrameRateexplicitVkVideoEncodeRateControlLayerInfoKHRframeRateDenominator must be greater than zero
VUID-VkVideoEncodeRateControlLayerInfoKHR-frameRateNumerator-08350YNegativeVideo.EncodeRateControlLayerFrameRateexplicitVkVideoEncodeRateControlLayerInfoKHRframeRateNumerator must be greater than zero
VUID-VkVideoEncodeRateControlLayerInfoKHR-pNext-pNextNNoneimplicitVkVideoEncodeRateControlLayerInfoKHREach 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-sTypeYNoneimplicitVkVideoEncodeRateControlLayerInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR
VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-uniqueNNoneimplicitVkVideoEncodeRateControlLayerInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-pNext-pNextYNoneimplicitVkVideoEncodeSessionParametersFeedbackInfoKHREach 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-sTypeYNoneimplicitVkVideoEncodeSessionParametersFeedbackInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-uniqueYNoneimplicitVkVideoEncodeSessionParametersFeedbackInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeSessionParametersGetInfoKHR-pNext-pNextYNoneimplicitVkVideoEncodeSessionParametersGetInfoKHREach 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-sTypeYNoneimplicitVkVideoEncodeSessionParametersGetInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR
VUID-VkVideoEncodeSessionParametersGetInfoKHR-sType-uniqueYNoneimplicitVkVideoEncodeSessionParametersGetInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeSessionParametersGetInfoKHR-videoSessionParameters-parameterYNoneimplicitVkVideoEncodeSessionParametersGetInfoKHRvideoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoEncodeUsageInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeUsageInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR
VUID-VkVideoEncodeUsageInfoKHR-tuningMode-parameterYNoneimplicitVkVideoEncodeUsageInfoKHRIf tuningMode is not 0, tuningMode must be a valid VkVideoEncodeTuningModeKHR value
VUID-VkVideoEncodeUsageInfoKHR-videoContentHints-parameterYNoneimplicitVkVideoEncodeUsageInfoKHRvideoContentHints must be a valid combination of VkVideoEncodeContentFlagBitsKHR values
VUID-VkVideoEncodeUsageInfoKHR-videoUsageHints-parameterYNoneimplicitVkVideoEncodeUsageInfoKHRvideoUsageHints must be a valid combination of VkVideoEncodeUsageFlagBitsKHR values
VUID-VkVideoEndCodingInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEndCodingInfoKHRflags must be 0
VUID-VkVideoEndCodingInfoKHR-pNext-pNextYNoneimplicitVkVideoEndCodingInfoKHRpNext must be NULL
VUID-VkVideoEndCodingInfoKHR-sType-sTypeYNoneimplicitVkVideoEndCodingInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR
VUID-VkVideoFormatPropertiesKHR-pNext-pNextYNoneimplicitVkVideoFormatPropertiesKHRpNext must be NULL
VUID-VkVideoFormatPropertiesKHR-sType-sTypeYNoneimplicitVkVideoFormatPropertiesKHRsType must be VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR
VUID-VkVideoInlineQueryInfoKHR-queryPool-08372YNegativeVideo.DecodeInlineQueryOutOfBounds, NegativeVideo.EncodeInlineQueryOutOfBoundsexplicitVkVideoInlineQueryInfoKHRIf queryPool is not VK_NULL_HANDLE, then firstQuery must be less than the number of queries in queryPool
VUID-VkVideoInlineQueryInfoKHR-queryPool-08373YNegativeVideo.DecodeInlineQueryOutOfBounds, NegativeVideo.EncodeInlineQueryOutOfBoundsexplicitVkVideoInlineQueryInfoKHRIf 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-parameterYNoneimplicitVkVideoInlineQueryInfoKHRIf queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle
VUID-VkVideoInlineQueryInfoKHR-sType-sTypeYNoneimplicitVkVideoInlineQueryInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR
VUID-VkVideoPictureResourceInfoKHR-baseArrayLayer-07175YNegativeVideo.BeginCodingInvalidResourceLayer, NegativeVideo.DecodeInvalidResourceLayerexplicitVkVideoPictureResourceInfoKHRbaseArrayLayer must be less than the VkImageViewCreateInfo::subresourceRange.layerCount specified when the image view imageViewBinding was created
VUID-VkVideoPictureResourceInfoKHR-imageViewBinding-parameterYNoneimplicitVkVideoPictureResourceInfoKHRimageViewBinding must be a valid VkImageView handle
VUID-VkVideoPictureResourceInfoKHR-pNext-pNextYNoneimplicitVkVideoPictureResourceInfoKHRpNext must be NULL
VUID-VkVideoPictureResourceInfoKHR-sType-sTypeYNoneimplicitVkVideoPictureResourceInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR
VUID-VkVideoProfileInfoKHR-chromaBitDepth-parameterYNoneimplicitVkVideoProfileInfoKHRchromaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-chromaSubsampling-07013YNegativeVideo.VideoProfileInvalidLumaChromaSubsamplingexplicitVkVideoProfileInfoKHRchromaSubsampling must have a single bit set
VUID-VkVideoProfileInfoKHR-chromaSubsampling-07015YNegativeVideo.VideoProfileInvalidLumaChromaSubsamplingexplicitVkVideoProfileInfoKHRIf chromaSubsampling is not VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR, then chromaBitDepth must have a single bit set
VUID-VkVideoProfileInfoKHR-chromaSubsampling-parameterYNoneimplicitVkVideoProfileInfoKHRchromaSubsampling must be a valid combination of VkVideoChromaSubsamplingFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-chromaSubsampling-requiredbitmaskYNoneimplicitVkVideoProfileInfoKHRchromaSubsampling must not be 0
VUID-VkVideoProfileInfoKHR-lumaBitDepth-07014YNegativeVideo.VideoProfileInvalidLumaChromaSubsamplingexplicitVkVideoProfileInfoKHRlumaBitDepth must have a single bit set
VUID-VkVideoProfileInfoKHR-lumaBitDepth-parameterYNoneimplicitVkVideoProfileInfoKHRlumaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-lumaBitDepth-requiredbitmaskYNoneimplicitVkVideoProfileInfoKHRlumaBitDepth must not be 0
VUID-VkVideoProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoProfileInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
VUID-VkVideoProfileInfoKHR-videoCodecOperation-07179YNegativeVideo.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRIf videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext chain must include a VkVideoDecodeH264ProfileInfoKHR structure
VUID-VkVideoProfileInfoKHR-videoCodecOperation-07180YNegativeVideo.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRIf 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.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRIf 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.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRIf videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext chain must include a VkVideoEncodeH265ProfileInfoKHR structure
VUID-VkVideoProfileInfoKHR-videoCodecOperation-09256YNegativeVideo.VideoProfileMissingCodecInfoexplicitVkVideoProfileInfoKHRIf videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the pNext chain must include a VkVideoDecodeAV1ProfileInfoKHR structure
VUID-VkVideoProfileInfoKHR-videoCodecOperation-parameterYNoneimplicitVkVideoProfileInfoKHRvideoCodecOperation must be a valid VkVideoCodecOperationFlagBitsKHR value
VUID-VkVideoProfileListInfoKHR-pProfiles-06813YNegativeVideo.CreateBufferInvalidProfileList, NegativeVideo.CreateBufferProfileIndependent, NegativeVideo.CreateImageInvalidProfileList, NegativeVideo.CreateImageProfileIndependentexplicitVkVideoProfileListInfoKHRpProfiles must not contain more than one element whose videoCodecOperation member specifies a decode operation
VUID-VkVideoProfileListInfoKHR-pProfiles-parameterYNoneimplicitVkVideoProfileListInfoKHRIf profileCount is not 0, pProfiles must be a valid pointer to an array of profileCount valid VkVideoProfileInfoKHR structures
VUID-VkVideoProfileListInfoKHR-sType-sTypeYNoneimplicitVkVideoProfileListInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR
VUID-VkVideoReferenceSlotInfoKHR-pNext-pNextYNoneimplicitVkVideoReferenceSlotInfoKHREach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeAV1DpbSlotInfoKHR, VkVideoDecodeH264DpbSlotInfoKHR, VkVideoDecodeH265DpbSlotInfoKHR, VkVideoEncodeH264DpbSlotInfoKHR, or VkVideoEncodeH265DpbSlotInfoKHR
VUID-VkVideoReferenceSlotInfoKHR-pPictureResource-parameterYNoneimplicitVkVideoReferenceSlotInfoKHRIf pPictureResource is not NULL, pPictureResource must be a valid pointer to a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoReferenceSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoReferenceSlotInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR
VUID-VkVideoReferenceSlotInfoKHR-sType-uniqueYNoneimplicitVkVideoReferenceSlotInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoSessionCreateInfoKHR-flags-08371YNegativeVideo.CreateSessionVideoMaintenance1NotEnabledexplicitVkVideoSessionCreateInfoKHRIf flags includes VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, then videoMaintenance1 must be enabled
VUID-VkVideoSessionCreateInfoKHR-flags-parameterYNegativeVideo.CreateSessionVideoMaintenance1NotEnabledimplicitVkVideoSessionCreateInfoKHRflags must be a valid combination of VkVideoSessionCreateFlagBitsKHR values
VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849YNegativeVideo.CreateSessionInvalidReferencePictureCountsexplicitVkVideoSessionCreateInfoKHRmaxActiveReferencePictures must be less than or equal to VkVideoCapabilitiesKHR::maxActiveReferencePictures, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-maxCodedExtent-04851YNegativeVideo.CreateSessionInvalidMaxCodedExtentexplicitVkVideoSessionCreateInfoKHRmaxCodedExtent must be between VkVideoCapabilitiesKHR::minCodedExtent and VkVideoCapabilitiesKHR::maxCodedExtent, inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04847YNegativeVideo.CreateSessionInvalidReferencePictureCountsexplicitVkVideoSessionCreateInfoKHRmaxDpbSlots must be less than or equal to VkVideoCapabilitiesKHR::maxDpbSlots, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04850YNegativeVideo.CreateSessionInvalidReferencePictureCountsexplicitVkVideoSessionCreateInfoKHRIf either maxDpbSlots or maxActiveReferencePictures is 0, then both must be 0
VUID-VkVideoSessionCreateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionCreateInfoKHREach 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.CreateSessionInvalidStdHeaderVersionexplicitVkVideoSessionCreateInfoKHRpStdHeaderVersion->extensionName must match VkVideoCapabilitiesKHR::stdHeaderVersion.extensionName, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-07191YNegativeVideo.CreateSessionInvalidStdHeaderVersionexplicitVkVideoSessionCreateInfoKHRpStdHeaderVersion->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-parameterYNoneimplicitVkVideoSessionCreateInfoKHRpStdHeaderVersion must be a valid pointer to a valid VkExtensionProperties structure
VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-04845YNegativeVideo.CreateSessionUnsupportedProfileexplicitVkVideoSessionCreateInfoKHRpVideoProfile must be a supported video profile
VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-08251YNegativeVideo.CreateSessionEncodeH264InvalidMaxLevelexplicitVkVideoSessionCreateInfoKHRIf 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.CreateSessionEncodeH265InvalidMaxLevelexplicitVkVideoSessionCreateInfoKHRIf 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-parameterYNoneimplicitVkVideoSessionCreateInfoKHRpVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure
VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04853YNegativeVideo.CreateSessionInvalidDecodePictureFormatexplicitVkVideoSessionCreateInfoKHRIf 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.CreateSessionInvalidEncodePictureFormatexplicitVkVideoSessionCreateInfoKHRIf 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-parameterYNoneimplicitVkVideoSessionCreateInfoKHRpictureFormat must be a valid VkFormat value
VUID-VkVideoSessionCreateInfoKHR-protectedMemory-07189YNegativeVideo.CreateSessionProtectedContentUnsupported, NegativeVideo.CreateSessionProtectedMemoryNotEnabledexplicitVkVideoSessionCreateInfoKHRIf 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.CreateSessionInvalidDecodeReferencePictureFormatexplicitVkVideoSessionCreateInfoKHRIf 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.CreateSessionInvalidEncodeReferencePictureFormatexplicitVkVideoSessionCreateInfoKHRIf 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-parameterYNoneimplicitVkVideoSessionCreateInfoKHRreferencePictureFormat must be a valid VkFormat value
VUID-VkVideoSessionCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoSessionCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR
VUID-VkVideoSessionCreateInfoKHR-sType-uniqueYNoneimplicitVkVideoSessionCreateInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoSessionMemoryRequirementsKHR-pNext-pNextYNoneimplicitVkVideoSessionMemoryRequirementsKHRpNext must be NULL
VUID-VkVideoSessionMemoryRequirementsKHR-sType-sTypeYNoneimplicitVkVideoSessionMemoryRequirementsKHRsType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-commonparentYNoneimplicitVkVideoSessionParametersCreateInfoKHRBoth 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-zerobitmaskYNoneimplicitVkVideoSessionParametersCreateInfoKHRflags must be 0
VUID-VkVideoSessionParametersCreateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionParametersCreateInfoKHREach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeAV1SessionParametersCreateInfoKHR, VkVideoDecodeH264SessionParametersCreateInfoKHR, VkVideoDecodeH265SessionParametersCreateInfoKHR, VkVideoEncodeH264SessionParametersCreateInfoKHR, VkVideoEncodeH265SessionParametersCreateInfoKHR, or VkVideoEncodeQualityLevelInfoKHR
VUID-VkVideoSessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoSessionParametersCreateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-sType-uniqueYNoneimplicitVkVideoSessionParametersCreateInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04839YNegativeVideo.CreateSessionParamsEncodeH264ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsEncodeH264ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsEncodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsEncodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsEncodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsDecodeH264ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsDecodeH264ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsDecodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsDecodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsDecodeH265ExceededCapacityexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateUpdateSessionParamsEncodeH265InvalidTileColumnsRowsexplicitVkVideoSessionParametersCreateInfoKHRIf 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.CreateUpdateSessionParamsEncodeH265InvalidTileColumnsRowsexplicitVkVideoSessionParametersCreateInfoKHRIf 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-09258YNegativeVideo.CreateSessionParamsDecodeAV1TemplateNotAllowedexplicitVkVideoSessionParametersCreateInfoKHRIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then videoSessionParametersTemplate must be VK_NULL_HANDLE
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-09259YNegativeVideo.CreateSessionParamsMissingCodecInfoexplicitVkVideoSessionParametersCreateInfoKHRIf videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the pNext chain must include a VkVideoDecodeAV1SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-parameterYNoneimplicitVkVideoSessionParametersCreateInfoKHRvideoSession must be a valid VkVideoSessionKHR handle
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-04855YNegativeVideo.CreateSessionParamsIncompatibleTemplateexplicitVkVideoSessionParametersCreateInfoKHRIf videoSessionParametersTemplate is not VK_NULL_HANDLE, it must have been created against videoSession
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-08310YNegativeVideo.CreateSessionParamsIncompatibleTemplateEncodeQualityLevelexplicitVkVideoSessionParametersCreateInfoKHRIf 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-parameterYNoneimplicitVkVideoSessionParametersCreateInfoKHRIf videoSessionParametersTemplate is not VK_NULL_HANDLE, videoSessionParametersTemplate must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parentNNoneimplicitVkVideoSessionParametersCreateInfoKHRIf videoSessionParametersTemplate is a valid handle, it must have been created, allocated, or retrieved from videoSession
VUID-VkVideoSessionParametersUpdateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionParametersUpdateInfoKHREach 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-sTypeYNoneimplicitVkVideoSessionParametersUpdateInfoKHRsType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR
VUID-VkVideoSessionParametersUpdateInfoKHR-sType-uniqueYNoneimplicitVkVideoSessionParametersUpdateInfoKHRThe sType value of each struct in the pNext chain must be unique
VUID-VkViewport-apiVersion-07917YNegativeDynamicState.SetViewportParamexplicitVkViewportIf 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.SetViewportParamMaintenance1explicitVkViewportThe absolute value of height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]
VUID-VkViewport-maxDepth-01235YNegativeDynamicState.SetViewportParamexplicitVkViewportIf the VK_EXT_depth_range_unrestricted extension is not enabled, maxDepth must be between 0.0 and 1.0, inclusive
VUID-VkViewport-minDepth-01234YNegativeDynamicState.SetViewportParamexplicitVkViewportIf the VK_EXT_depth_range_unrestricted extension is not enabled, minDepth must be between 0.0 and 1.0, inclusive
VUID-VkViewport-width-01770YNegativeDynamicState.SetViewportParamexplicitVkViewportwidth must be greater than 0.0
VUID-VkViewport-width-01771YNegativeDynamicState.SetViewportParamexplicitVkViewportwidth must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]
VUID-VkViewport-x-01232YNegativeDynamicState.SetViewportParamexplicitVkViewport(x + width) must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-x-01774YNegativeDynamicState.SetViewportParamexplicitVkViewportx must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewport-y-01233YNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMaintenance1explicitVkViewport(y + height) must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-y-01775YNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMaintenance1explicitVkViewporty must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewport-y-01776YNegativeDynamicState.SetViewportParamMaintenance1explicitVkViewporty must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-y-01777YNegativeDynamicState.SetViewportParamMaintenance1explicitVkViewport(y + height) must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewportSwizzleNV-w-parameterYNegativePipeline.ViewportSwizzleNVimplicitVkViewportSwizzleNVw must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-x-parameterYNegativePipeline.ViewportSwizzleNVimplicitVkViewportSwizzleNVx must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-y-parameterYNegativePipeline.ViewportSwizzleNVimplicitVkViewportSwizzleNVy must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-z-parameterYNegativePipeline.ViewportSwizzleNVimplicitVkViewportSwizzleNVz must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkWaylandSurfaceCreateInfoKHR-display-01304YNegativeWsi.CreatingWaylandSurfaceexplicitVkWaylandSurfaceCreateInfoKHRdisplay must point to a valid Wayland wl_display
VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkWaylandSurfaceCreateInfoKHRflags must be 0
VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkWaylandSurfaceCreateInfoKHRpNext must be NULL
VUID-VkWaylandSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkWaylandSurfaceCreateInfoKHRsType must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305YNegativeWsi.CreatingWaylandSurfaceexplicitVkWaylandSurfaceCreateInfoKHRsurface must point to a valid Wayland wl_surface
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparentYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRBoth 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-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRIf acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081NNoneexplicitVkWin32KeyedMutexAcquireReleaseInfoKHREach 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-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRIf acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireTimeouts-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRIf acquireCount is not 0, pAcquireTimeouts must be a valid pointer to an array of acquireCount uint32_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRIf releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRIf releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sTypeYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHRsType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparentYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVBoth 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-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVIf acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVIf acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireTimeoutMilliseconds-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVIf acquireCount is not 0, pAcquireTimeoutMilliseconds must be a valid pointer to an array of acquireCount uint32_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVIf releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVIf releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-sType-sTypeYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNVsType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkWin32SurfaceCreateInfoKHRflags must be 0
VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307NNoneexplicitVkWin32SurfaceCreateInfoKHRhinstance must be a valid Win32 HINSTANCE
VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308YNegativeWsi.CreatingWin32SurfaceexplicitVkWin32SurfaceCreateInfoKHRhwnd must be a valid Win32 HWND
VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkWin32SurfaceCreateInfoKHRpNext must be NULL
VUID-VkWin32SurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkWin32SurfaceCreateInfoKHRsType must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
VUID-VkWriteDescriptorSet-commonparentYNoneimplicitVkWriteDescriptorSetBoth 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.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetAll 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.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetAll 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-arraylengthYNoneimplicitVkWriteDescriptorSetdescriptorCount must be greater than 0
VUID-VkWriteDescriptorSet-descriptorType-00319YNegativeDescriptors.DSTypeMismatch, NegativeDescriptors.UpdateDescriptorSetMismatchTypeexplicitVkWriteDescriptorSetdescriptorType must match the type of dstBinding within dstSet
VUID-VkWriteDescriptorSet-descriptorType-00324YNegativeDescriptors.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetIf 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.UpdatingMutableDescriptorsexplicitVkWriteDescriptorSetIf 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.SetCmdBufferOffsetUnalignedexplicitVkWriteDescriptorSetIf 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.DSBufferLimitexplicitVkWriteDescriptorSetIf 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.DescriptorBufferUpdateNoMemoryBoundexplicitVkWriteDescriptorSetIf 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.SetCmdPushexplicitVkWriteDescriptorSetIf 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.DSUsageBitsexplicitVkWriteDescriptorSetIf 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.DSBufferLimitexplicitVkWriteDescriptorSetIf 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.DSBufferLimitexplicitVkWriteDescriptorSetIf 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.WriteDescriptorSetIdentitySwizzleexplicitVkWriteDescriptorSetIf 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.ColorAttachmentImageViewUsageexplicitVkWriteDescriptorSetIf 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.DSUsageBitsexplicitVkWriteDescriptorSetIf 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.DSUsageBitsexplicitVkWriteDescriptorSetIf 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.WriteDescriptorSetexplicitVkWriteDescriptorSetIf 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.MultiplaneImageSamplerConversionMismatchexplicitVkWriteDescriptorSetIf 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.InlineUniformBlockEXTexplicitVkWriteDescriptorSetIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkWriteDescriptorSet-descriptorType-02220YNegativeDescriptors.InlineUniformBlockEXTexplicitVkWriteDescriptorSetIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkWriteDescriptorSet-descriptorType-02221YNegativeDescriptors.InlineUniformBlockEXTexplicitVkWriteDescriptorSetIf descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, the pNext chain must include a VkWriteDescriptorSetInlineUniformBlock structure whose dataSize member equals descriptorCount
VUID-VkWriteDescriptorSet-descriptorType-02382YNoneexplicitVkWriteDescriptorSetIf 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.MultiplaneImageSamplerConversionMismatchexplicitVkWriteDescriptorSetIf descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of pImageInfo has an 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.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetIf 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.BufferViewObjectexplicitVkWriteDescriptorSetIf 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.NullDescriptorsDisabledexplicitVkWriteDescriptorSetIf 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.ImageViewDescriptorUpdateexplicitVkWriteDescriptorSetIf 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.NullDescriptorsDisabledexplicitVkWriteDescriptorSetIf 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-03817YNoneexplicitVkWriteDescriptorSetIf 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.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetIf 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.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetIf 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.WriteDescriptorSetIntegrityexplicitVkWriteDescriptorSetIf 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.StorageImageLayoutexplicitVkWriteDescriptorSetIf 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.ImageViewMinLodexplicitVkWriteDescriptorSetIf 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.ImageViewTextureSampleWeightedexplicitVkWriteDescriptorSetIf 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.ImageViewTextureSampleWeightedexplicitVkWriteDescriptorSetIf 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.InputAttachmentDescriptorUpdateexplicitVkWriteDescriptorSetIf 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.DSUsageBitsexplicitVkWriteDescriptorSetIf 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.DSUsageBitsFlags2explicitVkWriteDescriptorSetIf 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-09506YNegativeSampler.ImageSamplerConversionNullImageViewexplicitVkWriteDescriptorSetIf descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, dstSet was allocated with a layout that included immutable samplers for dstBinding, and those samplers enable sampler Y'CBCR conversion, then imageView must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSet-descriptorType-parameterYNoneimplicitVkWriteDescriptorSetdescriptorType must be a valid VkDescriptorType value
VUID-VkWriteDescriptorSet-dstArrayElement-00321YNegativeDescriptorIndexing.SetLayout, NegativeDescriptorIndexing.SetNonIdenticalWrite, NegativeDescriptors.DSUpdateOutOfBounds, NegativeDescriptors.DstArrayElementexplicitVkWriteDescriptorSetThe 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.DSUpdateIndexexplicitVkWriteDescriptorSetdstBinding 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.DSUpdateEmptyBinding, NegativeDescriptors.UpdateIndexSmallerexplicitVkWriteDescriptorSetdstBinding must be a binding with a non-zero descriptorCount
VUID-VkWriteDescriptorSet-dstBinding-10009YNegativeDescriptors.EmptyDescriptorSetLayoutexplicitVkWriteDescriptorSetdstBinding must be a binding with a non-zero VkDescriptorSetLayoutCreateInfo::bindingCount
VUID-VkWriteDescriptorSet-dstSet-00320YNegativeDescriptors.UpdateDestroyDescriptorSetLayout, NegativeDescriptors.WriteDescriptorSetNotAllocated, NegativePushDescriptor.DestroyDescriptorSetLayoutexplicitVkWriteDescriptorSetdstSet must be a valid VkDescriptorSet handle
VUID-VkWriteDescriptorSet-dstSet-04611YNegativeDescriptors.WriteMutableDescriptorSetexplicitVkWriteDescriptorSetIf 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-pNextYNoneimplicitVkWriteDescriptorSetEach 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-sTypeYNoneimplicitVkWriteDescriptorSetsType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
VUID-VkWriteDescriptorSet-sType-uniqueYNoneimplicitVkWriteDescriptorSetThe sType value of each struct in the pNext chain must be unique
VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHRaccelerationStructureCount must be equal to descriptorCount in the extended structure
VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylengthYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHRaccelerationStructureCount must be greater than 0
VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03579YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHREach 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-03580YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHRIf the nullDescriptor feature is not enabled, each element of pAccelerationStructures must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameterYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHRpAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureKHR handles
VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sTypeYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHRsType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-03747YNoneexplicitVkWriteDescriptorSetAccelerationStructureNVaccelerationStructureCount must be equal to descriptorCount in the extended structure
VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylengthYNoneimplicitVkWriteDescriptorSetAccelerationStructureNVaccelerationStructureCount must be greater than 0
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03748YNoneexplicitVkWriteDescriptorSetAccelerationStructureNVEach acceleration structure in pAccelerationStructures must have been created with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749YNoneexplicitVkWriteDescriptorSetAccelerationStructureNVIf the nullDescriptor feature is not enabled, each member of pAccelerationStructures must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameterYNoneimplicitVkWriteDescriptorSetAccelerationStructureNVpAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureNV handles
VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sTypeYNoneimplicitVkWriteDescriptorSetAccelerationStructureNVsType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222YNegativeDescriptors.InlineUniformBlockEXTexplicitVkWriteDescriptorSetInlineUniformBlockdataSize must be an integer multiple of 4
VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylengthYNoneimplicitVkWriteDescriptorSetInlineUniformBlockdataSize must be greater than 0
VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameterYNoneimplicitVkWriteDescriptorSetInlineUniformBlockpData must be a valid pointer to an array of dataSize bytes
VUID-VkWriteDescriptorSetInlineUniformBlock-sType-sTypeYNoneimplicitVkWriteDescriptorSetInlineUniformBlocksType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK
VUID-VkWriteIndirectExecutionSetPipelineEXT-index-11026YNegativeDeviceGeneratedCommands.UpdateIESPipelineIndexexplicitVkWriteIndirectExecutionSetPipelineEXTindex must be less than the value of VkIndirectExecutionSetPipelineInfoEXT::maxPipelineCount used to create the set
VUID-VkWriteIndirectExecutionSetPipelineEXT-index-11029NNoneexplicitVkWriteIndirectExecutionSetPipelineEXTindex must not be referenced by submitted command buffers
VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11027YNoneexplicitVkWriteIndirectExecutionSetPipelineEXTpipeline must have been created with VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11028NNoneexplicitVkWriteIndirectExecutionSetPipelineEXTThe descriptor layout info used to create pipeline must be compatible with the descriptor layout info used to create the indirect execution set
VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11030YNoneexplicitVkWriteIndirectExecutionSetPipelineEXTThe shader stages contained in pipeline must be supported by VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStagesPipelineBinding
VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-parameterYNoneimplicitVkWriteIndirectExecutionSetPipelineEXTpipeline must be a valid VkPipeline handle
VUID-VkWriteIndirectExecutionSetPipelineEXT-sType-sTypeYNoneimplicitVkWriteIndirectExecutionSetPipelineEXTsType must be VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT
VUID-VkWriteIndirectExecutionSetShaderEXT-index-11031YNegativeDeviceGeneratedCommands.UpdateIESShaderObjectWriteCountexplicitVkWriteIndirectExecutionSetShaderEXTindex must be less than VkIndirectExecutionSetShaderInfoEXT::maxShaderCount
VUID-VkWriteIndirectExecutionSetShaderEXT-index-11034NNoneexplicitVkWriteIndirectExecutionSetShaderEXTindex must not be in use by submitted command buffers
VUID-VkWriteIndirectExecutionSetShaderEXT-pInitialShaders-11033YNegativeDeviceGeneratedCommands.UpdateIESShaderObjectInitialShadersexplicitVkWriteIndirectExecutionSetShaderEXTA shader created with the same VkShaderStageFlagBits must have been passed in the VkIndirectExecutionSetShaderInfoEXT::pInitialShaders array
VUID-VkWriteIndirectExecutionSetShaderEXT-sType-sTypeYNoneimplicitVkWriteIndirectExecutionSetShaderEXTsType must be VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT
VUID-VkWriteIndirectExecutionSetShaderEXT-shader-11032YNoneexplicitVkWriteIndirectExecutionSetShaderEXTshader must have been created with VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT
VUID-VkWriteIndirectExecutionSetShaderEXT-shader-parameterYNoneimplicitVkWriteIndirectExecutionSetShaderEXTshader must be a valid VkShaderEXT handle
VUID-VkXcbSurfaceCreateInfoKHR-connection-01310YNegativeWsi.CreatingXcbSurfaceexplicitVkXcbSurfaceCreateInfoKHRconnection must point to a valid X11 xcb_connection_t
VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkXcbSurfaceCreateInfoKHRflags must be 0
VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkXcbSurfaceCreateInfoKHRpNext must be NULL
VUID-VkXcbSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkXcbSurfaceCreateInfoKHRsType must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
VUID-VkXcbSurfaceCreateInfoKHR-window-01311YNegativeWsi.CreatingXcbSurfaceexplicitVkXcbSurfaceCreateInfoKHRwindow must be a valid X11 xcb_window_t
VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313YNegativeWsi.CreatingX11SurfaceexplicitVkXlibSurfaceCreateInfoKHRdpy must point to a valid Xlib Display
VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkXlibSurfaceCreateInfoKHRflags must be 0
VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkXlibSurfaceCreateInfoKHRpNext must be NULL
VUID-VkXlibSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkXlibSurfaceCreateInfoKHRsType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
VUID-VkXlibSurfaceCreateInfoKHR-window-01314YNegativeWsi.CreatingX11SurfaceexplicitVkXlibSurfaceCreateInfoKHRwindow must be a valid Xlib Window
VUID-WarpIDARM-WarpIDARM-07603NNoneexplicitWarpIDARMThe variable decorated with WarpIDARM must be declared using the Input Storage Class
VUID-WarpIDARM-WarpIDARM-07604NNoneexplicitWarpIDARMThe variable decorated with WarpIDARM must be declared as a scalar 32-bit integer value
VUID-WarpIDNV-WarpIDNV-04420NNoneexplicitWarpIDNVThe variable decorated with WarpIDNV must be declared using the Input Storage Class
VUID-WarpIDNV-WarpIDNV-04421NNoneexplicitWarpIDNVThe variable decorated with WarpIDNV must be declared as a scalar 32-bit integer value
VUID-WarpMaxIDARM-WarpMaxIDARM-07601NNoneexplicitWarpMaxIDARMThe variable decorated with WarpMaxIDARM must be declared using the Input Storage Class
VUID-WarpMaxIDARM-WarpMaxIDARM-07602NNoneexplicitWarpMaxIDARMThe variable decorated with WarpMaxIDARM must be declared as a scalar 32-bit integer value
VUID-WarpsPerSMNV-WarpsPerSMNV-04418NNoneexplicitWarpsPerSMNVThe variable decorated with WarpsPerSMNV must be declared using the Input Storage Class
VUID-WarpsPerSMNV-WarpsPerSMNV-04419NNoneexplicitWarpsPerSMNVThe variable decorated with WarpsPerSMNV must be declared as a scalar 32-bit integer value
VUID-WorkgroupId-WorkgroupId-04422YYValidateLiterals.LiteralsKernelGoodexplicitWorkgroupIdThe WorkgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-WorkgroupId-WorkgroupId-04423YYValidateLiterals.LiteralsKernelGoodexplicitWorkgroupIdThe variable decorated with WorkgroupId must be declared using the Input Storage Class
VUID-WorkgroupId-WorkgroupId-04424YYValidateLiterals.LiteralsKernelGoodexplicitWorkgroupIdThe variable decorated with WorkgroupId must be declared as a three-component vector of 32-bit integer values
VUID-WorkgroupSize-WorkgroupSize-04425YYValidateBuiltIns.VulkanWorkgroupSizeFragmentexplicitWorkgroupSizeThe WorkgroupSize decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV Execution Model
VUID-WorkgroupSize-WorkgroupSize-04426YYNoneexplicitWorkgroupSizeThe variable decorated with WorkgroupSize must be a specialization constant or a constant
VUID-WorkgroupSize-WorkgroupSize-04427YYValidateBuiltIns.VulkanWorkgroupSizeFragment, ValidateBuiltIns.VulkanWorkgroupSizeNotIntVector, ValidateBuiltIns.VulkanWorkgroupSizeNotVec3, ValidateBuiltIns.VulkanWorkgroupSizeNotVector, ValidateBuiltIns.WorkgroupSizeNotInt32VecexplicitWorkgroupSizeThe variable decorated with WorkgroupSize must be declared as a three-component vector of 32-bit integer values
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04428YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayDirectionKHRThe WorldRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04429YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayDirectionKHRThe variable decorated with WorldRayDirectionKHR must be declared using the Input Storage Class
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04430YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayDirectionKHRThe variable decorated with WorldRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04431YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayOriginKHRThe WorldRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR Execution Model
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04432YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayOriginKHRThe variable decorated with WorldRayOriginKHR must be declared using the Input Storage Class
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04433YYValidateLiterals.LiteralsKernelGoodexplicitWorldRayOriginKHRThe variable decorated with WorldRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-WorldToObjectKHR-WorldToObjectKHR-04434YYValidateLiterals.LiteralsKernelGoodexplicitWorldToObjectKHRThe WorldToObjectKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR Execution Model
VUID-WorldToObjectKHR-WorldToObjectKHR-04435YYValidateLiterals.LiteralsKernelGoodexplicitWorldToObjectKHRThe variable decorated with WorldToObjectKHR must be declared using the Input Storage Class
VUID-WorldToObjectKHR-WorldToObjectKHR-04436YYValidateLiterals.LiteralsKernelGoodexplicitWorldToObjectKHRThe 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-parameterYNoneimplicitvkAcquireDrmDisplayEXTdisplay must be a valid VkDisplayKHR handle
VUID-vkAcquireDrmDisplayEXT-display-parentYNoneimplicitvkAcquireDrmDisplayEXTdisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameterYNoneimplicitvkAcquireDrmDisplayEXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameterYNoneimplicitvkAcquireFullScreenExclusiveModeEXTdevice must be a valid VkDevice handle
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXTswapchain must not be in the retired state
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXTswapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXTswapchain must not currently have exclusive full-screen access
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameterYNoneimplicitvkAcquireFullScreenExclusiveModeEXTswapchain must be a valid VkSwapchainKHR handle
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parentYNoneimplicitvkAcquireFullScreenExclusiveModeEXTswapchain must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImage2KHR-device-parameterYNoneimplicitvkAcquireNextImage2KHRdevice must be a valid VkDevice handle
VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameterYNoneimplicitvkAcquireNextImage2KHRpAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structure
VUID-vkAcquireNextImage2KHR-pImageIndex-parameterYNoneimplicitvkAcquireNextImage2KHRpImageIndex must be a valid pointer to a uint32_t value
VUID-vkAcquireNextImage2KHR-surface-07784YNegativeWsi.SwapchainAcquireTooManyImages2KHRexplicitvkAcquireNextImage2KHRIf 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-parameterYNoneimplicitvkAcquireNextImageKHRdevice must be a valid VkDevice handle
VUID-vkAcquireNextImageKHR-fence-01287YNegativeWsi.SwapchainAcquireImageSignaledFenceexplicitvkAcquireNextImageKHRIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkAcquireNextImageKHR-fence-10066YNoneexplicitvkAcquireNextImageKHRIf 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-vkAcquireNextImageKHR-fence-parameterYNoneimplicitvkAcquireNextImageKHRIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkAcquireNextImageKHR-fence-parentYNoneimplicitvkAcquireNextImageKHRIf fence is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImageKHR-pImageIndex-parameterYNoneimplicitvkAcquireNextImageKHRpImageIndex must be a valid pointer to a uint32_t value
VUID-vkAcquireNextImageKHR-semaphore-01286YNegativeWsi.SwapchainAcquireImageWithSignaledSemaphoreexplicitvkAcquireNextImageKHRIf semaphore is not VK_NULL_HANDLE, it must be unsignaled
VUID-vkAcquireNextImageKHR-semaphore-01779YNegativeWsi.SwapchainAcquireImageWithPendingSemaphoreWaitexplicitvkAcquireNextImageKHRIf semaphore is not VK_NULL_HANDLE, it must not have any uncompleted signal or wait operations pending
VUID-vkAcquireNextImageKHR-semaphore-01780YNegativeWsi.SwapchainAcquireImageNoSyncexplicitvkAcquireNextImageKHRsemaphore and fence must not both be equal to VK_NULL_HANDLE
VUID-vkAcquireNextImageKHR-semaphore-03265YNegativeWsi.SwapchainAcquireImageNoBinarySemaphoreexplicitvkAcquireNextImageKHRsemaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-vkAcquireNextImageKHR-semaphore-parameterYNoneimplicitvkAcquireNextImageKHRIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-vkAcquireNextImageKHR-semaphore-parentYNoneimplicitvkAcquireNextImageKHRIf semaphore is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImageKHR-surface-07783YNegativeWsi.SwapchainAcquireTooManyImagesexplicitvkAcquireNextImageKHRIf forward progress cannot be guaranteed for the surface used to create the swapchain member of pAcquireInfo, timeout must not be UINT64_MAX
VUID-vkAcquireNextImageKHR-swapchain-01285YNegativeWsi.SwapchainAcquireImageRetiredexplicitvkAcquireNextImageKHRswapchain must not be in the retired state
VUID-vkAcquireNextImageKHR-swapchain-parameterYNoneimplicitvkAcquireNextImageKHRswapchain must be a valid VkSwapchainKHR handle
VUID-vkAcquireNextImageKHR-swapchain-parentYNoneimplicitvkAcquireNextImageKHRswapchain must have been created, allocated, or retrieved from device
VUID-vkAcquirePerformanceConfigurationINTEL-device-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTELdevice must be a valid VkDevice handle
VUID-vkAcquirePerformanceConfigurationINTEL-pAcquireInfo-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTELpAcquireInfo must be a valid pointer to a valid VkPerformanceConfigurationAcquireInfoINTEL structure
VUID-vkAcquirePerformanceConfigurationINTEL-pConfiguration-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTELpConfiguration must be a valid pointer to a VkPerformanceConfigurationINTEL handle
VUID-vkAcquireProfilingLockKHR-device-parameterYNoneimplicitvkAcquireProfilingLockKHRdevice must be a valid VkDevice handle
VUID-vkAcquireProfilingLockKHR-pInfo-parameterYNoneimplicitvkAcquireProfilingLockKHRpInfo must be a valid pointer to a valid VkAcquireProfilingLockInfoKHR structure
VUID-vkAcquireWinrtDisplayNV-display-parameterYNoneimplicitvkAcquireWinrtDisplayNVdisplay must be a valid VkDisplayKHR handle
VUID-vkAcquireWinrtDisplayNV-display-parentYNoneimplicitvkAcquireWinrtDisplayNVdisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameterYNoneimplicitvkAcquireWinrtDisplayNVphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAcquireXlibDisplayEXT-display-parameterYNoneimplicitvkAcquireXlibDisplayEXTdisplay must be a valid VkDisplayKHR handle
VUID-vkAcquireXlibDisplayEXT-display-parentYNoneimplicitvkAcquireXlibDisplayEXTdisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireXlibDisplayEXT-dpy-parameterYNoneimplicitvkAcquireXlibDisplayEXTdpy must be a valid pointer to a Display value
VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameterYNoneimplicitvkAcquireXlibDisplayEXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAllocateCommandBuffers-device-parameterYNoneimplicitvkAllocateCommandBuffersdevice must be a valid VkDevice handle
VUID-vkAllocateCommandBuffers-pAllocateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkAllocateCommandBufferspAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure
VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkAllocateCommandBufferspAllocateInfo->commandBufferCount must be greater than 0
VUID-vkAllocateCommandBuffers-pCommandBuffers-parameterYNoneimplicitvkAllocateCommandBufferspCommandBuffers must be a valid pointer to an array of pAllocateInfo->commandBufferCount VkCommandBuffer handles
VUID-vkAllocateDescriptorSets-device-parameterYNoneimplicitvkAllocateDescriptorSetsdevice must be a valid VkDevice handle
VUID-vkAllocateDescriptorSets-pAllocateInfo-parameterYNoneimplicitvkAllocateDescriptorSetspAllocateInfo must be a valid pointer to a valid VkDescriptorSetAllocateInfo structure
VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkAllocateDescriptorSetspAllocateInfo->descriptorSetCount must be greater than 0
VUID-vkAllocateDescriptorSets-pDescriptorSets-parameterYNoneimplicitvkAllocateDescriptorSetspDescriptorSets must be a valid pointer to an array of pAllocateInfo->descriptorSetCount VkDescriptorSet handles
VUID-vkAllocateMemory-device-parameterYNoneimplicitvkAllocateMemorydevice must be a valid VkDevice handle
VUID-vkAllocateMemory-deviceCoherentMemory-02790YNegativeMemory.DeviceCoherentMemoryDisabledAMDexplicitvkAllocateMemoryIf 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.AllocationCountexplicitvkAllocateMemoryThere must be less than VkPhysicalDeviceLimits::maxMemoryAllocationCount device memory allocations currently allocated on the device
VUID-vkAllocateMemory-pAllocateInfo-01713YNegativeMemory.AllocationBeyondHeapSizeexplicitvkAllocateMemorypAllocateInfo->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, NegativeExternalMemorySync.ImportMemoryFromFdHandle, NegativeMemory.MemoryTypeexplicitvkAllocateMemorypAllocateInfo->memoryTypeIndex must be less than VkPhysicalDeviceMemoryProperties::memoryTypeCount as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from
VUID-vkAllocateMemory-pAllocateInfo-parameterYVkLayerTest.MissingCreateInfo, VkLayerTest.RequiredParameterimplicitvkAllocateMemorypAllocateInfo must be a valid pointer to a valid VkMemoryAllocateInfo structure
VUID-vkAllocateMemory-pAllocator-parameterYNoneimplicitvkAllocateMemoryIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkAllocateMemory-pMemory-parameterYNoneimplicitvkAllocateMemorypMemory must be a valid pointer to a VkDeviceMemory handle
VUID-vkAntiLagUpdateAMD-antiLag-10061NNoneexplicitvkAntiLagUpdateAMDThe antiLag feature must be enabled
VUID-vkAntiLagUpdateAMD-device-parameterYNoneimplicitvkAntiLagUpdateAMDdevice must be a valid VkDevice handle
VUID-vkAntiLagUpdateAMD-pData-parameterYNoneimplicitvkAntiLagUpdateAMDpData must be a valid pointer to a valid VkAntiLagDataAMD structure
VUID-vkBeginCommandBuffer-commandBuffer-00049YNegativeCommand.CommandBufferReset, NegativeSyncVal.ResourceHandleIndexStabilityexplicitvkBeginCommandBuffercommandBuffer must not be in the recording or pending state
VUID-vkBeginCommandBuffer-commandBuffer-00050YNegativeCommand.CommandBufferResetexplicitvkBeginCommandBufferIf 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-00051YNegativeSecondaryCommandBuffer.CommandBufferInheritanceInfoexplicitvkBeginCommandBufferIf commandBuffer is a secondary command buffer, the pInheritanceInfo member of pBeginInfo must be a valid VkCommandBufferInheritanceInfo structure
VUID-vkBeginCommandBuffer-commandBuffer-00052YNegativeSecondaryCommandBuffer.CommandBufferInheritanceInfoexplicitvkBeginCommandBufferIf 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.CommandBufferPrimaryFlagsexplicitvkBeginCommandBufferIf 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-parameterYNoneimplicitvkBeginCommandBuffercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkBeginCommandBuffer-pBeginInfo-parameterYNoneimplicitvkBeginCommandBufferpBeginInfo must be a valid pointer to a valid VkCommandBufferBeginInfo structure
VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylengthYNoneimplicitvkBindAccelerationStructureMemoryNVbindInfoCount must be greater than 0
VUID-vkBindAccelerationStructureMemoryNV-device-parameterYNoneimplicitvkBindAccelerationStructureMemoryNVdevice must be a valid VkDevice handle
VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameterYNoneimplicitvkBindAccelerationStructureMemoryNVpBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindAccelerationStructureMemoryInfoNV structures
VUID-vkBindBufferMemory-None-01898YNegativeProtectedMemory.MemoryexplicitvkBindBufferMemoryIf 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.MemoryexplicitvkBindBufferMemoryIf 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-07920NNoneexplicitvkBindBufferMemoryIf 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.BindMemoryexplicitvkBindBufferMemorybuffer must not have been created with any sparse memory binding flags
VUID-vkBindBufferMemory-buffer-01038NNoneexplicitvkBindBufferMemoryIf 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-01444NNoneexplicitvkBindBufferMemoryIf 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-06408NNoneexplicitvkBindBufferMemoryIf buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-vkBindBufferMemory-buffer-07459YNegativeMemory.BindMemoryexplicitvkBindBufferMemorybuffer must not have been bound to a memory object
VUID-vkBindBufferMemory-buffer-09201YNegativeDescriptorBuffer.DescriptorBufferCaptureReplayexplicitvkBindBufferMemoryIf 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.BindNullimplicitvkBindBufferMemorybuffer must be a valid VkBuffer handle
VUID-vkBindBufferMemory-buffer-parentYNoneimplicitvkBindBufferMemorybuffer must have been created, allocated, or retrieved from device
VUID-vkBindBufferMemory-bufferDeviceAddress-03339YNegativeMemory.BufferDeviceAddressKHRexplicitvkBindBufferMemoryIf 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.DescriptorBufferCaptureReplayexplicitvkBindBufferMemoryIf 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.DescriptorBufferCaptureReplayexplicitvkBindBufferMemoryIf 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-parameterYNoneimplicitvkBindBufferMemorydevice must be a valid VkDevice handle
VUID-vkBindBufferMemory-memory-01035YNegativeAndroidHardwareBuffer.ImportBufferHandleType, NegativeMemory.BindMemoryUnsupported, NegativeProtectedMemory.MemoryexplicitvkBindBufferMemorymemory 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.DedicatedAllocationBindingexplicitvkBindBufferMemoryIf 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.ExportBufferHandleTypeexplicitvkBindBufferMemoryIf 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.ImportMemoryHandleTypeexplicitvkBindBufferMemoryIf 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.ImportBufferHandleTypeexplicitvkBindBufferMemoryIf 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.BindMemoryimplicitvkBindBufferMemorymemory must be a valid VkDeviceMemory handle
VUID-vkBindBufferMemory-memory-parentYNoneimplicitvkBindBufferMemorymemory must have been created, allocated, or retrieved from device
VUID-vkBindBufferMemory-memoryOffset-01031YNegativeMemory.BindMemoryexplicitvkBindBufferMemorymemoryOffset must be less than the size of memory
VUID-vkBindBufferMemory-memoryOffset-01036YNegativeAndroidHardwareBuffer.InvalidBindBufferMemory, NegativeMemory.BindMemory, NegativeMemory.BindMemoryNoCheckexplicitvkBindBufferMemorymemoryOffset 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.DedicatedAllocationBindingexplicitvkBindBufferMemoryThe 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-arraylengthYNoneimplicitvkBindBufferMemory2bindInfoCount must be greater than 0
VUID-vkBindBufferMemory2-device-parameterYNoneimplicitvkBindBufferMemory2device must be a valid VkDevice handle
VUID-vkBindBufferMemory2-pBindInfos-parameterYNoneimplicitvkBindBufferMemory2pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindBufferMemoryInfo structures
VUID-vkBindImageMemory-None-01901YNegativeProtectedMemory.MemoryexplicitvkBindImageMemoryIf 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.MemoryexplicitvkBindImageMemoryIf 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-07921NNoneexplicitvkBindImageMemoryIf 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.DescriptorBufferCaptureReplayexplicitvkBindImageMemoryIf 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-parameterYNoneimplicitvkBindImageMemorydevice must be a valid VkDevice handle
VUID-vkBindImageMemory-image-01045YNegativeMemory.BindMemoryexplicitvkBindImageMemoryimage must not have been created with any sparse memory binding flags
VUID-vkBindImageMemory-image-01050NNoneexplicitvkBindImageMemoryIf 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-01445NNoneexplicitvkBindImageMemoryIf 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.BindMemoryexplicitvkBindImageMemoryimage must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT set
VUID-vkBindImageMemory-image-06392NNoneexplicitvkBindImageMemoryIf 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.RebindMemoryMultiObjectDebugUtilsexplicitvkBindImageMemoryimage must not have been bound to a memory object
VUID-vkBindImageMemory-image-09202YNegativeDescriptorBuffer.DescriptorBufferCaptureReplayexplicitvkBindImageMemoryIf 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.BindMemoryToDestroyedObjectimplicitvkBindImageMemoryimage must be a valid VkImage handle
VUID-vkBindImageMemory-image-parentYNoneimplicitvkBindImageMemoryimage must have been created, allocated, or retrieved from device
VUID-vkBindImageMemory-memory-01047YNegativeAndroidHardwareBuffer.ImportImageHandleType, NegativeMemory.BindImageMemoryType, NegativeMemory.BindMemoryUnsupported, NegativeProtectedMemory.MemoryexplicitvkBindImageMemorymemory 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.DedicatedAllocationBindingexplicitvkBindImageMemoryIf 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.DedicatedAllocationImageAliasingexplicitvkBindImageMemoryIf 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.ExportImageHandleTypeexplicitvkBindImageMemoryIf 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.ImportMemoryHandleTypeexplicitvkBindImageMemoryIf 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.ImportImageHandleTypeexplicitvkBindImageMemoryIf 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.BindMemoryimplicitvkBindImageMemorymemory must be a valid VkDeviceMemory handle
VUID-vkBindImageMemory-memory-parentYNoneimplicitvkBindImageMemorymemory must have been created, allocated, or retrieved from device
VUID-vkBindImageMemory-memoryOffset-01046YNegativeMemory.BindMemoryexplicitvkBindImageMemorymemoryOffset must be less than the size of memory
VUID-vkBindImageMemory-memoryOffset-01048YNegativeMemory.BindMemory, NegativeMemory.BindMemoryNoCheckexplicitvkBindImageMemorymemoryOffset 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.DedicatedAllocationImageAliasingexplicitvkBindImageMemoryThe 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-arraylengthYNoneimplicitvkBindImageMemory2bindInfoCount must be greater than 0
VUID-vkBindImageMemory2-device-parameterYNoneimplicitvkBindImageMemory2device must be a valid VkDevice handle
VUID-vkBindImageMemory2-pBindInfos-02858YNegativeMemory.BindMemory2BindInfos, NegativeYcbcr.BindMemoryexplicitvkBindImageMemory2If 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.BindMemory2BindInfosexplicitvkBindImageMemory2pBindInfos must not refer to the same image subresource more than once
VUID-vkBindImageMemory2-pBindInfos-parameterYNoneimplicitvkBindImageMemory2pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures
VUID-vkBindOpticalFlowSessionImageNV-bindingPoint-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVbindingPoint must be a valid VkOpticalFlowSessionBindingPointNV value
VUID-vkBindOpticalFlowSessionImageNV-device-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVdevice must be a valid VkDevice handle
VUID-vkBindOpticalFlowSessionImageNV-layout-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVlayout must be a valid VkImageLayout value
VUID-vkBindOpticalFlowSessionImageNV-session-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVsession must be a valid VkOpticalFlowSessionNV handle
VUID-vkBindOpticalFlowSessionImageNV-session-parentYNoneimplicitvkBindOpticalFlowSessionImageNVsession must have been created, allocated, or retrieved from device
VUID-vkBindOpticalFlowSessionImageNV-view-parameterYNoneimplicitvkBindOpticalFlowSessionImageNVIf view is not VK_NULL_HANDLE, view must be a valid VkImageView handle
VUID-vkBindOpticalFlowSessionImageNV-view-parentYNoneimplicitvkBindOpticalFlowSessionImageNVIf view is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBindVideoSessionMemoryKHR-bindSessionMemoryInfoCount-arraylengthYNoneimplicitvkBindVideoSessionMemoryKHRbindSessionMemoryInfoCount must be greater than 0
VUID-vkBindVideoSessionMemoryKHR-device-parameterYNoneimplicitvkBindVideoSessionMemoryKHRdevice must be a valid VkDevice handle
VUID-vkBindVideoSessionMemoryKHR-memoryBindIndex-07196YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRThe memoryBindIndex member of each element of pBindSessionMemoryInfos must be unique within pBindSessionMemoryInfos
VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07197YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHREach element of pBindSessionMemoryInfos must have a corresponding VkMemoryRequirements structure
VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-07198YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRIf 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.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRIf 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.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRIf 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-parameterYNoneimplicitvkBindVideoSessionMemoryKHRpBindSessionMemoryInfos must be a valid pointer to an array of bindSessionMemoryInfoCount valid VkBindVideoSessionMemoryInfoKHR structures
VUID-vkBindVideoSessionMemoryKHR-videoSession-07195YNegativeVideo.BindVideoSessionMemoryexplicitvkBindVideoSessionMemoryKHRThe 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-parameterYNoneimplicitvkBindVideoSessionMemoryKHRvideoSession must be a valid VkVideoSessionKHR handle
VUID-vkBindVideoSessionMemoryKHR-videoSession-parentYNoneimplicitvkBindVideoSessionMemoryKHRvideoSession must have been created, allocated, or retrieved from device
VUID-vkBuildAccelerationStructuresKHR-None-03407NNoneexplicitvkBuildAccelerationStructuresKHRThe 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-03581YNoneexplicitvkBuildAccelerationStructuresKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03678YNoneexplicitvkBuildAccelerationStructuresKHRAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parameterYNegativeRayTracing.BuildAccelerationStructuresDeferredOperationimplicitvkBuildAccelerationStructuresKHRIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parentYNoneimplicitvkBuildAccelerationStructuresKHRIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBuildAccelerationStructuresKHR-device-parameterYNoneimplicitvkBuildAccelerationStructuresKHRdevice must be a valid VkDevice handle
VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03698YNoneexplicitvkBuildAccelerationStructuresKHRThe 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-03701YNoneexplicitvkBuildAccelerationStructuresKHRThe 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-03702YNoneexplicitvkBuildAccelerationStructuresKHRThe 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-03703NNoneexplicitvkBuildAccelerationStructuresKHRThe 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-03706NNoneexplicitvkBuildAccelerationStructuresKHRThe 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.HostCmdBuildAccelerationStructuresKHRexplicitvkBuildAccelerationStructuresKHRThe dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkBuildAccelerationStructuresKHR-infoCount-arraylengthYNoneimplicitvkBuildAccelerationStructuresKHRinfoCount must be greater than 0
VUID-vkBuildAccelerationStructuresKHR-mode-04628YNegativeRayTracing.BuildAccelerationStructureModeexplicitvkBuildAccelerationStructuresKHRThe mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkBuildAccelerationStructuresKHR-pInfos-03403YNoneexplicitvkBuildAccelerationStructuresKHRThe 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-03663NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03664NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03667YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03668YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03699YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03700YNoneexplicitvkBuildAccelerationStructuresKHRFor 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.WriteAccelerationStructureMemoryexplicitvkBuildAccelerationStructuresKHRFor each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to host-visible device memory
VUID-vkBuildAccelerationStructuresKHR-pInfos-03723YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03724NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03725YNegativeRayTracing.HostAccelerationStructureBuildNullPointersexplicitvkBuildAccelerationStructuresKHRIf 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-03726YNegativeRayTracing.HostAccelerationStructureBuildNullPointersexplicitvkBuildAccelerationStructuresKHRIf 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.BuildAccelerationStructureModeUpdateexplicitvkBuildAccelerationStructuresKHRFor 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-03759YNoneexplicitvkBuildAccelerationStructuresKHRFor 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.BuildAccelerationStructureModeUpdateexplicitvkBuildAccelerationStructuresKHRFor 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-03761YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03762YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03763YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03764YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03765YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03766YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03767YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03768NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03771YNegativeRayTracing.HostAccelerationStructureBuildNullPointersexplicitvkBuildAccelerationStructuresKHRFor 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-03772YNegativeRayTracing.HostAccelerationStructureBuildNullPointersexplicitvkBuildAccelerationStructuresKHRFor 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-03773NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03774YNegativeRayTracing.HostAccelerationStructureBuildNullPointersexplicitvkBuildAccelerationStructuresKHRFor 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-03775YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03776YNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03777NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03778YNegativeRayTracing.HostAccelerationStructureBuildNullPointersexplicitvkBuildAccelerationStructuresKHRFor 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-03779YNegativeRayTracing.HostInstanceInvalidexplicitvkBuildAccelerationStructuresKHRFor 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-03801NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-04630YNegativeRayTracing.HostAccelerationStructureBuildNullPointersexplicitvkBuildAccelerationStructuresKHRFor 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-04930NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-10126YNoneexplicitvkBuildAccelerationStructuresKHRFor each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to either: 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) or, the result of querying the corresponding VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, if updating a compacted acceleration structure
VUID-vkBuildAccelerationStructuresKHR-pInfos-parameterYNoneimplicitvkBuildAccelerationStructuresKHRpInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676YNoneexplicitvkBuildAccelerationStructuresKHREach element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameterYNoneimplicitvkBuildAccelerationStructuresKHRppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769NNoneexplicitvkBuildAccelerationStructuresKHRFor 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-03704YNegativeRayTracing.HostBuildOverlappingScratchBuffersexplicitvkBuildAccelerationStructuresKHRThe 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-03705NNoneexplicitvkBuildAccelerationStructuresKHRThe 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-04629YNoneexplicitvkBuildAccelerationStructuresKHRIf 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-parameterYNoneimplicitvkBuildMicromapsEXTIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkBuildMicromapsEXT-deferredOperation-parentYNoneimplicitvkBuildMicromapsEXTIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBuildMicromapsEXT-device-parameterYNoneimplicitvkBuildMicromapsEXTdevice must be a valid VkDevice handle
VUID-vkBuildMicromapsEXT-dstMicromap-07463NNoneexplicitvkBuildMicromapsEXTThe dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle
VUID-vkBuildMicromapsEXT-dstMicromap-07465NNoneexplicitvkBuildMicromapsEXTThe 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-07466NNoneexplicitvkBuildMicromapsEXTThe 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-arraylengthYNoneimplicitvkBuildMicromapsEXTinfoCount must be greater than 0
VUID-vkBuildMicromapsEXT-micromapHostCommands-07555NNoneexplicitvkBuildMicromapsEXTThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkBuildMicromapsEXT-mode-07462NNoneexplicitvkBuildMicromapsEXTThe mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value
VUID-vkBuildMicromapsEXT-pInfos-07461NNoneexplicitvkBuildMicromapsEXTFor 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-07464NNoneexplicitvkBuildMicromapsEXTFor each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created
VUID-vkBuildMicromapsEXT-pInfos-07552NNoneexplicitvkBuildMicromapsEXTFor each element of pInfos, the buffer used to create its dstMicromap member must be bound to host-visible device memory
VUID-vkBuildMicromapsEXT-pInfos-07553NNoneexplicitvkBuildMicromapsEXTFor each element of pInfos, all referenced addresses of pInfos[i].data.hostAddress must be valid host memory
VUID-vkBuildMicromapsEXT-pInfos-07554NNoneexplicitvkBuildMicromapsEXTFor each element of pInfos, all referenced addresses of pInfos[i].triangleArray.hostAddress must be valid host memory
VUID-vkBuildMicromapsEXT-pInfos-07556NNoneexplicitvkBuildMicromapsEXTIf 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-07557NNoneexplicitvkBuildMicromapsEXTFor 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-parameterYNoneimplicitvkBuildMicromapsEXTpInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures
VUID-vkBuildMicromapsEXT-scratchData-07467NNoneexplicitvkBuildMicromapsEXTThe 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.BeginConditionalRenderingexplicitvkCmdBeginConditionalRenderingEXTConditional rendering must not already be active
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginConditionalRenderingEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginConditionalRenderingEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginConditionalRenderingEXTcommandBuffer must be in the recording state
VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameterYNoneimplicitvkCmdBeginConditionalRenderingEXTpConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure
VUID-vkCmdBeginConditionalRenderingEXT-videocodingYNoneimplicitvkCmdBeginConditionalRenderingEXTThis command must only be called outside of a video coding scope
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginDebugUtilsLabelEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginDebugUtilsLabelEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginDebugUtilsLabelEXTcommandBuffer must be in the recording state
VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkCmdBeginDebugUtilsLabelEXTpLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkCmdBeginDebugUtilsLabelEXT-videocodingYNoneimplicitvkCmdBeginDebugUtilsLabelEXTThis command must only be called outside of a video coding scope
VUID-vkCmdBeginQuery-None-00807YNegativeQuery.NoInitResetexplicitvkCmdBeginQueryAll queries used by the command must be unavailable
VUID-vkCmdBeginQuery-None-02863YNegativeQuery.PerformanceResetAndBeginexplicitvkCmdBeginQueryIf 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.BeginQueryVideoCodingScopeQueryAlreadyActiveexplicitvkCmdBeginQueryIf there is a bound video session, then there must be no active queries
VUID-vkCmdBeginQuery-None-08370YNegativeVideo.BeginQueryInlineQueriesexplicitvkCmdBeginQueryIf 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.UnprotectedCommandsexplicitvkCmdBeginQuerycommandBuffer must not be a protected command buffer
VUID-vkCmdBeginQuery-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginQueryThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdBeginQuery-commandBuffer-parameterYNoneimplicitvkCmdBeginQuerycommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginQuery-commandBuffer-recordingYNoneimplicitvkCmdBeginQuerycommandBuffer must be in the recording state
VUID-vkCmdBeginQuery-commonparentYNoneimplicitvkCmdBeginQueryBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBeginQuery-flags-parameterYNoneimplicitvkCmdBeginQueryflags must be a valid combination of VkQueryControlFlagBits values
VUID-vkCmdBeginQuery-query-00802YNoneexplicitvkCmdBeginQueryquery must be less than the number of queries in queryPool
VUID-vkCmdBeginQuery-query-00808YNegativeQuery.MultiviewBeginQueryexplicitvkCmdBeginQueryIf 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.UnclosedAndDuplicateQueriesexplicitvkCmdBeginQueryqueryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer
VUID-vkCmdBeginQuery-queryPool-03223YNegativeQuery.PerformanceCreationexplicitvkCmdBeginQueryIf 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.PerformanceCounterCommandbufferScopeexplicitvkCmdBeginQueryIf 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.PerformanceCounterRenderPassScopeexplicitvkCmdBeginQueryIf 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-03226YNoneexplicitvkCmdBeginQueryIf 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.PerfQueryQueueFamilyIndexexplicitvkCmdBeginQueryIf 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-parameterYNoneimplicitvkCmdBeginQueryqueryPool must be a valid VkQueryPool handle
VUID-vkCmdBeginQuery-queryType-00800YNegativeQuery.PreciseBitexplicitvkCmdBeginQueryIf 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.BeginQueryVideoCodingScopeIncompatibleQueryTypeexplicitvkCmdBeginQueryIf 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.PipelineStatisticsQueryexplicitvkCmdBeginQueryIf 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.PipelineStatisticsQueryexplicitvkCmdBeginQueryIf 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-02327YNoneexplicitvkCmdBeginQueryIf 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.TransformFeedbackStreamexplicitvkCmdBeginQueryIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported
VUID-vkCmdBeginQuery-queryType-02804YNegativeQuery.BeginQueryOnTimestampPoolexplicitvkCmdBeginQueryThe queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdBeginQuery-queryType-04728YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryThe 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.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryThe queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdBeginQuery-queryType-06687YNegativeQuery.PrimitivesGeneratedexplicitvkCmdBeginQueryIf 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.PrimitivesGeneratedFeatureexplicitvkCmdBeginQueryIf the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled
VUID-vkCmdBeginQuery-queryType-06741YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryThe 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-07070YNoneexplicitvkCmdBeginQueryIf 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.BeginQueryIncompatibleQueueFamilyexplicitvkCmdBeginQueryIf 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.BeginQueryVideoCodingScopeIncompatibleQueryTypeexplicitvkCmdBeginQueryIf 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.BeginQueryEncodeFeedbackNoBoundVideoSessionexplicitvkCmdBeginQueryIf 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.BeginQueryEncodeFeedbackProfileMismatchexplicitvkCmdBeginQueryIf 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.BeginQueryVideoCodingScopeIncompatibleQueryTypeexplicitvkCmdBeginQueryIf 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-00807YNoneexplicitvkCmdBeginQueryIndexedEXTAll queries used by the command must be unavailable
VUID-vkCmdBeginQueryIndexedEXT-None-02863YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-07127YNoneexplicitvkCmdBeginQueryIndexedEXTIf there is a bound video session, then there must be no active queries
VUID-vkCmdBeginQueryIndexedEXT-None-08370YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-01885YNoneexplicitvkCmdBeginQueryIndexedEXTcommandBuffer must not be a protected command buffer
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginQueryIndexedEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginQueryIndexedEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginQueryIndexedEXTcommandBuffer must be in the recording state
VUID-vkCmdBeginQueryIndexedEXT-commonparentYNoneimplicitvkCmdBeginQueryIndexedEXTBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBeginQueryIndexedEXT-flags-parameterYNoneimplicitvkCmdBeginQueryIndexedEXTflags must be a valid combination of VkQueryControlFlagBits values
VUID-vkCmdBeginQueryIndexedEXT-query-00802YNoneexplicitvkCmdBeginQueryIndexedEXTquery must be less than the number of queries in queryPool
VUID-vkCmdBeginQueryIndexedEXT-query-00808YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-03223YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-03224YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-03225YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-03226YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-04753YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-07289YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-parameterYNoneimplicitvkCmdBeginQueryIndexedEXTqueryPool must be a valid VkQueryPool handle
VUID-vkCmdBeginQueryIndexedEXT-queryType-00800YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-00803YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-00804YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-00805YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-02338YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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.CmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdBeginQueryIndexedEXTIf 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-02341YNoneexplicitvkCmdBeginQueryIndexedEXTIf the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported
VUID-vkCmdBeginQueryIndexedEXT-queryType-02804YNoneexplicitvkCmdBeginQueryIndexedEXTThe queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdBeginQueryIndexedEXT-queryType-04728YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryIndexedEXTThe 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.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryIndexedEXTThe queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdBeginQueryIndexedEXT-queryType-06689YNegativeQuery.PrimitivesGeneratedexplicitvkCmdBeginQueryIndexedEXTIf 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.PrimitivesGeneratedexplicitvkCmdBeginQueryIndexedEXTIf 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.PrimitivesGeneratedexplicitvkCmdBeginQueryIndexedEXTIf 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.PrimitivesGeneratedexplicitvkCmdBeginQueryIndexedEXTIf 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.PrimitivesGeneratedFeatureexplicitvkCmdBeginQueryIndexedEXTIf the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled
VUID-vkCmdBeginQueryIndexedEXT-queryType-06741YNegativeRayTracing.BeginQueryQueryPoolTypeexplicitvkCmdBeginQueryIndexedEXTThe 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-07071YNoneexplicitvkCmdBeginQueryIndexedEXTThe queryType used to create queryPool must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT
VUID-vkCmdBeginQueryIndexedEXT-queryType-07126YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-07128YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-07129YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-07130YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-07131YNoneexplicitvkCmdBeginQueryIndexedEXTIf 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-videocodingYNoneimplicitvkCmdBeginQueryIndexedEXTThis command must only be called outside of a video coding scope
VUID-vkCmdBeginRenderPass-bufferlevelYNoneimplicitvkCmdBeginRenderPasscommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginRenderPass-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginRenderPassThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRenderPass-commandBuffer-parameterYNoneimplicitvkCmdBeginRenderPasscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRenderPass-commandBuffer-recordingYNoneimplicitvkCmdBeginRenderPasscommandBuffer must be in the recording state
VUID-vkCmdBeginRenderPass-contents-09640YNegativeRenderPass.MissingNestedCommandBuffersFeatureexplicitvkCmdBeginRenderPassIf contents is VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR, then at least one of the following features must be enabled: maintenance7 nestedCommandBuffer
VUID-vkCmdBeginRenderPass-contents-parameterYNoneimplicitvkCmdBeginRenderPasscontents must be a valid VkSubpassContents value
VUID-vkCmdBeginRenderPass-dstStageMask-06452YNoneexplicitvkCmdBeginRenderPassThe 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-02532NNoneexplicitvkCmdBeginRenderPassFor 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-09045NNoneexplicitvkCmdBeginRenderPassIf 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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.AttachmentLayoutexplicitvkCmdBeginRenderPassIf 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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.BeginLayoutsStencilBufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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-initialLayout-09537YNegativeDynamicRenderingLocalRead.BeginWithinRenderPassexplicitvkCmdBeginRenderPassIf 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_RENDERING_LOCAL_READ_KHR then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including either VK_IMAGE_USAGE_STORAGE_BIT, or both VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT and either of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameterYNegativeRenderPass.NullRenderPass, NegativeRenderPass.RenderPassBeginimplicitvkCmdBeginRenderPasspRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure
VUID-vkCmdBeginRenderPass-renderpassYNegativeRenderPass.BeginWithinRenderPassimplicitvkCmdBeginRenderPassThis command must only be called outside of a render pass instance
VUID-vkCmdBeginRenderPass-srcStageMask-06451YNoneexplicitvkCmdBeginRenderPassThe 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.BeginLayoutsStencilBufferImageUsageMismatchesexplicitvkCmdBeginRenderPassIf 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-videocodingYNoneimplicitvkCmdBeginRenderPassThis command must only be called outside of a video coding scope
VUID-vkCmdBeginRenderPass2-bufferlevelYNoneimplicitvkCmdBeginRenderPass2commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginRenderPass2The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRenderPass2-commandBuffer-parameterYNoneimplicitvkCmdBeginRenderPass2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRenderPass2-commandBuffer-recordingYNoneimplicitvkCmdBeginRenderPass2commandBuffer must be in the recording state
VUID-vkCmdBeginRenderPass2-dstStageMask-06454YNoneexplicitvkCmdBeginRenderPass2The 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-02533NNoneexplicitvkCmdBeginRenderPass2For 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-02779NNoneexplicitvkCmdBeginRenderPass2Both the framebuffer and renderPass members of pRenderPassBegin must have been created on the same VkDevice that commandBuffer was allocated on
VUID-vkCmdBeginRenderPass2-framebuffer-09046NNoneexplicitvkCmdBeginRenderPass2If 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.BeginLayoutsStencilBufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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-03100YNoneexplicitvkCmdBeginRenderPass2If 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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.BeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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-initialLayout-09538YNegativeDynamicRenderingLocalRead.BeginWithinRenderPassexplicitvkCmdBeginRenderPass2If 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_RENDERING_LOCAL_READ_KHR then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including either VK_IMAGE_USAGE_STORAGE_BIT, or both VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT and either of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameterYNoneimplicitvkCmdBeginRenderPass2pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure
VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameterYNoneimplicitvkCmdBeginRenderPass2pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure
VUID-vkCmdBeginRenderPass2-renderpassYNegativeRenderPass.BeginWithinRenderPassimplicitvkCmdBeginRenderPass2This command must only be called outside of a render pass instance
VUID-vkCmdBeginRenderPass2-srcStageMask-06453YNoneexplicitvkCmdBeginRenderPass2The 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.BeginLayoutsStencilBufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2If 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-videocodingYNoneimplicitvkCmdBeginRenderPass2This command must only be called outside of a video coding scope
VUID-vkCmdBeginRendering-commandBuffer-06068YNegativeDynamicRendering.BeginRenderingWithSecondaryContentsexplicitvkCmdBeginRenderingIf 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-cmdpoolYNoneimplicitvkCmdBeginRenderingThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRendering-commandBuffer-parameterYNoneimplicitvkCmdBeginRenderingcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRendering-commandBuffer-recordingYNoneimplicitvkCmdBeginRenderingcommandBuffer must be in the recording state
VUID-vkCmdBeginRendering-dynamicRendering-06446YNegativeDynamicRendering.BeginRenderingDisabledexplicitvkCmdBeginRenderingThe dynamicRendering feature must be enabled
VUID-vkCmdBeginRendering-pRenderingInfo-09588NNoneexplicitvkCmdBeginRenderingIf pRenderingInfo->pDepthAttachment is not NULL and pRenderingInfo->pDepthAttachment->imageView is not VK_NULL_HANDLE, pRenderingInfo->pDepthAttachment->imageView must be in the layout specified by pRenderingInfo->pDepthAttachment->imageLayout
VUID-vkCmdBeginRendering-pRenderingInfo-09589NNoneexplicitvkCmdBeginRenderingIf pRenderingInfo->pDepthAttachment is not NULL, pRenderingInfo->pDepthAttachment->imageView is not VK_NULL_HANDLE, pRenderingInfo->pDepthAttachment->imageResolveMode is not VK_RESOLVE_MODE_NONE, and pRenderingInfo->pDepthAttachment->resolveImageView is not VK_NULL_HANDLE, pRenderingInfo->pDepthAttachment->resolveImageView must be in the layout specified by pRenderingInfo->pDepthAttachment->resolveImageLayout
VUID-vkCmdBeginRendering-pRenderingInfo-09590NNoneexplicitvkCmdBeginRenderingIf pRenderingInfo->pStencilAttachment is not NULL and pRenderingInfo->pStencilAttachment->imageView is not VK_NULL_HANDLE, pRenderingInfo->pStencilAttachment->imageView must be in the layout specified by pRenderingInfo->pStencilAttachment->imageLayout
VUID-vkCmdBeginRendering-pRenderingInfo-09591NNoneexplicitvkCmdBeginRenderingIf pRenderingInfo->pStencilAttachment is not NULL, pRenderingInfo->pStencilAttachment->imageView is not VK_NULL_HANDLE, pRenderingInfo->pStencilAttachment->imageResolveMode is not VK_RESOLVE_MODE_NONE, and pRenderingInfo->pStencilAttachment->resolveImageView is not VK_NULL_HANDLE, pRenderingInfo->pStencilAttachment->resolveImageView must be in the layout specified by pRenderingInfo->pStencilAttachment->resolveImageLayout
VUID-vkCmdBeginRendering-pRenderingInfo-09592NNoneexplicitvkCmdBeginRenderingFor any element of pRenderingInfo->pColorAttachments, if imageView is not VK_NULL_HANDLE, that image view must be in the layout specified by imageLayout
VUID-vkCmdBeginRendering-pRenderingInfo-09593NNoneexplicitvkCmdBeginRenderingFor any element of pRenderingInfo->pColorAttachments, if either imageResolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, or imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, and resolveImageView is not VK_NULL_HANDLE, resolveImageView must be in the layout specified by resolveImageLayout
VUID-vkCmdBeginRendering-pRenderingInfo-parameterYNoneimplicitvkCmdBeginRenderingpRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure
VUID-vkCmdBeginRendering-renderpassYNegativeDynamicRendering.BeginTwiceimplicitvkCmdBeginRenderingThis command must only be called outside of a render pass instance
VUID-vkCmdBeginRendering-videocodingYNoneimplicitvkCmdBeginRenderingThis command must only be called outside of a video coding scope
VUID-vkCmdBeginTransformFeedbackEXT-None-02367YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTTransform feedback must not be active
VUID-vkCmdBeginTransformFeedbackEXT-None-02373YNegativeMultiview.BeginTransformFeedbackexplicitvkCmdBeginTransformFeedbackEXTTransform feedback must not be made active in a render pass instance with multiview enabled
VUID-vkCmdBeginTransformFeedbackEXT-None-04128YNegativeMultiview.BeginTransformFeedback, NegativeTransformFeedback.XfbExecutionModeCommandexplicitvkCmdBeginTransformFeedbackEXTThe last pre-rasterization shader stage of the bound graphics pipeline must have been declared with the Xfb execution mode
VUID-vkCmdBeginTransformFeedbackEXT-None-06233YNegativeTransformFeedback.NoBoundPipelineexplicitvkCmdBeginTransformFeedbackEXTIf the shaderObject feature is not enabled, a valid graphics pipeline must be bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginTransformFeedbackEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginTransformFeedbackEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recordingYNegativeTransformFeedback.ExecuteSecondaryCommandBuffersimplicitvkCmdBeginTransformFeedbackEXTcommandBuffer must be in the recording state
VUID-vkCmdBeginTransformFeedbackEXT-commonparentYNoneimplicitvkCmdBeginTransformFeedbackEXTBoth 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-02607YNoneexplicitvkCmdBeginTransformFeedbackEXTIf 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.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTfirstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTThe sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-09630YNegativeTransformFeedback.NoBoundPipelineexplicitvkCmdBeginTransformFeedbackEXTThe sum of firstCounterBuffer and counterBufferCount must be less than or equal to the number of transform feedback buffers currently bound by vkCmdBindTransformFeedbackBuffersEXT
VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTIf pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL
VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370YNegativeTransformFeedback.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTFor 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-parameterYNoneimplicitvkCmdBeginTransformFeedbackEXTIf 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.CmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXTFor 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.CmdBeginTransformFeedbackOutsideRenderPassimplicitvkCmdBeginTransformFeedbackEXTThis command must only be called inside of a render pass instance
VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366YNegativeTransformFeedback.FeatureEnabledexplicitvkCmdBeginTransformFeedbackEXTVkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdBeginTransformFeedbackEXT-videocodingYNoneimplicitvkCmdBeginTransformFeedbackEXTThis command must only be called outside of a video coding scope
VUID-vkCmdBeginVideoCodingKHR-None-07232YNegativeVideo.BeginCodingActiveQueriesNotAllowedexplicitvkCmdBeginVideoCodingKHRThere must be no active queries
VUID-vkCmdBeginVideoCodingKHR-bufferlevelYNoneimplicitvkCmdBeginVideoCodingKHRcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-07231YNegativeVideo.BeginCodingUnsupportedCodecOp, NegativeVideo.DecodeInlineQueryIncompatibleQueueFamily, NegativeVideo.EncodeInlineQueryIncompatibleQueueFamilyexplicitvkCmdBeginVideoCodingKHRThe 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.BeginCodingProtectedNoFaultSessionexplicitvkCmdBeginVideoCodingKHRIf 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.BeginCodingProtectedNoFaultSessionexplicitvkCmdBeginVideoCodingKHRIf 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.BeginCodingProtectedNoFaultSlotsexplicitvkCmdBeginVideoCodingKHRIf 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.BeginCodingProtectedNoFaultSlotsexplicitvkCmdBeginVideoCodingKHRIf 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.EncodeInlineQueryIncompatibleQueueFamilyimplicitvkCmdBeginVideoCodingKHRThe VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdBeginVideoCodingKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdBeginVideoCodingKHRcommandBuffer must be in the recording state
VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-08253YNegativeVideo.EncodeRateControlStateMismatchNotDefaultexplicitvkCmdBeginVideoCodingKHRIf 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-08254YNoneexplicitvkCmdBeginVideoCodingKHRIf 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.BeginCodingEncodeH264MissingGopRemainingFramesexplicitvkCmdBeginVideoCodingKHRIf 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.BeginCodingEncodeH265MissingGopRemainingFramesexplicitvkCmdBeginVideoCodingKHRIf 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-parameterYNoneimplicitvkCmdBeginVideoCodingKHRpBeginInfo must be a valid pointer to a valid VkVideoBeginCodingInfoKHR structure
VUID-vkCmdBeginVideoCodingKHR-pPictureResource-07265YNegativeVideo.BeginCodingDecodeInvalidSlotResourceAssociationexplicitvkCmdBeginVideoCodingKHREach 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-renderpassYNoneimplicitvkCmdBeginVideoCodingKHRThis command must only be called outside of a render pass instance
VUID-vkCmdBeginVideoCodingKHR-slotIndex-07239YNegativeVideo.BeginCodingDecodeSlotInactive, NegativeVideo.DecodeImplicitDeactivation, NegativeVideo.DecodeImplicitDeactivationH264Interlaced, PositiveVideo.BeginCodingOutOfBoundsSlotIndexexplicitvkCmdBeginVideoCodingKHRIf 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.VideoCodingScopeimplicitvkCmdBeginVideoCodingKHRThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTcommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-descriptorBuffer-09472YNoneexplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTThe descriptorBuffer feature must be enabled
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-pBindDescriptorBufferEmbeddedSamplersInfo-09473YNoneexplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTEach bit in pBindDescriptorBufferEmbeddedSamplersInfo->stageFlags must be a stage supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-pBindDescriptorBufferEmbeddedSamplersInfo-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTpBindDescriptorBufferEmbeddedSamplersInfo must be a valid pointer to a valid VkBindDescriptorBufferEmbeddedSamplersInfoEXT structure
VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-videocodingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplers2EXTThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-None-08068YNegativeDescriptorBuffer.NotEnabledexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTThe descriptorBuffer feature must be enabled
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTcommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commonparentYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-layout-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTlayout must be a valid VkPipelineLayout handle
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-08069YNegativeDescriptorBuffer.BindPointexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTpipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08070YNegativeDescriptorBuffer.CmdBindDescriptorBufferEmbeddedSamplersexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTThe 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.CmdBindDescriptorBufferEmbeddedSamplersexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTset must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-videocodingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXTThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBuffersEXT-None-08047YNegativeDescriptorBuffer.NotEnabledBufferDeviceAddressexplicitvkCmdBindDescriptorBuffersEXTThe descriptorBuffer feature must be enabled
VUID-vkCmdBindDescriptorBuffersEXT-None-08050YNegativeDescriptorBuffer.BufferlessPushDescriptorsOffexplicitvkCmdBindDescriptorBuffersEXTThere 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.BufferlessPushDescriptors, NegativeDescriptorBuffer.BufferlessPushDescriptorsOffexplicitvkCmdBindDescriptorBuffersEXTbufferCount must be less than or equal to VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-arraylengthYNoneimplicitvkCmdBindDescriptorBuffersEXTbufferCount must be greater than 0
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorBuffersEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorBuffersEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorBuffersEXTcommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049YNegativeDescriptorBuffer.BufferlessPushDescriptors, NegativeDescriptorBuffer.BufferlessPushDescriptorsOffexplicitvkCmdBindDescriptorBuffersEXTThere must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindings descriptor buffers containing resource descriptor data bound
VUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048YNegativeDescriptorBuffer.BufferlessPushDescriptors, NegativeDescriptorBuffer.BufferlessPushDescriptorsOffexplicitvkCmdBindDescriptorBuffersEXTThere must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindings descriptor buffers containing sampler descriptor data bound
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052YNoneexplicitvkCmdBindDescriptorBuffersEXTFor 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-08053NNoneexplicitvkCmdBindDescriptorBuffersEXTFor 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-08054NNoneexplicitvkCmdBindDescriptorBuffersEXTFor 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.BindingInfoUsage, NegativeDescriptorBuffer.BindingInfoUsageMultiBuffersexplicitvkCmdBindDescriptorBuffersEXTFor any element of pBindingInfos, usage must match the buffer from which address was queried
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-parameterYNoneimplicitvkCmdBindDescriptorBuffersEXTpBindingInfos must be a valid pointer to an array of bufferCount valid VkDescriptorBufferBindingInfoEXT structures
VUID-vkCmdBindDescriptorBuffersEXT-videocodingYNoneimplicitvkCmdBindDescriptorBuffersEXTThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorSetsThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorSets-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorSetscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorSets-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorSetscommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorSets-commonparentYNoneimplicitvkCmdBindDescriptorSetsEach 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.ValidateArrayLengthimplicitvkCmdBindDescriptorSetsdescriptorSetCount must be greater than 0
VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359YNegativeDescriptors.DynamicOffsetCasesexplicitvkCmdBindDescriptorSetsdynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets
VUID-vkCmdBindDescriptorSets-firstSet-00360YNegativeDescriptors.DescriptorSet, NegativeDescriptors.DescriptorSetCompatibilityexplicitvkCmdBindDescriptorSetsThe sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdBindDescriptorSets-layout-parameterYNegativeDescriptors.DescriptorSetCompatibilityimplicitvkCmdBindDescriptorSetslayout must be a valid VkPipelineLayout handle
VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358YNegativeDescriptors.DescriptorSet, NegativeGraphicsLibrary.BindEmptyDS, NegativeGraphicsLibrary.ImmutableSamplersIncompatibleDSL, PositiveThreading.DebugObjectNamesexplicitvkCmdBindDescriptorSetsEach 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.DynamicOffsetCasesexplicitvkCmdBindDescriptorSetsFor 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.BindingDescriptorSetFromHostOnlyPoolexplicitvkCmdBindDescriptorSetsEach 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.DescriptorSetsGPLexplicitvkCmdBindDescriptorSetsIf graphicsPipelineLibrary is not enabled, each element of pDescriptorSets must be a valid VkDescriptorSet
VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715YNegativeDescriptors.DynamicDescriptorSetexplicitvkCmdBindDescriptorSetsFor 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.BindingexplicitvkCmdBindDescriptorSetsEach 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.DescriptorSetimplicitvkCmdBindDescriptorSetspDescriptorSets must be a valid pointer to an array of descriptorSetCount valid or VK_NULL_HANDLE VkDescriptorSet handles
VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971YNegativeDescriptors.DynamicDescriptorSetexplicitvkCmdBindDescriptorSetsEach 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.BindStorageBufferDynamicAlignmentexplicitvkCmdBindDescriptorSetsEach 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-parameterYNoneimplicitvkCmdBindDescriptorSetsIf dynamicOffsetCount is not 0, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount uint32_t values
VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361YNegativeCommand.DescriptorSetPipelineBindPointexplicitvkCmdBindDescriptorSetspipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameterYNoneimplicitvkCmdBindDescriptorSetspipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindDescriptorSets-videocodingYNoneimplicitvkCmdBindDescriptorSetsThis command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorSets2KHRThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorSets2KHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorSets2KHRcommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorSets2KHR-pBindDescriptorSetsInfo-09467YNegativeCommand.DescriptorSetPipelineBindPointMaintenance6explicitvkCmdBindDescriptorSets2KHREach bit in pBindDescriptorSetsInfo->stageFlags must be a stage supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorSets2KHR-pBindDescriptorSetsInfo-parameterYNoneimplicitvkCmdBindDescriptorSets2KHRpBindDescriptorSetsInfo must be a valid pointer to a valid VkBindDescriptorSetsInfoKHR structure
VUID-vkCmdBindDescriptorSets2KHR-videocodingYNoneimplicitvkCmdBindDescriptorSets2KHRThis command must only be called outside of a video coding scope
VUID-vkCmdBindIndexBuffer-None-09493YNegativeBuffer.IndexBufferNullexplicitvkCmdBindIndexBufferIf maintenance6 is not enabled, buffer must not be VK_NULL_HANDLE
VUID-vkCmdBindIndexBuffer-buffer-08784YNegativeCommand.BindVertexIndexBufferUsageexplicitvkCmdBindIndexBufferbuffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
VUID-vkCmdBindIndexBuffer-buffer-08785YNoneexplicitvkCmdBindIndexBufferIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindIndexBuffer-buffer-09494YNegativeBuffer.IndexBufferNullOffsetexplicitvkCmdBindIndexBufferIf buffer is VK_NULL_HANDLE, offset must be zero
VUID-vkCmdBindIndexBuffer-buffer-parameterYNegativeCommand.BindIndexBufferHandlesimplicitvkCmdBindIndexBufferIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdBindIndexBufferThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindIndexBuffer-commandBuffer-parameterYNoneimplicitvkCmdBindIndexBuffercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindIndexBuffer-commandBuffer-recordingYNoneimplicitvkCmdBindIndexBuffercommandBuffer must be in the recording state
VUID-vkCmdBindIndexBuffer-commonparentYNoneimplicitvkCmdBindIndexBufferBoth 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-08786YNoneexplicitvkCmdBindIndexBufferindexType must not be VK_INDEX_TYPE_NONE_KHR
VUID-vkCmdBindIndexBuffer-indexType-08787YNegativeBuffer.IndexBufferOffsetexplicitvkCmdBindIndexBufferIf indexType is VK_INDEX_TYPE_UINT8_KHR, the indexTypeUint8 feature must be enabled
VUID-vkCmdBindIndexBuffer-indexType-parameterYNoneimplicitvkCmdBindIndexBufferindexType must be a valid VkIndexType value
VUID-vkCmdBindIndexBuffer-offset-08782YNegativeBuffer.IndexBufferOffsetexplicitvkCmdBindIndexBufferoffset must be less than the size of buffer
VUID-vkCmdBindIndexBuffer-offset-08783YNegativeBuffer.IdxBufferAlignmentError, NegativeBuffer.IndexBufferOffsetexplicitvkCmdBindIndexBufferThe 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-videocodingYNoneimplicitvkCmdBindIndexBufferThis command must only be called outside of a video coding scope
VUID-vkCmdBindIndexBuffer2KHR-None-09493YNoneexplicitvkCmdBindIndexBuffer2KHRIf maintenance6 is not enabled, buffer must not be VK_NULL_HANDLE
VUID-vkCmdBindIndexBuffer2KHR-buffer-08784YNoneexplicitvkCmdBindIndexBuffer2KHRbuffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
VUID-vkCmdBindIndexBuffer2KHR-buffer-08785YNoneexplicitvkCmdBindIndexBuffer2KHRIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindIndexBuffer2KHR-buffer-09494YNoneexplicitvkCmdBindIndexBuffer2KHRIf buffer is VK_NULL_HANDLE, offset must be zero
VUID-vkCmdBindIndexBuffer2KHR-buffer-parameterYNoneimplicitvkCmdBindIndexBuffer2KHRIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBindIndexBuffer2KHRThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameterYNoneimplicitvkCmdBindIndexBuffer2KHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-recordingYNoneimplicitvkCmdBindIndexBuffer2KHRcommandBuffer must be in the recording state
VUID-vkCmdBindIndexBuffer2KHR-commonparentYNoneimplicitvkCmdBindIndexBuffer2KHRBoth 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-08786YNoneexplicitvkCmdBindIndexBuffer2KHRindexType must not be VK_INDEX_TYPE_NONE_KHR
VUID-vkCmdBindIndexBuffer2KHR-indexType-08787YNegativeBuffer.IndexBuffer2OffsetexplicitvkCmdBindIndexBuffer2KHRIf indexType is VK_INDEX_TYPE_UINT8_KHR, the indexTypeUint8 feature must be enabled
VUID-vkCmdBindIndexBuffer2KHR-indexType-parameterYNoneimplicitvkCmdBindIndexBuffer2KHRindexType must be a valid VkIndexType value
VUID-vkCmdBindIndexBuffer2KHR-offset-08782YNegativeBuffer.IndexBuffer2OffsetexplicitvkCmdBindIndexBuffer2KHRoffset must be less than the size of buffer
VUID-vkCmdBindIndexBuffer2KHR-offset-08783YNegativeBuffer.IndexBuffer2OffsetexplicitvkCmdBindIndexBuffer2KHRThe 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.IndexBuffer2SizeexplicitvkCmdBindIndexBuffer2KHRIf size is not VK_WHOLE_SIZE, size must be a multiple of the size of the type indicated by indexType
VUID-vkCmdBindIndexBuffer2KHR-size-08768YNegativeBuffer.IndexBuffer2SizeexplicitvkCmdBindIndexBuffer2KHRIf 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-videocodingYNoneimplicitvkCmdBindIndexBuffer2KHRThis command must only be called outside of a video coding scope
VUID-vkCmdBindInvocationMaskHUAWEI-None-04976NNoneexplicitvkCmdBindInvocationMaskHUAWEIThe invocationMask feature must be enabled
VUID-vkCmdBindInvocationMaskHUAWEI-None-04982NNoneexplicitvkCmdBindInvocationMaskHUAWEIEach element in the invocation mask image must have the value 0 or 1. The value 1 means the invocation is active
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpoolYNoneimplicitvkCmdBindInvocationMaskHUAWEIThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEIcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdBindInvocationMaskHUAWEIcommandBuffer must be in the recording state
VUID-vkCmdBindInvocationMaskHUAWEI-commonparentYNoneimplicitvkCmdBindInvocationMaskHUAWEIBoth 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-04983NNoneexplicitvkCmdBindInvocationMaskHUAWEIdepth in vkCmdTraceRaysKHR must be 1
VUID-vkCmdBindInvocationMaskHUAWEI-imageLayout-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEIimageLayout must be a valid VkImageLayout value
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977NNoneexplicitvkCmdBindInvocationMaskHUAWEIIf imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978NNoneexplicitvkCmdBindInvocationMaskHUAWEIIf imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979NNoneexplicitvkCmdBindInvocationMaskHUAWEIIf imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI set
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980NNoneexplicitvkCmdBindInvocationMaskHUAWEIIf imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEIIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkCmdBindInvocationMaskHUAWEI-renderpassYNoneimplicitvkCmdBindInvocationMaskHUAWEIThis command must only be called outside of a render pass instance
VUID-vkCmdBindInvocationMaskHUAWEI-videocodingYNoneimplicitvkCmdBindInvocationMaskHUAWEIThis command must only be called outside of a video coding scope
VUID-vkCmdBindInvocationMaskHUAWEI-width-04981NNoneexplicitvkCmdBindInvocationMaskHUAWEIThread mask image resolution must match the width and height in vkCmdTraceRaysKHR
VUID-vkCmdBindPipeline-None-02323YNegativeTransformFeedback.BindPipelineexplicitvkCmdBindPipelineThis command must not be recorded when transform feedback is active
VUID-vkCmdBindPipeline-commandBuffer-04808YNegativeViewportInheritance.BasicUsageexplicitvkCmdBindPipelineIf 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.PipelineMissingDynamicStateDiscardRectangleexplicitvkCmdBindPipelineIf 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.BindPipelineimplicitvkCmdBindPipelineThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindPipeline-commandBuffer-parameterYNoneimplicitvkCmdBindPipelinecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindPipeline-commandBuffer-recordingYNoneimplicitvkCmdBindPipelinecommandBuffer must be in the recording state
VUID-vkCmdBindPipeline-commonparentYNegativeParent.BindPipelineimplicitvkCmdBindPipelineBoth of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindPipeline-pipeline-00781YNegativePipeline.SubpassRasterizationSamplesexplicitvkCmdBindPipelineIf 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.BindLibraryPipelineexplicitvkCmdBindPipelinepipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR set
VUID-vkCmdBindPipeline-pipeline-parameterYNegativeGraphicsLibrary.DestroyedLibrary, NegativeGraphicsLibrary.DestroyedLibraryNested, NegativePipeline.BadPipelineObject, NegativePipeline.NotBound, NegativeRayTracingPipeline.DeferredOpimplicitvkCmdBindPipelinepipeline must be a valid VkPipeline handle
VUID-vkCmdBindPipeline-pipelineBindPoint-00777YNegativeDeviceQueue.BindPipelineexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-00778YNegativeDeviceQueue.BindPipelineexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindPipeline-pipelineBindPoint-00779YNegativePipeline.WrongBindPointGraphicsexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, pipeline must be a compute pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-00780YNegativePipeline.WrongBindPointComputeexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must be a graphics pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-02391YNoneexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-02392YNegativeRayTracingPipelineNV.BindPointexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, pipeline must be a ray tracing pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-04881YNegativeVertexInput.ProvokingVertexModePerPipelineexplicitvkCmdBindPipelineIf 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-04949NNoneexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-04950NNoneexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, pipeline must be a subpass shading pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-06721YNegativeProtectedMemory.RayTracingPipelineexplicitvkCmdBindPipelineIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, commandBuffer must not be a protected command buffer
VUID-vkCmdBindPipeline-pipelineBindPoint-parameterYNoneimplicitvkCmdBindPipelinepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408YNegativeProtectedMemory.PipelineProtectedAccessexplicitvkCmdBindPipelineIf 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.PipelineProtectedAccessexplicitvkCmdBindPipelineIf 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.VariableSampleLocationsexplicitvkCmdBindPipelineIf 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-videocodingYNoneimplicitvkCmdBindPipelineThis command must only be called outside of a video coding scope
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBindPipelineShaderGroupNVThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-recordingYNoneimplicitvkCmdBindPipelineShaderGroupNVcommandBuffer must be in the recording state
VUID-vkCmdBindPipelineShaderGroupNV-commonparentYNoneimplicitvkCmdBindPipelineShaderGroupNVBoth of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896NNoneexplicitvkCmdBindPipelineShaderGroupNVThe deviceGeneratedCommands feature must be enabled
VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893NNoneexplicitvkCmdBindPipelineShaderGroupNVgroupIndex must be 0 or less than the effective VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount including the referenced pipelines
VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895NNoneexplicitvkCmdBindPipelineShaderGroupNVThe same restrictions as vkCmdBindPipeline apply as if the bound pipeline was created only with the Shader Group from the groupIndex information
VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNVpipeline must be a valid VkPipeline handle
VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894NNoneexplicitvkCmdBindPipelineShaderGroupNVThe pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNVpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindPipelineShaderGroupNV-videocodingYNoneimplicitvkCmdBindPipelineShaderGroupNVThis command must only be called outside of a video coding scope
VUID-vkCmdBindShadersEXT-None-08462YNoneexplicitvkCmdBindShadersEXTThe shaderObject feature must be enabled
VUID-vkCmdBindShadersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindShadersEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindShadersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindShadersEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindShadersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindShadersEXTcommandBuffer must be in the recording state
VUID-vkCmdBindShadersEXT-commonparentYNoneimplicitvkCmdBindShadersEXTBoth 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.InvalidShaderStageBindexplicitvkCmdBindShadersEXTFor 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.BindVertexAndTaskShadersexplicitvkCmdBindShadersEXTIf 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.BindVertexAndMeshShadersexplicitvkCmdBindShadersEXTIf 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-08474YNoneexplicitvkCmdBindShadersEXTIf 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-08475YNoneexplicitvkCmdBindShadersEXTIf 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.ComputeShaderNotSupportedByCommandPoolexplicitvkCmdBindShadersEXTIf pStages contains VK_SHADER_STAGE_COMPUTE_BIT, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindShadersEXT-pShaders-08477YNegativeShaderObject.GraphicsShadersNotSupportedByCommandPoolexplicitvkCmdBindShadersEXTIf 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.GraphicsMeshShadersNotSupportedByCommandPoolexplicitvkCmdBindShadersEXTIf 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-08490YNoneexplicitvkCmdBindShadersEXTIf 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-08491YNoneexplicitvkCmdBindShadersEXTIf 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-parameterYNoneimplicitvkCmdBindShadersEXTIf 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.NonUniqueShadersBindexplicitvkCmdBindShadersEXTEvery element of pStages must be unique
VUID-vkCmdBindShadersEXT-pStages-08464YNegativeShaderObject.InvalidShaderStageBindexplicitvkCmdBindShadersEXTpStages must not contain VK_SHADER_STAGE_ALL_GRAPHICS or VK_SHADER_STAGE_ALL
VUID-vkCmdBindShadersEXT-pStages-08465YNoneexplicitvkCmdBindShadersEXTpStages 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-08467YNoneexplicitvkCmdBindShadersEXTpStages must not contain VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
VUID-vkCmdBindShadersEXT-pStages-08468YNoneexplicitvkCmdBindShadersEXTpStages must not contain VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
VUID-vkCmdBindShadersEXT-pStages-parameterYNoneimplicitvkCmdBindShadersEXTpStages must be a valid pointer to an array of stageCount valid VkShaderStageFlagBits values
VUID-vkCmdBindShadersEXT-stageCount-arraylengthYNoneimplicitvkCmdBindShadersEXTstageCount must be greater than 0
VUID-vkCmdBindShadersEXT-videocodingYNoneimplicitvkCmdBindShadersEXTThis command must only be called outside of a video coding scope
VUID-vkCmdBindShadingRateImageNV-None-02058YNoneexplicitvkCmdBindShadingRateImageNVThe shadingRateImage feature must be enabled
VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBindShadingRateImageNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameterYNoneimplicitvkCmdBindShadingRateImageNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindShadingRateImageNV-commandBuffer-recordingYNoneimplicitvkCmdBindShadingRateImageNVcommandBuffer must be in the recording state
VUID-vkCmdBindShadingRateImageNV-commonparentYNoneimplicitvkCmdBindShadingRateImageNVBoth 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.ShadingRateImageNVexplicitvkCmdBindShadingRateImageNVIf imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBindShadingRateImageNV-imageLayout-parameterYNoneimplicitvkCmdBindShadingRateImageNVimageLayout must be a valid VkImageLayout value
VUID-vkCmdBindShadingRateImageNV-imageView-02059YNoneexplicitvkCmdBindShadingRateImageNVIf 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.ShadingRateImageNVexplicitvkCmdBindShadingRateImageNVIf imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT
VUID-vkCmdBindShadingRateImageNV-imageView-02061YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdBindShadingRateImageNVIf 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.ShadingRateImageNVexplicitvkCmdBindShadingRateImageNVIf 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-parameterYNoneimplicitvkCmdBindShadingRateImageNVIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkCmdBindShadingRateImageNV-videocodingYNoneimplicitvkCmdBindShadingRateImageNVThis command must only be called outside of a video coding scope
VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTTransform feedback must not be active when the vkCmdBindTransformFeedbackBuffersEXT command is recorded
VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylengthYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTbindingCount must be greater than 0
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTcommandBuffer must be in the recording state
VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparentYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTBoth of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTfirstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTThe sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTAll elements of pBuffers must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT flag
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTEach element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTpBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTAll elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTAll elements of pOffsets must be a multiple of 4
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTAll 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-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTpOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361YNegativeTransformFeedback.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTIf 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.CmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXTAll 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.FeatureEnabledexplicitvkCmdBindTransformFeedbackBuffersEXTVkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdBindTransformFeedbackBuffersEXT-videocodingYNoneimplicitvkCmdBindTransformFeedbackBuffersEXTThis command must only be called outside of a video coding scope
VUID-vkCmdBindVertexBuffers-bindingCount-arraylengthYNoneimplicitvkCmdBindVertexBuffersbindingCount must be greater than 0
VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpoolYNoneimplicitvkCmdBindVertexBuffersThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindVertexBuffers-commandBuffer-parameterYNoneimplicitvkCmdBindVertexBufferscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindVertexBuffers-commandBuffer-recordingYNoneimplicitvkCmdBindVertexBufferscommandBuffer must be in the recording state
VUID-vkCmdBindVertexBuffers-commonparentYNoneimplicitvkCmdBindVertexBuffersBoth 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.VertexBufferOffsetexplicitvkCmdBindVertexBuffersfirstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers-firstBinding-00625YNegativeBuffer.VertexBufferOffsetexplicitvkCmdBindVertexBuffersThe sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers-pBuffers-00627YNegativeCommand.BindVertexIndexBufferUsageexplicitvkCmdBindVertexBuffersAll elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag
VUID-vkCmdBindVertexBuffers-pBuffers-00628YNoneexplicitvkCmdBindVertexBuffersEach element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindVertexBuffers-pBuffers-04001YNegativeDescriptors.NullDescriptorsDisabled, NegativeVertexInput.BindVertexBufferNullexplicitvkCmdBindVertexBuffersIf the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE
VUID-vkCmdBindVertexBuffers-pBuffers-04002YNegativeDescriptors.NullDescriptorsEnabledexplicitvkCmdBindVertexBuffersIf an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero
VUID-vkCmdBindVertexBuffers-pBuffers-parameterYNegativeVertexInput.BindVertexBufferNullimplicitvkCmdBindVertexBufferspBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles
VUID-vkCmdBindVertexBuffers-pOffsets-00626YNegativeBuffer.VertexBufferOffsetexplicitvkCmdBindVertexBuffersAll elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindVertexBuffers-pOffsets-parameterYNoneimplicitvkCmdBindVertexBufferspOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers-videocodingYNoneimplicitvkCmdBindVertexBuffersThis command must only be called outside of a video coding scope
VUID-vkCmdBindVertexBuffers2-bindingCount-arraylengthYNoneimplicitvkCmdBindVertexBuffers2If any of pSizes, or pStrides are not NULL, bindingCount must be greater than 0
VUID-vkCmdBindVertexBuffers2-commandBuffer-cmdpoolYNoneimplicitvkCmdBindVertexBuffers2The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindVertexBuffers2-commandBuffer-parameterYNoneimplicitvkCmdBindVertexBuffers2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindVertexBuffers2-commandBuffer-recordingYNoneimplicitvkCmdBindVertexBuffers2commandBuffer must be in the recording state
VUID-vkCmdBindVertexBuffers2-commonparentYNoneimplicitvkCmdBindVertexBuffers2Both 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.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers2-firstBinding-03356YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers2-pBuffers-03359YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag
VUID-vkCmdBindVertexBuffers2-pBuffers-03360YNoneexplicitvkCmdBindVertexBuffers2Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindVertexBuffers2-pBuffers-04111YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE
VUID-vkCmdBindVertexBuffers2-pBuffers-04112YNoneexplicitvkCmdBindVertexBuffers2If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero
VUID-vkCmdBindVertexBuffers2-pBuffers-parameterYNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersimplicitvkCmdBindVertexBuffers2pBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles
VUID-vkCmdBindVertexBuffers2-pOffsets-03357YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2If pSizes is not NULL, all elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindVertexBuffers2-pOffsets-parameterYNegativeDynamicState.CmdBindVertexBuffers2NullOffsetimplicitvkCmdBindVertexBuffers2pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-pSizes-03358YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffers, NegativeDynamicState.ExtendedDynamicStateBindVertexBuffersWholeSizeexplicitvkCmdBindVertexBuffers2If 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-parameterYNoneimplicitvkCmdBindVertexBuffers2If pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-pStrides-03362YNegativeDynamicState.ExtendedDynamicStateBindVertexBuffersexplicitvkCmdBindVertexBuffers2If pStrides is not NULL each element of pStrides must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-vkCmdBindVertexBuffers2-pStrides-06209YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdBindVertexBuffers2If 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-parameterYNoneimplicitvkCmdBindVertexBuffers2If pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-videocodingYNoneimplicitvkCmdBindVertexBuffers2This command must only be called outside of a video coding scope
VUID-vkCmdBlitImage-aspectMask-00241YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImageFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-vkCmdBlitImage-aspectMask-00242YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImageFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-vkCmdBlitImage-commandBuffer-01834YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdBlitImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdBlitImage-commandBuffer-01835YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdBlitImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdBlitImage-commandBuffer-01836YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdBlitImageIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdBlitImage-commandBuffer-cmdpoolYNoneimplicitvkCmdBlitImageThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBlitImage-commandBuffer-parameterYNoneimplicitvkCmdBlitImagecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBlitImage-commandBuffer-recordingYNoneimplicitvkCmdBlitImagecommandBuffer must be in the recording state
VUID-vkCmdBlitImage-commonparentYNoneimplicitvkCmdBlitImageEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBlitImage-dstImage-00224YNoneexplicitvkCmdBlitImagedstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdBlitImage-dstImage-00225YNoneexplicitvkCmdBlitImageIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBlitImage-dstImage-00234YNegativeImage.MiscBlitTests, NegativeImage.SampleCountsexplicitvkCmdBlitImagedstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdBlitImage-dstImage-00250YNegativeImage.BlitOffsetsexplicitvkCmdBlitImageIf 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.BlitOffsetsexplicitvkCmdBlitImageIf 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.BlitToDepthexplicitvkCmdBlitImageThe format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT
VUID-vkCmdBlitImage-dstImage-02545YNoneexplicitvkCmdBlitImagedstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdBlitImage-dstImage-06422YNegativeImage.BlitFormatTypesexplicitvkCmdBlitImagedstImage must not use a format that requires a sampler Y'CBCR conversion
VUID-vkCmdBlitImage-dstImage-parameterYNoneimplicitvkCmdBlitImagedstImage must be a valid VkImage handle
VUID-vkCmdBlitImage-dstImageLayout-00226YNegativeImage.BlitLayoutexplicitvkCmdBlitImagedstImageLayout 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.BlitLayoutexplicitvkCmdBlitImagedstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBlitImage-dstImageLayout-parameterYNoneimplicitvkCmdBlitImagedstImageLayout must be a valid VkImageLayout value
VUID-vkCmdBlitImage-dstOffset-00248YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImageFor 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.MiscBlitTestsexplicitvkCmdBlitImageFor 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.MiscBlitTestsexplicitvkCmdBlitImageFor 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.MiscBlitTestsexplicitvkCmdBlitImageThe 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.MiscBlitTestsexplicitvkCmdBlitImageIf 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.BlitFiltersexplicitvkCmdBlitImageIf filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D
VUID-vkCmdBlitImage-filter-02001YNegativeImage.BlitFiltersexplicitvkCmdBlitImageIf 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.BlitFiltersexplicitvkCmdBlitImageIf 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-parameterYNoneimplicitvkCmdBlitImagefilter must be a valid VkFilter value
VUID-vkCmdBlitImage-pRegions-00215YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImageThe source region specified by each element of pRegions must be a region that is contained within srcImage
VUID-vkCmdBlitImage-pRegions-00216YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImageThe destination region specified by each element of pRegions must be a region that is contained within dstImage
VUID-vkCmdBlitImage-pRegions-00217YNegativeImage.BlitOverlapexplicitvkCmdBlitImageThe 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-parameterYNoneimplicitvkCmdBlitImagepRegions must be a valid pointer to an array of regionCount valid VkImageBlit structures
VUID-vkCmdBlitImage-regionCount-arraylengthYNoneimplicitvkCmdBlitImageregionCount must be greater than 0
VUID-vkCmdBlitImage-renderpassYNoneimplicitvkCmdBlitImageThis command must only be called outside of a render pass instance
VUID-vkCmdBlitImage-srcImage-00219YNoneexplicitvkCmdBlitImagesrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdBlitImage-srcImage-00220YNoneexplicitvkCmdBlitImageIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBlitImage-srcImage-00229YNegativeImage.BlitFormatTypesexplicitvkCmdBlitImageIf 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.BlitFormatTypesexplicitvkCmdBlitImageIf 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.BlitFormatTypesexplicitvkCmdBlitImageIf either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format
VUID-vkCmdBlitImage-srcImage-00232YNoneexplicitvkCmdBlitImageIf srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST
VUID-vkCmdBlitImage-srcImage-00233YNegativeImage.MiscBlitTests, NegativeImage.SampleCountsexplicitvkCmdBlitImagesrcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdBlitImage-srcImage-00240YNegativeImage.MiscBlitTestsexplicitvkCmdBlitImageIf 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.BlitOffsetsexplicitvkCmdBlitImageIf 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.BlitOffsetsexplicitvkCmdBlitImageIf 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.BlitFormatTypesexplicitvkCmdBlitImageThe format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT
VUID-vkCmdBlitImage-srcImage-06421YNegativeImage.BlitFormatTypesexplicitvkCmdBlitImagesrcImage must not use a format that requires a sampler Y'CBCR conversion
VUID-vkCmdBlitImage-srcImage-09459YNoneexplicitvkCmdBlitImageIf 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-parameterYNoneimplicitvkCmdBlitImagesrcImage must be a valid VkImage handle
VUID-vkCmdBlitImage-srcImageLayout-00221YNegativeImage.BlitLayoutexplicitvkCmdBlitImagesrcImageLayout 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.BlitLayoutexplicitvkCmdBlitImagesrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBlitImage-srcImageLayout-parameterYNoneimplicitvkCmdBlitImagesrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdBlitImage-srcOffset-00243YNegativeImage.BlitOffsets, NegativeImage.MiscBlitTestsexplicitvkCmdBlitImageFor 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.MiscBlitTestsexplicitvkCmdBlitImageFor 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.MiscBlitTestsexplicitvkCmdBlitImageFor 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.MiscBlitTestsexplicitvkCmdBlitImageThe 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.MiscBlitTestsexplicitvkCmdBlitImageIf 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-videocodingYNoneimplicitvkCmdBlitImageThis command must only be called outside of a video coding scope
VUID-vkCmdBlitImage2-commandBuffer-01834YNoneexplicitvkCmdBlitImage2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdBlitImage2-commandBuffer-01835YNoneexplicitvkCmdBlitImage2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdBlitImage2-commandBuffer-01836YNoneexplicitvkCmdBlitImage2If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdBlitImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdBlitImage2The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBlitImage2-commandBuffer-parameterYNoneimplicitvkCmdBlitImage2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBlitImage2-commandBuffer-recordingYNoneimplicitvkCmdBlitImage2commandBuffer must be in the recording state
VUID-vkCmdBlitImage2-pBlitImageInfo-parameterYNoneimplicitvkCmdBlitImage2pBlitImageInfo must be a valid pointer to a valid VkBlitImageInfo2 structure
VUID-vkCmdBlitImage2-renderpassYNoneimplicitvkCmdBlitImage2This command must only be called outside of a render pass instance
VUID-vkCmdBlitImage2-videocodingYNoneimplicitvkCmdBlitImage2This command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786NNoneexplicitvkCmdBuildAccelerationStructureNVEach VkAccelerationStructureInstanceKHR::accelerationStructureReference value in instanceData must be a valid device address containing a value obtained from vkGetAccelerationStructureHandleNV
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructureNVThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recordingYNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureimplicitvkCmdBuildAccelerationStructureNVcommandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructureNV-commonparentYNoneimplicitvkCmdBuildAccelerationStructureNVEach 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.ValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNVdst 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-07787YNoneexplicitvkCmdBuildAccelerationStructureNVdst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkCmdBuildAccelerationStructureNV-dst-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVdst must be a valid VkAccelerationStructureNV handle
VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241YNoneexplicitvkCmdBuildAccelerationStructureNVgeometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523NNoneexplicitvkCmdBuildAccelerationStructureNVIf instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVIf instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVpInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure
VUID-vkCmdBuildAccelerationStructureNV-renderpassYNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureimplicitvkCmdBuildAccelerationStructureNVThis command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructureNV-scratch-03522NNoneexplicitvkCmdBuildAccelerationStructureNVscratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-vkCmdBuildAccelerationStructureNV-scratch-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVscratch must be a valid VkBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-src-parameterYNoneimplicitvkCmdBuildAccelerationStructureNVIf src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle
VUID-vkCmdBuildAccelerationStructureNV-update-02489YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNVIf update is VK_TRUE, src must not be VK_NULL_HANDLE
VUID-vkCmdBuildAccelerationStructureNV-update-02490YNegativeRayTracingNV.ValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNVIf 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.ValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNVIf 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-02492YNoneexplicitvkCmdBuildAccelerationStructureNVIf 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-03524NNoneexplicitvkCmdBuildAccelerationStructureNVIf update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances
VUID-vkCmdBuildAccelerationStructureNV-update-03525NNoneexplicitvkCmdBuildAccelerationStructureNVIf update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances
VUID-vkCmdBuildAccelerationStructureNV-update-03526NNoneexplicitvkCmdBuildAccelerationStructureNVIf update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing
VUID-vkCmdBuildAccelerationStructureNV-videocodingYNoneimplicitvkCmdBuildAccelerationStructureNVThis command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-None-03407NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-03650YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureIndirectBuild feature must be enabled
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-09547YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRcommandBuffer must not be a protected command buffer
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-recordingYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRcommandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03698YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-03701YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-03702YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-03703NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-03706NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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.IndirectCmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-arraylengthYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRinfoCount must be greater than 0
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03646NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03647NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03648YNegativeRayTracing.IndirectStridesMultipleexplicitvkCmdBuildAccelerationStructuresIndirectKHREach element of pIndirectDeviceAddresses must be a multiple of 4
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHREach VkAccelerationStructureBuildRangeInfoKHR structure referenced by any element of pIndirectDeviceAddresses must be a valid VkAccelerationStructureBuildRangeInfoKHR structure
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRpIndirectDeviceAddresses must be a valid pointer to an array of infoCount VkDeviceAddress values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-03787YNegativeRayTracing.IndirectStridesMultipleexplicitvkCmdBuildAccelerationStructuresIndirectKHREach element of pIndirectStrides must be a multiple of 4
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRpIndirectStrides must be a valid pointer to an array of infoCount uint32_t values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-03652NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRpInfos[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-03663NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03664NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03667YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03668YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03671YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRIf 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-03672YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRIf 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-03674YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-03699YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03700YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03707YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03708YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03709NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03710YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03711YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03712YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03714YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03715YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03716YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03717NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03758YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03759YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03760YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03761YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03762YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03763YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03764YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03765YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03766YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03767YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03768NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03801NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03802YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03804YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03805YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03806YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03807YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03808YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03809YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03810YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03811YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03812YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03813YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-03814YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-04630YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-06707NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRpInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-03653NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHREach 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-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRppMaxPrimitiveCounts must be a valid pointer to an array of infoCount uint32_t values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRFor 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-renderpassYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRThis command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03704NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-03705NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRThe 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-04629YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHRIf the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-videocodingYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHRThis command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructuresKHR-None-03407NNoneexplicitvkCmdBuildAccelerationStructuresKHRThe 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-08923YNoneexplicitvkCmdBuildAccelerationStructuresKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-09547NNoneexplicitvkCmdBuildAccelerationStructuresKHRcommandBuffer must not be a protected command buffer
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructuresKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameterYNoneimplicitvkCmdBuildAccelerationStructuresKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-recordingYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRcommandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03698YNoneexplicitvkCmdBuildAccelerationStructuresKHRThe 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.AccelerationStructuresOverlappingMemoryexplicitvkCmdBuildAccelerationStructuresKHRThe 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.AccelerationStructuresOverlappingMemory, NegativeRayTracing.AccelerationStructuresOverlappingMemory3explicitvkCmdBuildAccelerationStructuresKHRThe 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.AccelerationStructuresOverlappingMemory3explicitvkCmdBuildAccelerationStructuresKHRThe 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-03706NNoneexplicitvkCmdBuildAccelerationStructuresKHRThe 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.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRThe dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresKHR-geometry-03673YNegativeRayTracing.BuffersAndBufferDeviceAddressesMapping, NegativeRayTracing.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRThe 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.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRinfoCount must be greater than 0
VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628YNegativeRayTracing.BuildAccelerationStructuresInvalidModeexplicitvkCmdBuildAccelerationStructuresKHRThe mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403YNoneexplicitvkCmdBuildAccelerationStructuresKHRThe 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-03663NNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03664NNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03667YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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.AccelerationStructuresOverlappingMemoryexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03671YNegativeRayTracing.ScratchBufferBadAddressSpaceOpBuildexplicitvkCmdBuildAccelerationStructuresKHRIf 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-03672YNegativeRayTracing.ScratchBufferBadAddressSpaceOpUpdateexplicitvkCmdBuildAccelerationStructuresKHRIf 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.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRThe 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-03699YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03700YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRFor each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03708YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03709NNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03710YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03711YNegativeRayTracing.TrianglesMisalignedVertexBufferAddressexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03712YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03714YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03715YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03716YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03717NNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03758YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03759YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03760YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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.BuildAccelerationStructuresInvalidUpdatesToGeometryTypeexplicitvkCmdBuildAccelerationStructuresKHRFor 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.BuildAccelerationStructuresInvalidUpdatesToGeometryFlagsexplicitvkCmdBuildAccelerationStructuresKHRFor 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.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesFormatexplicitvkCmdBuildAccelerationStructuresKHRFor 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.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesMaxVertexexplicitvkCmdBuildAccelerationStructuresKHRFor 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.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesIndexTypeexplicitvkCmdBuildAccelerationStructuresKHRFor 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.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesTransformDataexplicitvkCmdBuildAccelerationStructuresKHRFor 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.BuildAccelerationStructuresInvalidUpdatesToGeometryexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03768NNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03801YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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.CmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHRFor each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03803YNegativeRayTracing.ScratchBufferBadMemoryexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03804YNegativeRayTracing.TrianglesMisalignedVertexBufferAddress, NegativeRayTracing.TrianglesVertexBufferNullexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03805YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03806YNegativeRayTracing.TrianglesIndexBufferInvalidAddress, NegativeRayTracing.TrianglesIndexBufferNullexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03807YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03808YNegativeRayTracing.BuildAccelerationStructuresInvalidUpdatesToGeometryTrianglesTransformData, NegativeRayTracing.TransformBufferInvalidDeviceAddressexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03809YNegativeRayTracing.TransformBufferInvalidexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03810YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03811YNegativeRayTracing.AabbBufferInvalidAddressexplicitvkCmdBuildAccelerationStructuresKHRFor 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-03812YNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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.InstanceBufferBadAddressexplicitvkCmdBuildAccelerationStructuresKHRFor 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.InstanceBufferBadMemoryexplicitvkCmdBuildAccelerationStructuresKHRFor 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.UpdateAccelerationStructureKHRexplicitvkCmdBuildAccelerationStructuresKHRFor 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-06707NNoneexplicitvkCmdBuildAccelerationStructuresKHRFor 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-10126YNegativeRayTracing.DstAsTooSmallexplicitvkCmdBuildAccelerationStructuresKHRFor each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to either: 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) or, the result of querying the corresponding VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, if updating a compacted acceleration structure
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-parameterYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRpInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676YNoneexplicitvkCmdBuildAccelerationStructuresKHREach element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameterYNegativeRayTracing.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769YNegativeRayTracing.UpdatedFirstPrimitiveCountexplicitvkCmdBuildAccelerationStructuresKHRFor 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.CmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHRThis command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03704YNegativeRayTracing.AccelerationStructuresOverlappingMemory2, NegativeRayTracing.AccelerationStructuresOverlappingMemory3, NegativeRayTracing.AccelerationStructuresOverlappingMemory4explicitvkCmdBuildAccelerationStructuresKHRThe 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.AccelerationStructuresOverlappingMemory4explicitvkCmdBuildAccelerationStructuresKHRThe 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-04629YNoneexplicitvkCmdBuildAccelerationStructuresKHRIf the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresKHR-videocodingYNoneimplicitvkCmdBuildAccelerationStructuresKHRThis command must only be called outside of a video coding scope
VUID-vkCmdBuildMicromapsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildMicromapsEXTThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameterYNoneimplicitvkCmdBuildMicromapsEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildMicromapsEXT-commandBuffer-recordingYNoneimplicitvkCmdBuildMicromapsEXTcommandBuffer must be in the recording state
VUID-vkCmdBuildMicromapsEXT-data-07510NNoneexplicitvkCmdBuildMicromapsEXTThe 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-07463NNoneexplicitvkCmdBuildMicromapsEXTThe dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle
VUID-vkCmdBuildMicromapsEXT-dstMicromap-07465NNoneexplicitvkCmdBuildMicromapsEXTThe 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-07466NNoneexplicitvkCmdBuildMicromapsEXTThe 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-arraylengthYNoneimplicitvkCmdBuildMicromapsEXTinfoCount must be greater than 0
VUID-vkCmdBuildMicromapsEXT-mode-07462NNoneexplicitvkCmdBuildMicromapsEXTThe mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value
VUID-vkCmdBuildMicromapsEXT-pInfos-07461NNoneexplicitvkCmdBuildMicromapsEXTFor 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-07464NNoneexplicitvkCmdBuildMicromapsEXTFor each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created
VUID-vkCmdBuildMicromapsEXT-pInfos-07508NNoneexplicitvkCmdBuildMicromapsEXTFor each element of pInfos, the buffer used to create its dstMicromap member must be bound to device memory
VUID-vkCmdBuildMicromapsEXT-pInfos-07509NNoneexplicitvkCmdBuildMicromapsEXTIf 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-07511NNoneexplicitvkCmdBuildMicromapsEXTFor 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-07512NNoneexplicitvkCmdBuildMicromapsEXTFor each element of pInfos, its scratchData.deviceAddress, data.deviceAddress, and triangleArray.deviceAddress members must be valid device addresses obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildMicromapsEXT-pInfos-07513NNoneexplicitvkCmdBuildMicromapsEXTFor 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-07514NNoneexplicitvkCmdBuildMicromapsEXTFor each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildMicromapsEXT-pInfos-07515NNoneexplicitvkCmdBuildMicromapsEXTFor each element of pInfos, its triangleArray.deviceAddress and data.deviceAddress members must be a multiple of 256
VUID-vkCmdBuildMicromapsEXT-pInfos-parameterYNoneimplicitvkCmdBuildMicromapsEXTpInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures
VUID-vkCmdBuildMicromapsEXT-renderpassYNoneimplicitvkCmdBuildMicromapsEXTThis command must only be called outside of a render pass instance
VUID-vkCmdBuildMicromapsEXT-scratchData-07467NNoneexplicitvkCmdBuildMicromapsEXTThe 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-videocodingYNoneimplicitvkCmdBuildMicromapsEXTThis command must only be called outside of a video coding scope
VUID-vkCmdClearAttachments-None-09679YNegativeCommand.ClearAttachment64BitexplicitvkCmdClearAttachmentsIf the attachment format has components other than R and G, it must not have a 64-bit component width
VUID-vkCmdClearAttachments-aspectMask-07271YNegativeCommand.MissingClearAttachment, NegativeCommand.MissingClearAttachment2, NegativeDynamicRendering.ClearAttachmentsexplicitvkCmdClearAttachmentsIf 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.ClearDsImageWithInvalidAspectexplicitvkCmdClearAttachmentsIf 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.ClearDsImageWithInvalidAspectexplicitvkCmdClearAttachmentsIf 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.ClearAttachmentexplicitvkCmdClearAttachmentsIf 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-arraylengthYNoneimplicitvkCmdClearAttachmentsattachmentCount must be greater than 0
VUID-vkCmdClearAttachments-baseArrayLayer-00018YNegativeMultiview.ClearColorAttachmentsexplicitvkCmdClearAttachmentsIf the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one
VUID-vkCmdClearAttachments-colorAttachment-09503YNegativeDynamicRenderingLocalRead.CmdClearAttachmentsexplicitvkCmdClearAttachmentsThe colorAttachment member of each element of pAttachments must not identify a color attachment that is currently mapped to VK_ATTACHMENT_UNUSED in commandBuffer via VkRenderingAttachmentLocationInfoKHR
VUID-vkCmdClearAttachments-commandBuffer-02504YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdClearAttachmentsIf 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.MixingProtectedResourcesexplicitvkCmdClearAttachmentsIf 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-cmdpoolYNoneimplicitvkCmdClearAttachmentsThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdClearAttachments-commandBuffer-parameterYNoneimplicitvkCmdClearAttachmentscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearAttachments-commandBuffer-recordingYNoneimplicitvkCmdClearAttachmentscommandBuffer must be in the recording state
VUID-vkCmdClearAttachments-layerCount-01934YNegativeCommand.ClearColorAttachmentsZeroLayercountexplicitvkCmdClearAttachmentsThe layerCount member of each element of pRects must not be 0
VUID-vkCmdClearAttachments-pAttachments-parameterYNoneimplicitvkCmdClearAttachmentspAttachments must be a valid pointer to an array of attachmentCount valid VkClearAttachment structures
VUID-vkCmdClearAttachments-pRects-00016YNegativeCommand.CmdClearAttachmentTests, NegativeDynamicRendering.CmdClearAttachmentTests, NegativeSecondaryCommandBuffer.ClearColorAttachmentsRenderAreaexplicitvkCmdClearAttachmentsThe 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.ClearColorAttachmentsexplicitvkCmdClearAttachmentsThe 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-parameterYNoneimplicitvkCmdClearAttachmentspRects must be a valid pointer to an array of rectCount VkClearRect structures
VUID-vkCmdClearAttachments-rect-02682YNegativeCommand.ClearColorAttachmentsZeroExtentexplicitvkCmdClearAttachmentsThe rect member of each element of pRects must have an extent.width greater than 0
VUID-vkCmdClearAttachments-rect-02683YNegativeCommand.ClearColorAttachmentsZeroExtentexplicitvkCmdClearAttachmentsThe rect member of each element of pRects must have an extent.height greater than 0
VUID-vkCmdClearAttachments-rectCount-arraylengthYNoneimplicitvkCmdClearAttachmentsrectCount must be greater than 0
VUID-vkCmdClearAttachments-renderpassYNegativeCommand.ClearAttachmentsOutsideRenderPass, NegativeCommand.ClearColorAttachmentsOutsideRenderPassimplicitvkCmdClearAttachmentsThis command must only be called inside of a render pass instance
VUID-vkCmdClearAttachments-videocodingYNoneimplicitvkCmdClearAttachmentsThis command must only be called outside of a video coding scope
VUID-vkCmdClearColorImage-aspectMask-02498YNegativeCommand.ClearImageAspectMaskexplicitvkCmdClearColorImageThe VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkCmdClearColorImage-baseArrayLayer-01472YNegativeCommand.ClearColorImageWithRangeexplicitvkCmdClearColorImageThe 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.ClearColorImageWithRangeexplicitvkCmdClearColorImageThe 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.MixingProtectedResourcesexplicitvkCmdClearColorImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image
VUID-vkCmdClearColorImage-commandBuffer-01806YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdClearColorImageIf commandBuffer is a protected command buffer and protectedNoFault is not supported, must not be an unprotected image
VUID-vkCmdClearColorImage-commandBuffer-cmdpoolYNoneimplicitvkCmdClearColorImageThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdClearColorImage-commandBuffer-parameterYNoneimplicitvkCmdClearColorImagecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearColorImage-commandBuffer-recordingYNoneimplicitvkCmdClearColorImagecommandBuffer must be in the recording state
VUID-vkCmdClearColorImage-commonparentYNoneimplicitvkCmdClearColorImageBoth of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdClearColorImage-image-00002YNegativeCommand.ClearImageexplicitvkCmdClearColorImageimage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdClearColorImage-image-00003YNegativeMemory.ImageMemoryNotBoundexplicitvkCmdClearColorImageIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdClearColorImage-image-00007YNegativeCommand.ClearImageexplicitvkCmdClearColorImageimage must not have a compressed or depth/stencil format
VUID-vkCmdClearColorImage-image-01545YNegativeYcbcr.ClearColorImageFormatexplicitvkCmdClearColorImageimage must not use any of the formats that require a sampler Y'CBCR conversion
VUID-vkCmdClearColorImage-image-01993YNegativeCommand.ClearColorImageWithMissingFeatureexplicitvkCmdClearColorImageThe format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdClearColorImage-image-09678YNegativeCommand.ClearColor64BitexplicitvkCmdClearColorImageIf image's format has components other than R and G, it must not have a 64-bit component width
VUID-vkCmdClearColorImage-image-parameterYNoneimplicitvkCmdClearColorImageimage must be a valid VkImage handle
VUID-vkCmdClearColorImage-imageLayout-00004YNegativeImage.ImageLayoutexplicitvkCmdClearColorImageimageLayout 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.ImageLayoutexplicitvkCmdClearColorImageimageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdClearColorImage-imageLayout-parameterYNoneimplicitvkCmdClearColorImageimageLayout must be a valid VkImageLayout value
VUID-vkCmdClearColorImage-pColor-04961YNegativeCommand.CmdClearColorImageNullColorexplicitvkCmdClearColorImagepColor must be a valid pointer to a VkClearColorValue union
VUID-vkCmdClearColorImage-pRanges-01692YNegativeCommand.ClearColorImageWithRangeexplicitvkCmdClearColorImageFor 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.ClearColorImageWithRangeexplicitvkCmdClearColorImageFor 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-parameterYNoneimplicitvkCmdClearColorImagepRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures
VUID-vkCmdClearColorImage-rangeCount-arraylengthYNoneimplicitvkCmdClearColorImagerangeCount must be greater than 0
VUID-vkCmdClearColorImage-renderpassYNegativeCommand.ClearColorImageWithinRenderPassimplicitvkCmdClearColorImageThis command must only be called outside of a render pass instance
VUID-vkCmdClearColorImage-videocodingYNoneimplicitvkCmdClearColorImageThis command must only be called outside of a video coding scope
VUID-vkCmdClearDepthStencilImage-aspectMask-02824YNegativeCommand.ClearDepthStencilImageWithInvalidAspectexplicitvkCmdClearDepthStencilImageThe 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.ClearDepthStencilWithRangeexplicitvkCmdClearDepthStencilImageThe 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.ClearDepthStencilWithRangeexplicitvkCmdClearDepthStencilImageThe 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-01807YNoneexplicitvkCmdClearDepthStencilImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image
VUID-vkCmdClearDepthStencilImage-commandBuffer-01808YNoneexplicitvkCmdClearDepthStencilImageIf commandBuffer is a protected command buffer and protectedNoFault is not supported, image must not be an unprotected image
VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpoolYNoneimplicitvkCmdClearDepthStencilImageThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdClearDepthStencilImage-commandBuffer-parameterYNoneimplicitvkCmdClearDepthStencilImagecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearDepthStencilImage-commandBuffer-recordingYNoneimplicitvkCmdClearDepthStencilImagecommandBuffer must be in the recording state
VUID-vkCmdClearDepthStencilImage-commonparentYNoneimplicitvkCmdClearDepthStencilImageBoth of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdClearDepthStencilImage-image-00010YNoneexplicitvkCmdClearDepthStencilImageIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdClearDepthStencilImage-image-00014YNegativeCommand.ClearImageexplicitvkCmdClearDepthStencilImageimage must have a depth/stencil format
VUID-vkCmdClearDepthStencilImage-image-01994YNoneexplicitvkCmdClearDepthStencilImageThe format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdClearDepthStencilImage-image-02825YNegativeCommand.ClearDepthStencilWithAspectexplicitvkCmdClearDepthStencilImageIf 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.ClearImageexplicitvkCmdClearDepthStencilImageIf 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-parameterYNoneimplicitvkCmdClearDepthStencilImageimage must be a valid VkImage handle
VUID-vkCmdClearDepthStencilImage-imageLayout-00011YNegativeImage.ImageLayoutexplicitvkCmdClearDepthStencilImageimageLayout 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.ImageLayoutexplicitvkCmdClearDepthStencilImageimageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdClearDepthStencilImage-imageLayout-parameterYNoneimplicitvkCmdClearDepthStencilImageimageLayout must be a valid VkImageLayout value
VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameterYNoneimplicitvkCmdClearDepthStencilImagepDepthStencil must be a valid pointer to a valid VkClearDepthStencilValue structure
VUID-vkCmdClearDepthStencilImage-pRanges-01694YNegativeCommand.ClearDepthStencilWithRangeexplicitvkCmdClearDepthStencilImageFor 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.ClearDepthStencilWithRangeexplicitvkCmdClearDepthStencilImageFor 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.ClearDepthStencilWithAspectexplicitvkCmdClearDepthStencilImageIf 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.ClearDepthStencilWithAspectexplicitvkCmdClearDepthStencilImageIf 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.ClearDepthStencilWithAspectexplicitvkCmdClearDepthStencilImageIf 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-parameterYNoneimplicitvkCmdClearDepthStencilImagepRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures
VUID-vkCmdClearDepthStencilImage-rangeCount-arraylengthYNoneimplicitvkCmdClearDepthStencilImagerangeCount must be greater than 0
VUID-vkCmdClearDepthStencilImage-renderpassYNegativeCommand.ClearDepthStencilImageimplicitvkCmdClearDepthStencilImageThis command must only be called outside of a render pass instance
VUID-vkCmdClearDepthStencilImage-videocodingYNoneimplicitvkCmdClearDepthStencilImageThis command must only be called outside of a video coding scope
VUID-vkCmdControlVideoCodingKHR-bufferlevelYNoneimplicitvkCmdControlVideoCodingKHRcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdControlVideoCodingKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdControlVideoCodingKHRThe VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdControlVideoCodingKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdControlVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdControlVideoCodingKHRcommandBuffer must be in the recording state
VUID-vkCmdControlVideoCodingKHR-flags-07017YNegativeVideo.ControlSessionUninitializedexplicitvkCmdControlVideoCodingKHRIf 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.EncodeRateControlRequiresEncodeSessionexplicitvkCmdControlVideoCodingKHRIf the bound video session was not created with an encode operation, then pCodingControlInfo->flags 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-parameterYNoneimplicitvkCmdControlVideoCodingKHRpCodingControlInfo must be a valid pointer to a valid VkVideoCodingControlInfoKHR structure
VUID-vkCmdControlVideoCodingKHR-renderpassYNoneimplicitvkCmdControlVideoCodingKHRThis command must only be called outside of a render pass instance
VUID-vkCmdControlVideoCodingKHR-videocodingYNegativeVideo.VideoCodingScopeimplicitvkCmdControlVideoCodingKHRThis command must only be called inside of a video coding scope
VUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925YNoneexplicitvkCmdCopyAccelerationStructureKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitvkCmdCopyAccelerationStructureKHRThe buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738YNegativeRayTracing.CmdCopyUnboundAccelerationStructure, NegativeRayTracing.CopyUnboundAccelerationStructureexplicitvkCmdCopyAccelerationStructureKHRThe buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyAccelerationStructureKHRcommandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCmdCopyAccelerationStructureKHRpInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure
VUID-vkCmdCopyAccelerationStructureKHR-renderpassYNoneimplicitvkCmdCopyAccelerationStructureKHRThis command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureKHR-videocodingYNoneimplicitvkCmdCopyAccelerationStructureKHRThis command must only be called outside of a video coding scope
VUID-vkCmdCopyAccelerationStructureNV-buffer-03718YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVThe buffer used to create src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureNV-buffer-03719YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVThe buffer used to create dst must be bound to device memory
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureNVThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recordingYNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNVcommandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureNV-commonparentYNoneimplicitvkCmdCopyAccelerationStructureNVEach of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyAccelerationStructureNV-dst-07791NNoneexplicitvkCmdCopyAccelerationStructureNVThe 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.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVdst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkCmdCopyAccelerationStructureNV-dst-parameterYNoneimplicitvkCmdCopyAccelerationStructureNVdst must be a valid VkAccelerationStructureNV handle
VUID-vkCmdCopyAccelerationStructureNV-mode-03410YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVmode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
VUID-vkCmdCopyAccelerationStructureNV-mode-parameterYNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNVmode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-vkCmdCopyAccelerationStructureNV-renderpassYNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNVThis command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureNV-src-03411YNegativeRayTracingNV.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVIf 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.ValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNVThe source acceleration structure src must have been constructed prior to the execution of this command
VUID-vkCmdCopyAccelerationStructureNV-src-parameterYNoneimplicitvkCmdCopyAccelerationStructureNVsrc must be a valid VkAccelerationStructureNV handle
VUID-vkCmdCopyAccelerationStructureNV-videocodingYNoneimplicitvkCmdCopyAccelerationStructureNVThis command must only be called outside of a video coding scope
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559YNegativeRayTracing.CmdCopyAccelerationStructureToMemoryKHRexplicitvkCmdCopyAccelerationStructureToMemoryKHRThe buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-accelerationStructure-08926YNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRcommandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739YNegativeRayTracing.CmdCopyAccelerationStructureToMemoryKHRexplicitvkCmdCopyAccelerationStructureToMemoryKHRpInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740YNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHRpInfo->dst.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741YNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHRIf 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-parameterYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRpInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpassYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRThis command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-videocodingYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHRThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBuffer-commandBuffer-01822YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBufferIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer-commandBuffer-01823YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBufferIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer-commandBuffer-01824YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBufferIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBufferThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBuffer-commandBuffer-parameterYNoneimplicitvkCmdCopyBuffercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBuffer-commandBuffer-recordingYNoneimplicitvkCmdCopyBuffercommandBuffer must be in the recording state
VUID-vkCmdCopyBuffer-commonparentYNoneimplicitvkCmdCopyBufferEach of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyBuffer-dstBuffer-00120YNoneexplicitvkCmdCopyBufferdstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyBuffer-dstBuffer-00121YNoneexplicitvkCmdCopyBufferIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBuffer-dstBuffer-parameterYNoneimplicitvkCmdCopyBufferdstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBuffer-dstOffset-00114YNegativeCopyBufferImage.ExtentsexplicitvkCmdCopyBufferThe dstOffset member of each element of pRegions must be less than the size of dstBuffer
VUID-vkCmdCopyBuffer-pRegions-00117YNegativeCopyBufferImage.CompletelyOverlappingBuffer, NegativeCopyBufferImage.Extents, NegativeCopyBufferImage.InterleavedRegions, NegativeSparseBuffer.OverlappingBufferCopy, NegativeSparseBuffer.OverlappingBufferCopy2, NegativeSparseBuffer.OverlappingBufferCopy3, NegativeSparseBuffer.OverlappingBufferCopy4explicitvkCmdCopyBufferThe 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-parameterYNoneimplicitvkCmdCopyBufferpRegions must be a valid pointer to an array of regionCount valid VkBufferCopy structures
VUID-vkCmdCopyBuffer-regionCount-arraylengthYNoneimplicitvkCmdCopyBufferregionCount must be greater than 0
VUID-vkCmdCopyBuffer-renderpassYNoneimplicitvkCmdCopyBufferThis command must only be called outside of a render pass instance
VUID-vkCmdCopyBuffer-size-00115YNegativeCopyBufferImage.ExtentsexplicitvkCmdCopyBufferThe size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset
VUID-vkCmdCopyBuffer-size-00116YNegativeCopyBufferImage.ExtentsexplicitvkCmdCopyBufferThe size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset
VUID-vkCmdCopyBuffer-srcBuffer-00118YNoneexplicitvkCmdCopyBuffersrcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyBuffer-srcBuffer-00119YNoneexplicitvkCmdCopyBufferIf srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBuffer-srcBuffer-parameterYNoneimplicitvkCmdCopyBuffersrcBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBuffer-srcOffset-00113YNegativeCopyBufferImage.ExtentsexplicitvkCmdCopyBufferThe srcOffset member of each element of pRegions must be less than the size of srcBuffer
VUID-vkCmdCopyBuffer-videocodingYNoneimplicitvkCmdCopyBufferThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBuffer2-commandBuffer-01822YNoneexplicitvkCmdCopyBuffer2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-01823YNoneexplicitvkCmdCopyBuffer2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-01824YNoneexplicitvkCmdCopyBuffer2If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBuffer2The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBuffer2-commandBuffer-parameterYNoneimplicitvkCmdCopyBuffer2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBuffer2-commandBuffer-recordingYNoneimplicitvkCmdCopyBuffer2commandBuffer must be in the recording state
VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameterYNoneimplicitvkCmdCopyBuffer2pCopyBufferInfo must be a valid pointer to a valid VkCopyBufferInfo2 structure
VUID-vkCmdCopyBuffer2-renderpassYNoneimplicitvkCmdCopyBuffer2This command must only be called outside of a render pass instance
VUID-vkCmdCopyBuffer2-videocodingYNoneimplicitvkCmdCopyBuffer2This command must only be called outside of a video coding scope
VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107YNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-bufferRowLength-09106YNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-bufferRowLength-09108YNoneexplicitvkCmdCopyBufferToImageFor 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.MixingProtectedResourcesexplicitvkCmdCopyBufferToImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBufferToImage-commandBuffer-01829YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBufferToImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyBufferToImage-commandBuffer-01830YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyBufferToImageIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyBufferToImage-commandBuffer-07737YNegativeCopyBufferImage.ImageTransferQueueFlagsexplicitvkCmdCopyBufferToImageIf 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-07739YNegativeCopyBufferImage.DepthStencilImageCopyNoGraphicsQueueFlagsexplicitvkCmdCopyBufferToImageIf 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-cmdpoolYNoneimplicitvkCmdCopyBufferToImageThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBufferToImage-commandBuffer-parameterYNoneimplicitvkCmdCopyBufferToImagecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBufferToImage-commandBuffer-recordingYNegativeCopyBufferImage.ImageBufferCopyimplicitvkCmdCopyBufferToImagecommandBuffer must be in the recording state
VUID-vkCmdCopyBufferToImage-commonparentYNoneimplicitvkCmdCopyBufferToImageEach of commandBuffer, dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyBufferToImage-dstImage-00177YNegativeImage.UsageBitsexplicitvkCmdCopyBufferToImagedstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyBufferToImage-dstImage-00207YNegativeCopyBufferImage.CompressedImageMipexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-00208YNegativeCopyBufferImage.CompressedImageMipexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-00209YNoneexplicitvkCmdCopyBufferToImageFor 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-01997YNoneexplicitvkCmdCopyBufferToImageThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdCopyBufferToImage-dstImage-07274YNegativeCopyBufferImage.CompressedImageMipexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-07275YNegativeCopyBufferImage.CompressedImageMipexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-07276YNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-dstImage-07966YNoneexplicitvkCmdCopyBufferToImageIf 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-07969YNoneexplicitvkCmdCopyBufferToImagedstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyBufferToImage-dstImage-07973YNoneexplicitvkCmdCopyBufferToImagedstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyBufferToImage-dstImage-07975YNegativeCopyBufferImage.ImageTransferQueueFlags, NegativeCopyBufferImage.MiscImageLayerexplicitvkCmdCopyBufferToImageIf 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-07976YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyBufferToImageIf 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-07978YNoneexplicitvkCmdCopyBufferToImageIf dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-vkCmdCopyBufferToImage-dstImage-07979YNoneexplicitvkCmdCopyBufferToImageIf 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-07980YNegativeCopyBufferImage.MiscImageLayerexplicitvkCmdCopyBufferToImageIf 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-07981YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyBufferToImageIf 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-07983YNoneexplicitvkCmdCopyBufferToImageIf 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-parameterYNoneimplicitvkCmdCopyBufferToImagedstImage must be a valid VkImage handle
VUID-vkCmdCopyBufferToImage-dstImageLayout-00180YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyBufferToImagedstImageLayout 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-01396YNoneexplicitvkCmdCopyBufferToImagedstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyBufferToImage-dstImageLayout-parameterYNoneimplicitvkCmdCopyBufferToImagedstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyBufferToImage-imageOffset-07738YNegativeCopyBufferImage.CompressedImageMip, NegativeCopyBufferImage.MinImageTransferGranularityexplicitvkCmdCopyBufferToImageThe 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-09104YNegativeCopyBufferImage.BufferToCompressedImage, NegativeCopyBufferImage.ImageBufferCopy, NegativeCopyBufferImage.MiscImageLayerexplicitvkCmdCopyBufferToImageFor 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-imageOffset-10051NNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, and imageOffset.x does not equal the width of the subresource specified by imageSubresource, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-imageOffset-10052NNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, and imageOffset.y does not equal the height of the subresource specified by imageSubresource, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-imageOffset-10053NNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference of imageOffset.x and extent.height must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-imageOffset-10054NNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.x and extent.width must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-imageOffset-10055NNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum of imageOffset.x and extent.height does not equal the width of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-imageOffset-10056NNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum of imageOffset.y and extent.width does not equal the height of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-imageOffset-10057NNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.y and extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-imageOffset-10058NNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference of imageOffset.y and extent.width must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyBufferToImage-imageSubresource-07967YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyBufferToImageThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyBufferToImage-imageSubresource-07968YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyBufferToImageIf 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-07970YNegativeCopyBufferImage.BufferToCompressedImage, NegativeCopyBufferImage.ImageBufferCopy, NegativeCopyBufferImage.MiscImageLayerexplicitvkCmdCopyBufferToImageThe image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage
VUID-vkCmdCopyBufferToImage-imageSubresource-07971YNegativeCopyBufferImage.BufferToCompressedImage, NegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyBufferToImageFor 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-07972YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyBufferToImageFor 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-09105YNoneexplicitvkCmdCopyBufferToImageFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in dstImage
VUID-vkCmdCopyBufferToImage-pRegions-00171YNegativeCopyBufferImage.CompressedImageMip, NegativeCopyBufferImage.ImageBufferCopy, NegativeCopyBufferImage.ImageRemainingLayersexplicitvkCmdCopyBufferToImagesrcBuffer 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-00173YNoneexplicitvkCmdCopyBufferToImageThe 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-07931NNoneexplicitvkCmdCopyBufferToImageIf 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-parameterYNoneimplicitvkCmdCopyBufferToImagepRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures
VUID-vkCmdCopyBufferToImage-regionCount-arraylengthYNoneimplicitvkCmdCopyBufferToImageregionCount must be greater than 0
VUID-vkCmdCopyBufferToImage-renderpassYNoneimplicitvkCmdCopyBufferToImageThis command must only be called outside of a render pass instance
VUID-vkCmdCopyBufferToImage-srcBuffer-00174YNegativeImage.UsageBitsexplicitvkCmdCopyBufferToImagesrcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyBufferToImage-srcBuffer-00176YNegativeMemory.BufferMemoryNotBoundexplicitvkCmdCopyBufferToImageIf srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBufferToImage-srcBuffer-parameterYNoneimplicitvkCmdCopyBufferToImagesrcBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBufferToImage-videocodingYNoneimplicitvkCmdCopyBufferToImageThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBufferToImage2-commandBuffer-01828YNoneexplicitvkCmdCopyBufferToImage2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBufferToImage2-commandBuffer-01829YNoneexplicitvkCmdCopyBufferToImage2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyBufferToImage2-commandBuffer-01830NNoneexplicitvkCmdCopyBufferToImage2If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyBufferToImage2-commandBuffer-07737YNoneexplicitvkCmdCopyBufferToImage2If 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-07739YNoneexplicitvkCmdCopyBufferToImage2If 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-cmdpoolYNoneimplicitvkCmdCopyBufferToImage2The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBufferToImage2-commandBuffer-parameterYNoneimplicitvkCmdCopyBufferToImage2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBufferToImage2-commandBuffer-recordingYNoneimplicitvkCmdCopyBufferToImage2commandBuffer must be in the recording state
VUID-vkCmdCopyBufferToImage2-imageOffset-07738YNegativeCopyBufferImage.CompressedImageMipexplicitvkCmdCopyBufferToImage2The 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-parameterYNoneimplicitvkCmdCopyBufferToImage2pCopyBufferToImageInfo must be a valid pointer to a valid VkCopyBufferToImageInfo2 structure
VUID-vkCmdCopyBufferToImage2-renderpassYNoneimplicitvkCmdCopyBufferToImage2This command must only be called outside of a render pass instance
VUID-vkCmdCopyBufferToImage2-videocodingYNoneimplicitvkCmdCopyBufferToImage2This command must only be called outside of a video coding scope
VUID-vkCmdCopyImage-None-01549YNegativeCopyBufferImage.ImageFormatSizeMismatch, NegativeYcbcr.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImageIn 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-07932YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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-07933YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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-08969YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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-06662YNegativeCopyBufferImage.ImageMissingUsageexplicitvkCmdCopyImageIf 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-06663YNegativeCopyBufferImage.CopyCommands2V13, NegativeCopyBufferImage.ImageMissingUsageexplicitvkCmdCopyImageIf 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-06664YNegativeCopyBufferImage.ImageMissingUsageexplicitvkCmdCopyImageIf 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-06665YNegativeCopyBufferImage.ImageMissingUsageexplicitvkCmdCopyImageIf 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-00142YNegativeCopyBufferImage.ImageAspectMismatchexplicitvkCmdCopyImageFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-vkCmdCopyImage-aspectMask-00143YNegativeCopyBufferImage.ImageAspectMismatchexplicitvkCmdCopyImageFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-vkCmdCopyImage-commandBuffer-01825YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImage-commandBuffer-01826YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyImage-commandBuffer-01827YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImageIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyImage-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImageThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImage-commandBuffer-parameterYNoneimplicitvkCmdCopyImagecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImage-commandBuffer-recordingYNegativeCopyBufferImage.ImageAspectMismatchimplicitvkCmdCopyImagecommandBuffer must be in the recording state
VUID-vkCmdCopyImage-commonparentYNoneimplicitvkCmdCopyImageEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyImage-dstImage-00152YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImageIf 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-01732YNegativeCopyBufferImage.ImageCompressedBlockAlignmentexplicitvkCmdCopyImageFor 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-01733YNegativeCopyBufferImage.ImageCompressedBlockAlignmentexplicitvkCmdCopyImageFor 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-01734YNoneexplicitvkCmdCopyImageFor 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-01786YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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-01788YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0
VUID-vkCmdCopyImage-dstImage-01792YNegativeCopyBufferImage.ImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImageIf 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-01996YNoneexplicitvkCmdCopyImageThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdCopyImage-dstImage-04444YNoneexplicitvkCmdCopyImageIf 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-07966YNegativeCopyBufferImage.ImageMemoryexplicitvkCmdCopyImageIf 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-07969YNoneexplicitvkCmdCopyImagedstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyImage-dstImage-08714YNegativeYcbcr.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImageIf 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-parameterYNoneimplicitvkCmdCopyImagedstImage must be a valid VkImage handle
VUID-vkCmdCopyImage-dstImageLayout-00133YNegativeImage.ImageLayoutexplicitvkCmdCopyImagedstImageLayout 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.ImageLayoutexplicitvkCmdCopyImagedstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImage-dstImageLayout-parameterYNoneimplicitvkCmdCopyImagedstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImage-dstOffset-00150YNegativeCopyBufferImage.ImageDstSizeExceeded, NegativeCopyBufferImage.ImageMultiPlaneSizeExceeded, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImageFor 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-00151YNegativeCopyBufferImage.ImageDstSizeExceeded, NegativeCopyBufferImage.ImageMultiPlaneSizeExceeded, NegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageFor 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-00153YNegativeCopyBufferImage.ImageDstSizeExceeded, NegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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-01784YNegativeCopyBufferImage.ImageCompressedBlockAlignment, NegativeCopyBufferImage.MinImageTransferGranularity, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImageThe 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-07967YNoneexplicitvkCmdCopyImageThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyImage-dstSubresource-07968YNegativeCopyBufferImage.ImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImageIf 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-00124YNegativeCopyBufferImage.OverlappingImageexplicitvkCmdCopyImageThe 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-07278YNegativeCopyBufferImage.ImageCompressedBlockAlignment, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImageFor each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07279YNegativeCopyBufferImage.ImageCompressedBlockAlignmentexplicitvkCmdCopyImageFor each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07280YNoneexplicitvkCmdCopyImageFor each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07281YNegativeCopyBufferImage.ImageCompressedBlockAlignment, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImageFor each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-07282YNegativeCopyBufferImage.ImageCompressedBlockAlignmentexplicitvkCmdCopyImageFor each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-07283YNoneexplicitvkCmdCopyImageFor each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-parameterYNoneimplicitvkCmdCopyImagepRegions must be a valid pointer to an array of regionCount valid VkImageCopy structures
VUID-vkCmdCopyImage-regionCount-arraylengthYNoneimplicitvkCmdCopyImageregionCount must be greater than 0
VUID-vkCmdCopyImage-renderpassYNoneimplicitvkCmdCopyImageThis command must only be called outside of a render pass instance
VUID-vkCmdCopyImage-srcImage-00136YNegativeCopyBufferImage.ImageSampleCountMismatchexplicitvkCmdCopyImageThe sample count of srcImage and dstImage must match
VUID-vkCmdCopyImage-srcImage-00146YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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-01548YNegativeCopyBufferImage.ImageAspectMismatch, NegativeCopyBufferImage.ImageDepthStencilFormatMismatch, NegativeCopyBufferImage.ImageFormatSizeMismatchexplicitvkCmdCopyImageIf 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-01551YNegativeCopyBufferImage.ImageAspectMismatchexplicitvkCmdCopyImageIf 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.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImageIf 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-01728YNegativeCopyBufferImage.ImageCompressedBlockAlignment, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImageFor 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-01729YNegativeCopyBufferImage.ImageCompressedBlockAlignmentexplicitvkCmdCopyImageFor 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-01730YNoneexplicitvkCmdCopyImageFor 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-01785YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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-01787YNegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0
VUID-vkCmdCopyImage-srcImage-01790YNegativeCopyBufferImage.ImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImageIf 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-01791YNegativeCopyBufferImage.ImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImageIf 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-01995YNoneexplicitvkCmdCopyImageThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdCopyImage-srcImage-04443YNoneexplicitvkCmdCopyImageIf 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-07743YNegativeCopyBufferImage.ImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImageIf 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-07966YNegativeCopyBufferImage.ImageMemoryexplicitvkCmdCopyImageIf 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-07969YNoneexplicitvkCmdCopyImagesrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyImage-srcImage-08713YNegativeYcbcr.CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImageIf 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-08793YNegativeCopyBufferImage.ImageLayerCountMismatch, NegativeCopyBufferImage.ImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImageIf 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-08794YNegativeCopyBufferImage.ImageRemainingArrayLayersexplicitvkCmdCopyImageIf 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-09247YNegativeCopyBufferImage.DifferentFormatTexelBlockExtentexplicitvkCmdCopyImageIf 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-09460YNegativeCopyBufferImage.SameImageexplicitvkCmdCopyImageIf 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-parameterYNoneimplicitvkCmdCopyImagesrcImage must be a valid VkImage handle
VUID-vkCmdCopyImage-srcImageLayout-00128YNegativeImage.ImageLayoutexplicitvkCmdCopyImagesrcImageLayout 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.ImageLayoutexplicitvkCmdCopyImagesrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImage-srcImageLayout-parameterYNoneimplicitvkCmdCopyImagesrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImage-srcOffset-00144YNegativeCopyBufferImage.ImageMultiPlaneSizeExceeded, NegativeCopyBufferImage.ImageSrcSizeExceededexplicitvkCmdCopyImageFor 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-00145YNegativeCopyBufferImage.ImageMultiPlaneSizeExceeded, NegativeCopyBufferImage.ImageSrcSizeExceeded, NegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageFor 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-00147YNegativeCopyBufferImage.ImageSrcSizeExceeded, NegativeCopyBufferImage.ImageTypeExtentMismatchexplicitvkCmdCopyImageIf 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-01783YNegativeCopyBufferImage.ImageCompressedBlockAlignment, NegativeCopyBufferImage.MinImageTransferGranularity, NegativeYcbcr.CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImageThe 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-07967YNoneexplicitvkCmdCopyImageThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdCopyImage-srcSubresource-07968YNegativeCopyBufferImage.ImageTypeExtentMismatch, NegativeCopyBufferImage.ImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImageIf 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-videocodingYNoneimplicitvkCmdCopyImageThis command must only be called outside of a video coding scope
VUID-vkCmdCopyImage2-commandBuffer-01825YNoneexplicitvkCmdCopyImage2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImage2-commandBuffer-01826YNoneexplicitvkCmdCopyImage2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyImage2-commandBuffer-01827YNoneexplicitvkCmdCopyImage2If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImage2The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImage2-commandBuffer-parameterYNoneimplicitvkCmdCopyImage2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImage2-commandBuffer-recordingYNoneimplicitvkCmdCopyImage2commandBuffer must be in the recording state
VUID-vkCmdCopyImage2-pCopyImageInfo-parameterYNoneimplicitvkCmdCopyImage2pCopyImageInfo must be a valid pointer to a valid VkCopyImageInfo2 structure
VUID-vkCmdCopyImage2-renderpassYNoneimplicitvkCmdCopyImage2This command must only be called outside of a render pass instance
VUID-vkCmdCopyImage2-videocodingYNoneimplicitvkCmdCopyImage2This command must only be called outside of a video coding scope
VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferFor each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferFor each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108YNoneexplicitvkCmdCopyImageToBufferFor 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.MixingProtectedResourcesexplicitvkCmdCopyImageToBufferIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImageToBuffer-commandBuffer-01832YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImageToBufferIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyImageToBuffer-commandBuffer-01833YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdCopyImageToBufferIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyImageToBuffer-commandBuffer-07746YNoneexplicitvkCmdCopyImageToBufferIf 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-cmdpoolYNoneimplicitvkCmdCopyImageToBufferThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImageToBuffer-commandBuffer-parameterYNoneimplicitvkCmdCopyImageToBuffercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImageToBuffer-commandBuffer-recordingYNegativeCopyBufferImage.ImageBufferCopyimplicitvkCmdCopyImageToBuffercommandBuffer must be in the recording state
VUID-vkCmdCopyImageToBuffer-commonparentYNoneimplicitvkCmdCopyImageToBufferEach of commandBuffer, dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyImageToBuffer-dstBuffer-00191YNoneexplicitvkCmdCopyImageToBufferdstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyImageToBuffer-dstBuffer-00192YNoneexplicitvkCmdCopyImageToBufferIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImageToBuffer-dstBuffer-parameterYNoneimplicitvkCmdCopyImageToBufferdstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyImageToBuffer-imageOffset-07747YNegativeCopyBufferImage.CompressedImageMip, NegativeCopyBufferImage.ImageBufferCopy, NegativeCopyBufferImage.MinImageTransferGranularityexplicitvkCmdCopyImageToBufferThe 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-09104YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferFor 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-imageOffset-10051NNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, and imageOffset.x does not equal the width of the subresource specified by imageSubresource, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-imageOffset-10052NNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, and imageOffset.y does not equal the height of the subresource specified by imageSubresource, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-imageOffset-10053NNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the difference of imageOffset.x and extent.height must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-imageOffset-10054NNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.x and extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-imageOffset-10055NNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the sum of imageOffset.x and extent.height does not equal the width of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-imageOffset-10056NNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, the sum of imageOffset.y and extent.width does not equal the height of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-imageOffset-10057NNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, the difference of imageOffset.y and extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-imageOffset-10058NNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, the difference of imageOffset.y and extent.width must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-imageSubresource-07967YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdCopyImageToBuffer-imageSubresource-07968YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferIf 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-07970YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferThe image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage
VUID-vkCmdCopyImageToBuffer-imageSubresource-07971YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferFor 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-07972YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferFor 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-09105YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in srcImage
VUID-vkCmdCopyImageToBuffer-pRegions-00183YNegativeCopyBufferImage.CompressedImageMip, NegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferdstBuffer 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-00184YNoneexplicitvkCmdCopyImageToBufferThe 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-parameterYNoneimplicitvkCmdCopyImageToBufferpRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures
VUID-vkCmdCopyImageToBuffer-regionCount-arraylengthYNoneimplicitvkCmdCopyImageToBufferregionCount must be greater than 0
VUID-vkCmdCopyImageToBuffer-renderpassYNoneimplicitvkCmdCopyImageToBufferThis command must only be called outside of a render pass instance
VUID-vkCmdCopyImageToBuffer-srcImage-00186YNoneexplicitvkCmdCopyImageToBuffersrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyImageToBuffer-srcImage-00207YNegativeCopyBufferImage.CompressedImageMip, NegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by imageSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-00208YNegativeCopyBufferImage.CompressedImageMip, NegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by imageSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-00209YNoneexplicitvkCmdCopyImageToBufferFor 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-01998YNoneexplicitvkCmdCopyImageToBufferThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdCopyImageToBuffer-srcImage-07274YNegativeCopyBufferImage.CompressedImageMipexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-07275YNegativeCopyBufferImage.CompressedImageMipexplicitvkCmdCopyImageToBufferFor each element of pRegions, if VkCopyCommandTransformInfoQCOM::transform is equal to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR or VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-07276YNoneexplicitvkCmdCopyImageToBufferFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-vkCmdCopyImageToBuffer-srcImage-07966YNoneexplicitvkCmdCopyImageToBufferIf 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-07969YNoneexplicitvkCmdCopyImageToBuffersrcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyImageToBuffer-srcImage-07973YNoneexplicitvkCmdCopyImageToBuffersrcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyImageToBuffer-srcImage-07975YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferIf 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-07976YNoneexplicitvkCmdCopyImageToBufferIf 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-07978YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBufferIf srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-vkCmdCopyImageToBuffer-srcImage-07979YNoneexplicitvkCmdCopyImageToBufferIf 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-07980YNoneexplicitvkCmdCopyImageToBufferIf 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-07981YNoneexplicitvkCmdCopyImageToBufferIf 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-07983YNoneexplicitvkCmdCopyImageToBufferIf 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-parameterYNoneimplicitvkCmdCopyImageToBuffersrcImage must be a valid VkImage handle
VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189YNegativeCopyBufferImage.ImageBufferCopyexplicitvkCmdCopyImageToBuffersrcImageLayout 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-01397YNoneexplicitvkCmdCopyImageToBuffersrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameterYNoneimplicitvkCmdCopyImageToBuffersrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImageToBuffer-videocodingYNoneimplicitvkCmdCopyImageToBufferThis command must only be called outside of a video coding scope
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01831YNoneexplicitvkCmdCopyImageToBuffer2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01832YNoneexplicitvkCmdCopyImageToBuffer2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01833YNoneexplicitvkCmdCopyImageToBuffer2If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyImageToBuffer2-commandBuffer-07746YNoneexplicitvkCmdCopyImageToBuffer2If 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-cmdpoolYNoneimplicitvkCmdCopyImageToBuffer2The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameterYNoneimplicitvkCmdCopyImageToBuffer2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImageToBuffer2-commandBuffer-recordingYNoneimplicitvkCmdCopyImageToBuffer2commandBuffer must be in the recording state
VUID-vkCmdCopyImageToBuffer2-imageOffset-07747YNoneexplicitvkCmdCopyImageToBuffer2The 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-parameterYNoneimplicitvkCmdCopyImageToBuffer2pCopyImageToBufferInfo must be a valid pointer to a valid VkCopyImageToBufferInfo2 structure
VUID-vkCmdCopyImageToBuffer2-renderpassYNoneimplicitvkCmdCopyImageToBuffer2This command must only be called outside of a render pass instance
VUID-vkCmdCopyImageToBuffer2-videocodingYNoneimplicitvkCmdCopyImageToBuffer2This command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryIndirectNV-None-07653NNoneexplicitvkCmdCopyMemoryIndirectNVThe indirectCopy feature must be enabled
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-07656NNoneexplicitvkCmdCopyMemoryIndirectNVThe VkCommandPool that commandBuffer was allocated from must support at least one of the VkPhysicalDeviceCopyMemoryIndirectPropertiesNV::supportedQueues
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryIndirectNVThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryIndirectNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryIndirectNVcommandBuffer must be in the recording state
VUID-vkCmdCopyMemoryIndirectNV-copyBufferAddress-07654NNoneexplicitvkCmdCopyMemoryIndirectNVcopyBufferAddress must be 4 byte aligned
VUID-vkCmdCopyMemoryIndirectNV-renderpassYNoneimplicitvkCmdCopyMemoryIndirectNVThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryIndirectNV-stride-07655NNoneexplicitvkCmdCopyMemoryIndirectNVstride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryIndirectCommandNV)
VUID-vkCmdCopyMemoryIndirectNV-videocodingYNoneimplicitvkCmdCopyMemoryIndirectNVThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927YNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745YNegativeRayTracing.CmdCopyMemoryToAccelerationStructureexplicitvkCmdCopyMemoryToAccelerationStructureKHRThe buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRcommandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742YNegativeRayTracing.CmdCopyMemoryToAccelerationStructureKHRInvalidSrcBufferexplicitvkCmdCopyMemoryToAccelerationStructureKHRpInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743YNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHRpInfo->src.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744YNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHRIf 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-parameterYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRpInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpassYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-videocodingYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHRThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToImageIndirectNV-None-07660NNoneexplicitvkCmdCopyMemoryToImageIndirectNVThe indirectCopy feature must be enabled
VUID-vkCmdCopyMemoryToImageIndirectNV-aspectMask-07662NNoneexplicitvkCmdCopyMemoryToImageIndirectNVThe aspectMask member for every subresource in pImageSubresources must only have a single bit set
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-07674NNoneexplicitvkCmdCopyMemoryToImageIndirectNVIf 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-cmdpoolYNoneimplicitvkCmdCopyMemoryToImageIndirectNVThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcommandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToImageIndirectNV-commonparentYNoneimplicitvkCmdCopyMemoryToImageIndirectNVBoth of commandBuffer, and dstImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyMemoryToImageIndirectNV-copyCount-arraylengthYNoneimplicitvkCmdCopyMemoryToImageIndirectNVcopyCount must be greater than 0
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07661NNoneexplicitvkCmdCopyMemoryToImageIndirectNVdstImage must not be a protected image
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07663NNoneexplicitvkCmdCopyMemoryToImageIndirectNVThe image region specified by each element in copyBufferAddress must be a region that is contained within dstImage
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07664NNoneexplicitvkCmdCopyMemoryToImageIndirectNVdstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07665NNoneexplicitvkCmdCopyMemoryToImageIndirectNVIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07673NNoneexplicitvkCmdCopyMemoryToImageIndirectNVdstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07973NNoneexplicitvkCmdCopyMemoryToImageIndirectNVdstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNVdstImage must be a valid VkImage handle
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07667NNoneexplicitvkCmdCopyMemoryToImageIndirectNVdstImageLayout must specify the layout of the image subresources of dstImage at the time this command is executed on a VkDevice
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07669NNoneexplicitvkCmdCopyMemoryToImageIndirectNVdstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNVdstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07672NNoneexplicitvkCmdCopyMemoryToImageIndirectNVThe 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-07675NNoneexplicitvkCmdCopyMemoryToImageIndirectNVFor 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-08764NNoneexplicitvkCmdCopyMemoryToImageIndirectNVIf 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-07670NNoneexplicitvkCmdCopyMemoryToImageIndirectNVThe specified mipLevel of each region must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyMemoryToImageIndirectNV-offset-07676NNoneexplicitvkCmdCopyMemoryToImageIndirectNVoffset must be 4 byte aligned
VUID-vkCmdCopyMemoryToImageIndirectNV-pImageSubresources-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNVpImageSubresources must be a valid pointer to an array of copyCount valid VkImageSubresourceLayers structures
VUID-vkCmdCopyMemoryToImageIndirectNV-renderpassYNoneimplicitvkCmdCopyMemoryToImageIndirectNVThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToImageIndirectNV-stride-07677NNoneexplicitvkCmdCopyMemoryToImageIndirectNVstride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryToImageIndirectCommandNV)
VUID-vkCmdCopyMemoryToImageIndirectNV-videocodingYNoneimplicitvkCmdCopyMemoryToImageIndirectNVThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToMicromapEXT-buffer-07546NNoneexplicitvkCmdCopyMemoryToMicromapEXTThe buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryToMicromapEXTThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToMicromapEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToMicromapEXTcommandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543NNoneexplicitvkCmdCopyMemoryToMicromapEXTpInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07544NNoneexplicitvkCmdCopyMemoryToMicromapEXTpInfo->src.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07545NNoneexplicitvkCmdCopyMemoryToMicromapEXTIf 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-parameterYNoneimplicitvkCmdCopyMemoryToMicromapEXTpInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure
VUID-vkCmdCopyMemoryToMicromapEXT-renderpassYNoneimplicitvkCmdCopyMemoryToMicromapEXTThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToMicromapEXT-videocodingYNoneimplicitvkCmdCopyMemoryToMicromapEXTThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMicromapEXT-buffer-07529NNoneexplicitvkCmdCopyMicromapEXTThe buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyMicromapEXT-buffer-07530NNoneexplicitvkCmdCopyMicromapEXTThe buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMicromapEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMicromapEXTThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMicromapEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMicromapEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMicromapEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMicromapEXTcommandBuffer must be in the recording state
VUID-vkCmdCopyMicromapEXT-pInfo-parameterYNoneimplicitvkCmdCopyMicromapEXTpInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure
VUID-vkCmdCopyMicromapEXT-renderpassYNoneimplicitvkCmdCopyMicromapEXTThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMicromapEXT-videocodingYNoneimplicitvkCmdCopyMicromapEXTThis command must only be called outside of a video coding scope
VUID-vkCmdCopyMicromapToMemoryEXT-buffer-07539NNoneexplicitvkCmdCopyMicromapToMemoryEXTThe buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMicromapToMemoryEXTThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMicromapToMemoryEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMicromapToMemoryEXTcommandBuffer must be in the recording state
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536NNoneexplicitvkCmdCopyMicromapToMemoryEXTpInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07537NNoneexplicitvkCmdCopyMicromapToMemoryEXTpInfo->dst.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07538NNoneexplicitvkCmdCopyMicromapToMemoryEXTIf 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-parameterYNoneimplicitvkCmdCopyMicromapToMemoryEXTpInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure
VUID-vkCmdCopyMicromapToMemoryEXT-renderpassYNoneimplicitvkCmdCopyMicromapToMemoryEXTThis command must only be called outside of a render pass instance
VUID-vkCmdCopyMicromapToMemoryEXT-videocodingYNoneimplicitvkCmdCopyMicromapToMemoryEXTThis command must only be called outside of a video coding scope
VUID-vkCmdCopyQueryPoolResults-None-07429YNegativeQuery.ActiveCmdCopyQueryPoolResultsexplicitvkCmdCopyQueryPoolResultsAll queries used by the command must not be active
VUID-vkCmdCopyQueryPoolResults-None-08752YNoneexplicitvkCmdCopyQueryPoolResultsAll queries used by the command must have been made available by prior executed commands
VUID-vkCmdCopyQueryPoolResults-None-09402YNegativeQuery.GetQueryPoolResultsWithoutResetexplicitvkCmdCopyQueryPoolResultsAll queries used by the command must not be uninitialized when the command is executed
VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyQueryPoolResultsThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameterYNoneimplicitvkCmdCopyQueryPoolResultscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyQueryPoolResults-commandBuffer-recordingYNoneimplicitvkCmdCopyQueryPoolResultscommandBuffer must be in the recording state
VUID-vkCmdCopyQueryPoolResults-commonparentYNoneimplicitvkCmdCopyQueryPoolResultsEach of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultsdstBuffer must have enough storage, from dstOffset, to contain the result of each query, as described here
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825YNoneexplicitvkCmdCopyQueryPoolResultsdstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826YNoneexplicitvkCmdCopyQueryPoolResultsIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameterYNoneimplicitvkCmdCopyQueryPoolResultsdstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyQueryPoolResults-dstOffset-00819YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultsdstOffset must be less than the size of dstBuffer
VUID-vkCmdCopyQueryPoolResults-firstQuery-09436YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultsfirstQuery must be less than the number of queries in queryPool
VUID-vkCmdCopyQueryPoolResults-firstQuery-09437YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultsThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdCopyQueryPoolResults-flags-00822YNegativeQuery.StrideexplicitvkCmdCopyQueryPoolResultsIf VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4
VUID-vkCmdCopyQueryPoolResults-flags-00823YNegativeQuery.StrideexplicitvkCmdCopyQueryPoolResultsIf VK_QUERY_RESULT_64_BIT is set in flags then dstOffset and stride must be multiples of 8
VUID-vkCmdCopyQueryPoolResults-flags-09443YNegativeVideo.CopyQueryPoolResultsStatusBitexplicitvkCmdCopyQueryPoolResultsIf flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
VUID-vkCmdCopyQueryPoolResults-flags-parameterYNoneimplicitvkCmdCopyQueryPoolResultsflags must be a valid combination of VkQueryResultFlagBits values
VUID-vkCmdCopyQueryPoolResults-queryCount-09438YNegativeQuery.SizesexplicitvkCmdCopyQueryPoolResultsIf queryCount is greater than 1, stride must not be zero
VUID-vkCmdCopyQueryPoolResults-queryPool-parameterYNegativeQuery.CmdCopyQueryPoolResultsWithoutQueryPoolimplicitvkCmdCopyQueryPoolResultsqueryPool must be a valid VkQueryPool handle
VUID-vkCmdCopyQueryPoolResults-queryType-02734YNegativeQuery.PerformanceQueryIntelexplicitvkCmdCopyQueryPoolResultsvkCmdCopyQueryPoolResults must not be called if the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
VUID-vkCmdCopyQueryPoolResults-queryType-03232YNoneexplicitvkCmdCopyQueryPoolResultsIf the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, VkPhysicalDevicePerformanceQueryPropertiesKHR::allowCommandBufferQueryCopies must be VK_TRUE
VUID-vkCmdCopyQueryPoolResults-queryType-09439YNegativeQuery.PoolPartialTimestampexplicitvkCmdCopyQueryPoolResultsIf the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT
VUID-vkCmdCopyQueryPoolResults-queryType-09440YNegativeQuery.PerformanceIncompletePassesexplicitvkCmdCopyQueryPoolResultsIf 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-09441YNoneexplicitvkCmdCopyQueryPoolResultsIf 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.CopyQueryPoolResultsStatusBitexplicitvkCmdCopyQueryPoolResultsIf 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-renderpassYNoneimplicitvkCmdCopyQueryPoolResultsThis command must only be called outside of a render pass instance
VUID-vkCmdCopyQueryPoolResults-videocodingYNoneimplicitvkCmdCopyQueryPoolResultsThis command must only be called outside of a video coding scope
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-cmdpoolYNoneimplicitvkCmdCuLaunchKernelNVXThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameterYNoneimplicitvkCmdCuLaunchKernelNVXcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-recordingYNoneimplicitvkCmdCuLaunchKernelNVXcommandBuffer must be in the recording state
VUID-vkCmdCuLaunchKernelNVX-pLaunchInfo-parameterYNoneimplicitvkCmdCuLaunchKernelNVXpLaunchInfo must be a valid pointer to a valid VkCuLaunchInfoNVX structure
VUID-vkCmdCuLaunchKernelNVX-videocodingYNoneimplicitvkCmdCuLaunchKernelNVXThis command must only be called outside of a video coding scope
VUID-vkCmdCudaLaunchKernelNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCudaLaunchKernelNVThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameterYNoneimplicitvkCmdCudaLaunchKernelNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCudaLaunchKernelNV-commandBuffer-recordingYNoneimplicitvkCmdCudaLaunchKernelNVcommandBuffer must be in the recording state
VUID-vkCmdCudaLaunchKernelNV-pLaunchInfo-parameterYNoneimplicitvkCmdCudaLaunchKernelNVpLaunchInfo must be a valid pointer to a valid VkCudaLaunchInfoNV structure
VUID-vkCmdCudaLaunchKernelNV-videocodingYNoneimplicitvkCmdCudaLaunchKernelNVThis command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDebugMarkerBeginEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerBeginEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerBeginEXTcommandBuffer must be in the recording state
VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameterYNoneimplicitvkCmdDebugMarkerBeginEXTpMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure
VUID-vkCmdDebugMarkerBeginEXT-videocodingYNoneimplicitvkCmdDebugMarkerBeginEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239NNoneexplicitvkCmdDebugMarkerEndEXTThere must be an outstanding vkCmdDebugMarkerBeginEXT command prior to the vkCmdDebugMarkerEndEXT on the queue that commandBuffer is submitted to
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240NNoneexplicitvkCmdDebugMarkerEndEXTIf 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-cmdpoolYNoneimplicitvkCmdDebugMarkerEndEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerEndEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerEndEXTcommandBuffer must be in the recording state
VUID-vkCmdDebugMarkerEndEXT-videocodingYNoneimplicitvkCmdDebugMarkerEndEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDebugMarkerInsertEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerInsertEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerInsertEXTcommandBuffer must be in the recording state
VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameterYNoneimplicitvkCmdDebugMarkerInsertEXTpMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure
VUID-vkCmdDebugMarkerInsertEXT-videocodingYNoneimplicitvkCmdDebugMarkerInsertEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDecodeVideoKHR-None-07011YNegativeVideo.DecodeSessionUninitializedexplicitvkCmdDecodeVideoKHRThe bound video session must not be in uninitialized state at the time the command is executed on the device
VUID-vkCmdDecodeVideoKHR-None-07258YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeSessionNotDecodeexplicitvkCmdDecodeVideoKHRThe bound video session must have been created with a decode operation
VUID-vkCmdDecodeVideoKHR-StdVideoH264PictureParameterSet-07155YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRIf 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.DecodeTooManyReferencesH264InterlacedexplicitvkCmdDecodeVideoKHRactiveReferencePictureCount must be less than or equal to the VkVideoSessionCreateInfoKHR::maxActiveReferencePictures specified when the bound video session was created
VUID-vkCmdDecodeVideoKHR-bufferlevelYNoneimplicitvkCmdDecodeVideoKHRcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDecodeVideoKHR-codedOffset-07257YNegativeVideo.DecodeSetupAndRefCodedOffsetexplicitvkCmdDecodeVideoKHRThe 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.DecodeProtectedNoFaultBitstreamBufferexplicitvkCmdDecodeVideoKHRIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pDecodeInfo->srcBuffer must not be a protected buffer
VUID-vkCmdDecodeVideoKHR-commandBuffer-07137YNegativeVideo.DecodeProtectedNoFaultBitstreamBufferexplicitvkCmdDecodeVideoKHRIf commandBuffer is a protected command buffer and protectedNoFault is not supported, then pDecodeInfo->srcBuffer must be a protected buffer
VUID-vkCmdDecodeVideoKHR-commandBuffer-07147YNegativeVideo.DecodeProtectedNoFaultDecodeOutputexplicitvkCmdDecodeVideoKHRIf 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.DecodeProtectedNoFaultDecodeOutputexplicitvkCmdDecodeVideoKHRIf 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.DecodeSessionNotDecodeimplicitvkCmdDecodeVideoKHRThe VkCommandPool that commandBuffer was allocated from must support decode operations
VUID-vkCmdDecodeVideoKHR-commandBuffer-parameterYNoneimplicitvkCmdDecodeVideoKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecodeVideoKHR-commandBuffer-recordingYNoneimplicitvkCmdDecodeVideoKHRcommandBuffer must be in the recording state
VUID-vkCmdDecodeVideoKHR-dpbBottomFieldUseCount-07178YNegativeVideo.DecodeDuplicateFrameFieldH264InterlacedexplicitvkCmdDecodeVideoKHRAll elements of dpbBottomFieldUseCount must be less than or equal to 1
VUID-vkCmdDecodeVideoKHR-dpbFrameUseCount-07176YNegativeVideo.DecodeDuplicateFrame, NegativeVideo.DecodeDuplicateFrameFieldH264Interlaced, NegativeVideo.DecodeDuplicateRefResourceexplicitvkCmdDecodeVideoKHRAll elements of dpbFrameUseCount must be less than or equal to 1
VUID-vkCmdDecodeVideoKHR-dpbTopFieldUseCount-07177YNegativeVideo.DecodeDuplicateFrameFieldH264InterlacedexplicitvkCmdDecodeVideoKHRAll elements of dpbTopFieldUseCount must be less than or equal to 1
VUID-vkCmdDecodeVideoKHR-filmGrainSupport-09248YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR and VkVideoDecodeAV1ProfileInfoKHR::filmGrainSupport set to VK_FALSE, then film grain must not be enabled for the decoded picture
VUID-vkCmdDecodeVideoKHR-frameHeaderOffset-09251YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the frameHeaderOffset member of the VkVideoDecodeAV1PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than the minimum of pDecodeInfo->srcBufferRange
VUID-vkCmdDecodeVideoKHR-opCount-07134YNegativeVideo.DecodeQueryTooManyOperationsexplicitvkCmdDecodeVideoKHRFor 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.DecodeIncompatBufferProfileexplicitvkCmdDecodeVideoKHRpDecodeInfo->srcBuffer must be compatible with the video profile the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07138YNegativeVideo.DecodeBufferOffsetAlignmentexplicitvkCmdDecodeVideoKHRpDecodeInfo->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.DecodeBufferRangeAlignmentexplicitvkCmdDecodeVideoKHRpDecodeInfo->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.DecodeAV1FilmGrainRequiresDistinct, NegativeVideo.DecodeInvalidOutputAndSetupCoincideexplicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoAV1, NegativeVideo.DecodeInvalidCodecInfoH264, NegativeVideo.DecodeInvalidCodecInfoH265, NegativeVideo.DecodeInvalidOutputAndSetupDistinct, NegativeVideo.DecodeInvalidResourceLayerexplicitvkCmdDecodeVideoKHRIf pDecodeInfo->pSetupReferenceSlot is not NULL and none of the following is true: VkVideoDecodeCapabilitiesKHR::flags includes 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 the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR and VkVideoDecodeAV1ProfileInfoKHR::filmGrainSupport set to VK_TRUE, and film grain is enabled for the decoded picture then the video picture resources specified by pDecodeInfo->dstPictureResource and pDecodeInfo->pSetupReferenceSlot->pPictureResource must match
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07142YNegativeVideo.DecodeIncompatOutputPicProfileexplicitvkCmdDecodeVideoKHRpDecodeInfo->dstPictureResource.imageViewBinding must be compatible with the video profile the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07143YNegativeVideo.DecodeOutputFormatMismatchexplicitvkCmdDecodeVideoKHRThe format of pDecodeInfo->dstPictureResource.imageViewBinding must match the VkVideoSessionCreateInfoKHR::pictureFormat the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07144YNegativeVideo.DecodeOutputCodedOffsetExtent, NegativeVideo.DecodeSetupAndRefCodedOffsetexplicitvkCmdDecodeVideoKHRpDecodeInfo->dstPictureResource.codedOffset must be an integer multiple of codedOffsetGranularity
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07145YNegativeVideo.DecodeOutputCodedOffsetExtentexplicitvkCmdDecodeVideoKHRpDecodeInfo->dstPictureResource.codedExtent must be between minCodedExtent and maxCodedExtent, inclusive, the bound video session was created with
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07146YNegativeVideo.DecodeAV1FilmGrainRequiresDistinct, NegativeVideo.DecodeInvalidOutputAndSetupCoincide, NegativeVideo.DecodeOutputMissingDecodeDstUsage, PositiveVideo.DecodeAV1CoincideWithoutFilmGrainexplicitvkCmdDecodeVideoKHRpDecodeInfo->dstPictureResource.imageViewBinding must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07149YNegativeVideo.DecodeInvalidResourceLayer, NegativeVideo.DecodeSetupAndRefCodedOffset, NegativeVideo.DecodeSetupResourceNotBoundexplicitvkCmdDecodeVideoKHRIf 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.DecodeSetupAndRefCodedOffsetexplicitvkCmdDecodeVideoKHRThe 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.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidSetupSlotIndexexplicitvkCmdDecodeVideoKHRIf 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.DecodeSetupAndRefCodedOffsetexplicitvkCmdDecodeVideoKHRIf pDecodeInfo->pSetupReferenceSlot is not NULL, then pDecodeInfo->pSetupReferenceSlot->pPictureResource->codedOffset must be an integer multiple of codedOffsetGranularity
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07252YNegativeVideo.DecodeImageLayoutsexplicitvkCmdDecodeVideoKHRIf 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.DecodeImageLayoutsexplicitvkCmdDecodeVideoKHRIf 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.DecodeImageLayoutsexplicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeFieldFrameMismatchH264explicitvkCmdDecodeVideoKHRIf 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.DecodeFieldFrameMismatchH264explicitvkCmdDecodeVideoKHRIf 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.DecodeDuplicateRefResourceH264InterlacedexplicitvkCmdDecodeVideoKHREach 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.DecodeRefPictureKindMismatchH264explicitvkCmdDecodeVideoKHRIf 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.DecodeRefPictureKindMismatchH264explicitvkCmdDecodeVideoKHRIf 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.DecodeRefPictureKindMismatchH264explicitvkCmdDecodeVideoKHRIf 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.DecodeSetupNullexplicitvkCmdDecodeVideoKHRpDecodeInfo->pSetupReferenceSlot must not be NULL unless the bound video session was created with VkVideoSessionCreateInfoKHR::maxDpbSlots equal to zero
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-09249YNegativeVideo.DecodeAV1FilmGrainRequiresDistinct, NegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, pDecodeInfo->pSetupReferenceSlot is not NULL, and film grain is enabled for the decoded picture, then the video picture resources specified by pDecodeInfo->dstPictureResource and pDecodeInfo->pSetupReferenceSlot->pPictureResource must not match
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-09254YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR and pDecodeInfo->pSetupReferenceSlot is not NULL, then the pNext chain of pDecodeInfo->pSetupReferenceSlot must include a VkVideoDecodeAV1DpbSlotInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-parameterYNoneimplicitvkCmdDecodeVideoKHRpDecodeInfo must be a valid pointer to a valid VkVideoDecodeInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pNext-07152YNegativeVideo.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRIf 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.DecodeInlineQueryOutOfBoundsexplicitvkCmdDecodeVideoKHRIf 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.DecodeInlineQueryUnavailableexplicitvkCmdDecodeVideoKHRIf 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-pNext-09250YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the pNext chain of pDecodeInfo must include a VkVideoDecodeAV1PictureInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pNext-09255YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the pNext chain of each element of pDecodeInfo->pReferenceSlots must include a VkVideoDecodeAV1DpbSlotInfoKHR structure
VUID-vkCmdDecodeVideoKHR-pPictureResource-07255YNegativeVideo.DecodeImageLayoutsexplicitvkCmdDecodeVideoKHRThe 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.DecodeInvalidCodecInfoH264explicitvkCmdDecodeVideoKHRIf 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.DecodeInvalidCodecInfoH265explicitvkCmdDecodeVideoKHRIf 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-pTileOffsets-09252YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then for each element i of the pTileOffsets and pTileSizes members of the VkVideoDecodeAV1PictureInfoKHR structure included in the pNext chain of pDecodeInfo the sum of pTileOffsets[i] and pTileSizes[i] must be less than or equal to pDecodeInfo->srcBufferRange
VUID-vkCmdDecodeVideoKHR-pTileOffsets-09253YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then all elements of the pTileOffsets member of the VkVideoDecodeAV1PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange
VUID-vkCmdDecodeVideoKHR-queryPool-08368YNegativeVideo.DecodeInlineQueryProfileMismatch, NegativeVideo.DecodeInlineQueryTypeexplicitvkCmdDecodeVideoKHRIf 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.DecodeInlineQueryTypeexplicitvkCmdDecodeVideoKHRIf 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.DecodeInlineQueryIncompatibleQueueFamilyexplicitvkCmdDecodeVideoKHRIf 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-referenceNameSlotIndices-09262YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then each element of the referenceNameSlotIndices array member of the VkVideoDecodeAV1PictureInfoKHR structure included in the pNext chain of pDecodeInfo must either be negative or must equal the slotIndex member of one of the elements of pDecodeInfo->pReferenceSlots
VUID-vkCmdDecodeVideoKHR-renderpassYNoneimplicitvkCmdDecodeVideoKHRThis command must only be called outside of a render pass instance
VUID-vkCmdDecodeVideoKHR-slotIndex-07256YNegativeVideo.DecodeInvalidRefSlotIndex, NegativeVideo.DecodeInvalidResourceLayerexplicitvkCmdDecodeVideoKHRThe 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-slotIndex-09263YNegativeVideo.DecodeInvalidCodecInfoAV1explicitvkCmdDecodeVideoKHRIf the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the slotIndex member of each element of pDecodeInfo->pReferenceSlots must equal one of the elements of the referenceNameSlotIndices array member of the VkVideoDecodeAV1PictureInfoKHR structure included in the pNext chain of pDecodeInfo
VUID-vkCmdDecodeVideoKHR-videocodingYNoneimplicitvkCmdDecodeVideoKHRThis command must only be called inside of a video coding scope
VUID-vkCmdDecompressMemoryIndirectCountNV-None-07692NNoneexplicitvkCmdDecompressMemoryIndirectCountNVThe memoryDecompression feature must be enabled
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDecompressMemoryIndirectCountNVThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameterYNoneimplicitvkCmdDecompressMemoryIndirectCountNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-recordingYNoneimplicitvkCmdDecompressMemoryIndirectCountNVcommandBuffer must be in the recording state
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07693NNoneexplicitvkCmdDecompressMemoryIndirectCountNVIf indirectCommandsAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07694NNoneexplicitvkCmdDecompressMemoryIndirectCountNVThe VkBuffer that indirectCommandsAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07696NNoneexplicitvkCmdDecompressMemoryIndirectCountNVIf indirectCommandsCountAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07697NNoneexplicitvkCmdDecompressMemoryIndirectCountNVThe VkBuffer that indirectCommandsCountAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07698NNoneexplicitvkCmdDecompressMemoryIndirectCountNVindirectCommandsCountAddress must be a multiple of 4
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07699NNoneexplicitvkCmdDecompressMemoryIndirectCountNVThe count stored in indirectCommandsCountAddress must be less than or equal to VkPhysicalDeviceMemoryDecompressionPropertiesNV::maxDecompressionIndirectCount
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07701NNoneexplicitvkCmdDecompressMemoryIndirectCountNVIf 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-07702NNoneexplicitvkCmdDecompressMemoryIndirectCountNVIf 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-07695NNoneexplicitvkCmdDecompressMemoryIndirectCountNVoffset must be a multiple of 4
VUID-vkCmdDecompressMemoryIndirectCountNV-renderpassYNoneimplicitvkCmdDecompressMemoryIndirectCountNVThis command must only be called outside of a render pass instance
VUID-vkCmdDecompressMemoryIndirectCountNV-stride-07700NNoneexplicitvkCmdDecompressMemoryIndirectCountNVstride must be a multiple of 4 and must be greater than or equal to sizeof(VkDecompressMemoryRegionNV)
VUID-vkCmdDecompressMemoryIndirectCountNV-videocodingYNoneimplicitvkCmdDecompressMemoryIndirectCountNVThis command must only be called outside of a video coding scope
VUID-vkCmdDecompressMemoryNV-None-07684NNoneexplicitvkCmdDecompressMemoryNVThe memoryDecompression feature must be enabled
VUID-vkCmdDecompressMemoryNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDecompressMemoryNVThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDecompressMemoryNV-commandBuffer-parameterYNoneimplicitvkCmdDecompressMemoryNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecompressMemoryNV-commandBuffer-recordingYNoneimplicitvkCmdDecompressMemoryNVcommandBuffer must be in the recording state
VUID-vkCmdDecompressMemoryNV-decompressRegionCount-arraylengthYNoneimplicitvkCmdDecompressMemoryNVdecompressRegionCount must be greater than 0
VUID-vkCmdDecompressMemoryNV-pDecompressMemoryRegions-parameterYNoneimplicitvkCmdDecompressMemoryNVpDecompressMemoryRegions must be a valid pointer to an array of decompressRegionCount valid VkDecompressMemoryRegionNV structures
VUID-vkCmdDecompressMemoryNV-renderpassYNoneimplicitvkCmdDecompressMemoryNVThis command must only be called outside of a render pass instance
VUID-vkCmdDecompressMemoryNV-videocodingYNoneimplicitvkCmdDecompressMemoryNVThis command must only be called outside of a video coding scope
VUID-vkCmdDispatch-ConstOffset-06551YNoneexplicitvkCmdDispatchIf 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-02691YNoneexplicitvkCmdDispatchIf 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-02692YNoneexplicitvkCmdDispatchIf 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-02693YNoneexplicitvkCmdDispatchIf 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-06479YNoneexplicitvkCmdDispatchIf 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-06550YNoneexplicitvkCmdDispatchIf 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-07288NNoneexplicitvkCmdDispatchAny shader invocation executed by this command must terminate
VUID-vkCmdDispatch-None-07888YNoneexplicitvkCmdDispatchIf 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.ArrayOOBCompute, NegativeGpuAVDescriptorIndexing.BasicHLSLRuntimeArrayexplicitvkCmdDispatchDescriptors 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.InconsistentSetexplicitvkCmdDispatchIf 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-08116NNoneexplicitvkCmdDispatchDescriptors 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.InconsistentBufferexplicitvkCmdDispatchIf 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-08119NNoneexplicitvkCmdDispatchIf 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.DescriptorSetCompatibilityCompute, NegativeDescriptors.DispatchWithUnboundSet, NegativePipeline.NotCompatibleForSetexplicitvkCmdDispatchFor 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-08601NNoneexplicitvkCmdDispatchFor 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-08604NNoneexplicitvkCmdDispatchDescriptors 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-08605NNoneexplicitvkCmdDispatchIf 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.BadPipelineObjectexplicitvkCmdDispatchIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatch-None-08607YNoneexplicitvkCmdDispatchIf 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-08608YNoneexplicitvkCmdDispatchIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatch-None-08609YNoneexplicitvkCmdDispatchIf 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-08610YNoneexplicitvkCmdDispatchIf 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-08611YNoneexplicitvkCmdDispatchIf 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-08612YNoneexplicitvkCmdDispatchIf 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-08613YNoneexplicitvkCmdDispatchIf 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-None-09600NNoneexplicitvkCmdDispatchIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDispatch-None-10068NNoneexplicitvkCmdDispatchFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchIf 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-06976NNoneexplicitvkCmdDispatchIf 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-06974NNoneexplicitvkCmdDispatchIf 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-09215NNoneexplicitvkCmdDispatchIf 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-09216NNoneexplicitvkCmdDispatchIf 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-09217NNoneexplicitvkCmdDispatchIf 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-06973NNoneexplicitvkCmdDispatchIf 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-06971NNoneexplicitvkCmdDispatchIf 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-06972NNoneexplicitvkCmdDispatchIf 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-06977NNoneexplicitvkCmdDispatchIf 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-06978NNoneexplicitvkCmdDispatchIf 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.UnknownWriteLessComponentexplicitvkCmdDispatchIf 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.UnknownWriteLessComponentexplicitvkCmdDispatchIf 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.UnknownWriteComponentA8UnormexplicitvkCmdDispatchIf 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.MissingFormatWriteForFormatexplicitvkCmdDispatchFor 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.MissingFormatReadForFormatexplicitvkCmdDispatchFor 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.MissingFormatWriteForFormatexplicitvkCmdDispatchFor 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-07030YNoneexplicitvkCmdDispatchAny 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.ImageInt64Drawtime32explicitvkCmdDispatchIf 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.ImageInt64Drawtime64explicitvkCmdDispatchIf 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-04472YNoneexplicitvkCmdDispatchIf 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-04473YNoneexplicitvkCmdDispatchIf 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-02707YNoneexplicitvkCmdDispatchIf 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-02712YNoneexplicitvkCmdDispatchIf 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-02713NNoneexplicitvkCmdDispatchIf 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-04617YNoneexplicitvkCmdDispatchIf 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-cmdpoolYNoneimplicitvkCmdDispatchThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatch-commandBuffer-parameterYNoneimplicitvkCmdDispatchcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatch-commandBuffer-recordingYNoneimplicitvkCmdDispatchcommandBuffer must be in the recording state
VUID-vkCmdDispatch-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchIf 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-02694YNoneexplicitvkCmdDispatchAny 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-02695YNoneexplicitvkCmdDispatchAny 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-02696YNoneexplicitvkCmdDispatchAny 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-07753YNegativeShaderImageAccess.AliasImageBindingexplicitvkCmdDispatchIf 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.ComputeShaderGroupCountexplicitvkCmdDispatchgroupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdDispatch-groupCountY-00387YNegativeShaderCompute.CmdDispatchExceedLimits, NegativeShaderObject.ComputeShaderGroupCountexplicitvkCmdDispatchgroupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdDispatch-groupCountZ-00388YNegativeShaderCompute.CmdDispatchExceedLimits, NegativeShaderObject.ComputeShaderGroupCountexplicitvkCmdDispatchgroupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdDispatch-magFilter-04553YNoneexplicitvkCmdDispatchIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDispatchIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatch-maintenance4-08602YNegativeShaderObject.ComputeShaderMissingPushConstexplicitvkCmdDispatchIf 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-04770YNoneexplicitvkCmdDispatchIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDispatchIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatch-reductionMode-09213NNoneexplicitvkCmdDispatchAny 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-renderpassYNoneimplicitvkCmdDispatchThis command must only be called outside of a render pass instance
VUID-vkCmdDispatch-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchIf 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.ImageInt64DrawtimeSparseexplicitvkCmdDispatchIf 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-04475NNoneexplicitvkCmdDispatchIf 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-06936YNegativeGpuAVDescriptorIndexing.PartialBoundDescriptorSSBO, NegativeGpuAVOOB.Matrix, NegativeGpuAVOOB.PartialBoundDescriptorCopy, NegativeGpuAVOOB.StorageBuffer, NegativeGpuAVOOB.VectorexplicitvkCmdDispatchIf 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-06935YNoneexplicitvkCmdDispatchIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDispatchIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDispatch-unnormalizedCoordinates-09636NNoneexplicitvkCmdDispatchIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDispatch-videocodingYNoneimplicitvkCmdDispatchThis command must only be called outside of a video coding scope
VUID-vkCmdDispatch-viewType-07752YNoneexplicitvkCmdDispatchIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDispatchBase-ConstOffset-06551YNoneexplicitvkCmdDispatchBaseIf 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-02691YNoneexplicitvkCmdDispatchBaseIf 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-02692YNoneexplicitvkCmdDispatchBaseIf 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-02693YNoneexplicitvkCmdDispatchBaseIf 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-06479YNoneexplicitvkCmdDispatchBaseIf 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-06550YNoneexplicitvkCmdDispatchBaseIf 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-07288NNoneexplicitvkCmdDispatchBaseAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchBase-None-07888YNoneexplicitvkCmdDispatchBaseIf 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-08114YNoneexplicitvkCmdDispatchBaseDescriptors 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-08115YNoneexplicitvkCmdDispatchBaseIf 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-08116NNoneexplicitvkCmdDispatchBaseDescriptors 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-08117YNoneexplicitvkCmdDispatchBaseIf 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-08119NNoneexplicitvkCmdDispatchBaseIf 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-08600YNoneexplicitvkCmdDispatchBaseFor 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-08601NNoneexplicitvkCmdDispatchBaseFor 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-08604NNoneexplicitvkCmdDispatchBaseDescriptors 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-08605NNoneexplicitvkCmdDispatchBaseIf 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-08606YNoneexplicitvkCmdDispatchBaseIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchBase-None-08607YNoneexplicitvkCmdDispatchBaseIf 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-08608YNoneexplicitvkCmdDispatchBaseIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchBase-None-08609YNoneexplicitvkCmdDispatchBaseIf 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-08610YNoneexplicitvkCmdDispatchBaseIf 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-08611YNoneexplicitvkCmdDispatchBaseIf 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-08612YNoneexplicitvkCmdDispatchBaseIf 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-08613YNoneexplicitvkCmdDispatchBaseIf 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-None-09600NNoneexplicitvkCmdDispatchBaseIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDispatchBase-None-10068NNoneexplicitvkCmdDispatchBaseFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDispatchBase-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchBaseIf 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-06976NNoneexplicitvkCmdDispatchBaseIf 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-06974NNoneexplicitvkCmdDispatchBaseIf 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-09215NNoneexplicitvkCmdDispatchBaseIf 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-09216NNoneexplicitvkCmdDispatchBaseIf 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-09217NNoneexplicitvkCmdDispatchBaseIf 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-06973NNoneexplicitvkCmdDispatchBaseIf 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-06971NNoneexplicitvkCmdDispatchBaseIf 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-06972NNoneexplicitvkCmdDispatchBaseIf 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-06977NNoneexplicitvkCmdDispatchBaseIf 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-06978NNoneexplicitvkCmdDispatchBaseIf 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-04469YNoneexplicitvkCmdDispatchBaseIf 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-08795YNoneexplicitvkCmdDispatchBaseIf 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-08796YNoneexplicitvkCmdDispatchBaseIf 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-07027YNoneexplicitvkCmdDispatchBaseFor 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-07028YNoneexplicitvkCmdDispatchBaseFor 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-07029YNoneexplicitvkCmdDispatchBaseFor 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-07030YNoneexplicitvkCmdDispatchBaseAny 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-04470YNoneexplicitvkCmdDispatchBaseIf 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-04471YNoneexplicitvkCmdDispatchBaseIf 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-04472YNoneexplicitvkCmdDispatchBaseIf 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-04473YNoneexplicitvkCmdDispatchBaseIf 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.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasebaseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdDispatchBase-baseGroupX-00422YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasebaseGroupY must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdDispatchBase-baseGroupX-00427YNegativeShaderCompute.DispatchBaseFlag, NegativeShaderObject.DispatchBaseFlagexplicitvkCmdDispatchBaseIf 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 or the bound compute shader object must have been created with the VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT flag
VUID-vkCmdDispatchBase-baseGroupZ-00423YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasebaseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdDispatchBase-commandBuffer-02707YNoneexplicitvkCmdDispatchBaseIf 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-02712YNoneexplicitvkCmdDispatchBaseIf 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-02713NNoneexplicitvkCmdDispatchBaseIf 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-04617YNoneexplicitvkCmdDispatchBaseIf 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-cmdpoolYNoneimplicitvkCmdDispatchBaseThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatchBase-commandBuffer-parameterYNoneimplicitvkCmdDispatchBasecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchBase-commandBuffer-recordingYNoneimplicitvkCmdDispatchBasecommandBuffer must be in the recording state
VUID-vkCmdDispatchBase-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchBaseIf 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-02694YNoneexplicitvkCmdDispatchBaseAny 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-02695YNoneexplicitvkCmdDispatchBaseAny 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-02696YNoneexplicitvkCmdDispatchBaseAny 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-07753YNoneexplicitvkCmdDispatchBaseIf 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.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasegroupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] minus baseGroupX
VUID-vkCmdDispatchBase-groupCountY-00425YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasegroupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY
VUID-vkCmdDispatchBase-groupCountZ-00426YNegativeShaderCompute.CmdDispatchExceedLimitsexplicitvkCmdDispatchBasegroupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ
VUID-vkCmdDispatchBase-magFilter-04553YNoneexplicitvkCmdDispatchBaseIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598NNoneexplicitvkCmdDispatchBaseIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchBase-maintenance4-08602YNoneexplicitvkCmdDispatchBaseIf 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-04770YNoneexplicitvkCmdDispatchBaseIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDispatchBaseIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchBase-reductionMode-09213NNoneexplicitvkCmdDispatchBaseAny 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-renderpassYNoneimplicitvkCmdDispatchBaseThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchBase-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchBaseIf 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-04474YNoneexplicitvkCmdDispatchBaseIf 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-04475NNoneexplicitvkCmdDispatchBaseIf 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-06936YNoneexplicitvkCmdDispatchBaseIf 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-06935YNoneexplicitvkCmdDispatchBaseIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDispatchBaseIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDispatchBase-unnormalizedCoordinates-09636NNoneexplicitvkCmdDispatchBaseIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDispatchBase-videocodingYNoneimplicitvkCmdDispatchBaseThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchBase-viewType-07752YNoneexplicitvkCmdDispatchBaseIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDispatchGraphAMDX-ConstOffset-06551NNoneexplicitvkCmdDispatchGraphAMDXIf 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-09188NNoneexplicitvkCmdDispatchGraphAMDXExecution 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-02691NNoneexplicitvkCmdDispatchGraphAMDXIf 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-02692NNoneexplicitvkCmdDispatchGraphAMDXIf 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-02693NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06479NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06550NNoneexplicitvkCmdDispatchGraphAMDXIf 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-07288NNoneexplicitvkCmdDispatchGraphAMDXAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchGraphAMDX-None-07888NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08114NNoneexplicitvkCmdDispatchGraphAMDXDescriptors 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-08115NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08116NNoneexplicitvkCmdDispatchGraphAMDXDescriptors 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-08117NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08119NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08600NNoneexplicitvkCmdDispatchGraphAMDXFor 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-08601NNoneexplicitvkCmdDispatchGraphAMDXFor 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-08604NNoneexplicitvkCmdDispatchGraphAMDXDescriptors 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-08605NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08606NNoneexplicitvkCmdDispatchGraphAMDXIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphAMDX-None-08607NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08608NNoneexplicitvkCmdDispatchGraphAMDXIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchGraphAMDX-None-08609NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08610NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08611NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08612NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08613NNoneexplicitvkCmdDispatchGraphAMDXIf 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-None-09600NNoneexplicitvkCmdDispatchGraphAMDXIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDispatchGraphAMDX-None-10068NNoneexplicitvkCmdDispatchGraphAMDXFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06976NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06974NNoneexplicitvkCmdDispatchGraphAMDXIf 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-09215NNoneexplicitvkCmdDispatchGraphAMDXIf 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-09216NNoneexplicitvkCmdDispatchGraphAMDXIf 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-09217NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06973NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06971NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06972NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06977NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06978NNoneexplicitvkCmdDispatchGraphAMDXIf 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-04469NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08795NNoneexplicitvkCmdDispatchGraphAMDXIf 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-08796NNoneexplicitvkCmdDispatchGraphAMDXIf 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-07027NNoneexplicitvkCmdDispatchGraphAMDXFor 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-07028NNoneexplicitvkCmdDispatchGraphAMDXFor 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-07029NNoneexplicitvkCmdDispatchGraphAMDXFor 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-07030NNoneexplicitvkCmdDispatchGraphAMDXAny 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-04470NNoneexplicitvkCmdDispatchGraphAMDXIf 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-04471NNoneexplicitvkCmdDispatchGraphAMDXIf 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-04472NNoneexplicitvkCmdDispatchGraphAMDXIf 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-04473NNoneexplicitvkCmdDispatchGraphAMDXIf 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-bufferlevelYNoneimplicitvkCmdDispatchGraphAMDXcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDispatchGraphAMDX-commandBuffer-02707NNoneexplicitvkCmdDispatchGraphAMDXIf 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-09181NNoneexplicitvkCmdDispatchGraphAMDXcommandBuffer must not be a protected command buffer
VUID-vkCmdDispatchGraphAMDX-commandBuffer-09182NNoneexplicitvkCmdDispatchGraphAMDXcommandBuffer must be a primary command buffer
VUID-vkCmdDispatchGraphAMDX-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchGraphAMDXThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameterYNoneimplicitvkCmdDispatchGraphAMDXcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchGraphAMDX-commandBuffer-recordingYNoneimplicitvkCmdDispatchGraphAMDXcommandBuffer must be in the recording state
VUID-vkCmdDispatchGraphAMDX-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchGraphAMDXIf 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-02694NNoneexplicitvkCmdDispatchGraphAMDXAny 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-02695NNoneexplicitvkCmdDispatchGraphAMDXAny 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-02696NNoneexplicitvkCmdDispatchGraphAMDXAny 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-07753NNoneexplicitvkCmdDispatchGraphAMDXIf 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-09146NNoneexplicitvkCmdDispatchGraphAMDXHost 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-04553NNoneexplicitvkCmdDispatchGraphAMDXIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598NNoneexplicitvkCmdDispatchGraphAMDXIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchGraphAMDX-maintenance4-08602NNoneexplicitvkCmdDispatchGraphAMDXIf 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-09186NNoneexplicitvkCmdDispatchGraphAMDXExecution 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-09187NNoneexplicitvkCmdDispatchGraphAMDXExecution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads
VUID-vkCmdDispatchGraphAMDX-mipmapMode-04770NNoneexplicitvkCmdDispatchGraphAMDXIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599NNoneexplicitvkCmdDispatchGraphAMDXIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchGraphAMDX-pCountInfo-09145NNoneexplicitvkCmdDispatchGraphAMDXpCountInfo->infos must be a host pointer to a memory allocation at least as large as the product of count and stride
VUID-vkCmdDispatchGraphAMDX-pCountInfo-09147NNoneexplicitvkCmdDispatchGraphAMDXFor 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-09148NNoneexplicitvkCmdDispatchGraphAMDXFor 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-09149NNoneexplicitvkCmdDispatchGraphAMDXFor 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-parameterYNoneimplicitvkCmdDispatchGraphAMDXpCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure
VUID-vkCmdDispatchGraphAMDX-reductionMode-09213NNoneexplicitvkCmdDispatchGraphAMDXAny 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-renderpassYNoneimplicitvkCmdDispatchGraphAMDXThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchGraphAMDX-scratch-09183NNoneexplicitvkCmdDispatchGraphAMDXscratch 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-09184NNoneexplicitvkCmdDispatchGraphAMDXscratch 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-09185NNoneexplicitvkCmdDispatchGraphAMDXDevice 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-09214NNoneexplicitvkCmdDispatchGraphAMDXIf 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-04474NNoneexplicitvkCmdDispatchGraphAMDXIf 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-04475NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06936NNoneexplicitvkCmdDispatchGraphAMDXIf 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-06935NNoneexplicitvkCmdDispatchGraphAMDXIf 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-unnormalizedCoordinates-09635NNoneexplicitvkCmdDispatchGraphAMDXIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDispatchGraphAMDX-unnormalizedCoordinates-09636NNoneexplicitvkCmdDispatchGraphAMDXIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDispatchGraphAMDX-videocodingYNoneimplicitvkCmdDispatchGraphAMDXThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchGraphAMDX-viewType-07752NNoneexplicitvkCmdDispatchGraphAMDXIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDispatchGraphIndirectAMDX-ConstOffset-06551NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-09188NNoneexplicitvkCmdDispatchGraphIndirectAMDXExecution 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-02691NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-02692NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-02693NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06479NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06550NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-07288NNoneexplicitvkCmdDispatchGraphIndirectAMDXAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchGraphIndirectAMDX-None-07888NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08114NNoneexplicitvkCmdDispatchGraphIndirectAMDXDescriptors 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-08115NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08116NNoneexplicitvkCmdDispatchGraphIndirectAMDXDescriptors 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-08117NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08119NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08600NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-08601NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-08604NNoneexplicitvkCmdDispatchGraphIndirectAMDXDescriptors 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-08605NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08606NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphIndirectAMDX-None-08607NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08608NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchGraphIndirectAMDX-None-08609NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08610NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08611NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08612NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08613NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-None-09600NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDispatchGraphIndirectAMDX-None-10068NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06976NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06974NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-09215NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-09216NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-09217NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06973NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06971NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06972NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06977NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06978NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-04469NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08795NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-08796NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-07027NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-07028NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-07029NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-07030NNoneexplicitvkCmdDispatchGraphIndirectAMDXAny 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-04470NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-04471NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-04472NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-04473NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-bufferlevelYNoneimplicitvkCmdDispatchGraphIndirectAMDXcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-02707NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-09181NNoneexplicitvkCmdDispatchGraphIndirectAMDXcommandBuffer must not be a protected command buffer
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09182NNoneexplicitvkCmdDispatchGraphIndirectAMDXcommandBuffer must be a primary command buffer
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchGraphIndirectAMDXThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameterYNoneimplicitvkCmdDispatchGraphIndirectAMDXcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-recordingYNoneimplicitvkCmdDispatchGraphIndirectAMDXcommandBuffer must be in the recording state
VUID-vkCmdDispatchGraphIndirectAMDX-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-02694NNoneexplicitvkCmdDispatchGraphIndirectAMDXAny 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-02695NNoneexplicitvkCmdDispatchGraphIndirectAMDXAny 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-02696NNoneexplicitvkCmdDispatchGraphIndirectAMDXAny 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-07753NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-09153NNoneexplicitvkCmdDispatchGraphIndirectAMDXDevice 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-04553NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-09186NNoneexplicitvkCmdDispatchGraphIndirectAMDXExecution 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-09187NNoneexplicitvkCmdDispatchGraphIndirectAMDXExecution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads
VUID-vkCmdDispatchGraphIndirectAMDX-mipmapMode-04770NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09150NNoneexplicitvkCmdDispatchGraphIndirectAMDXpCountInfo->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-09151NNoneexplicitvkCmdDispatchGraphIndirectAMDXpCountInfo->infos must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09152NNoneexplicitvkCmdDispatchGraphIndirectAMDXpCountInfo->infos must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09154NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-09155NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-09156NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor each VkDispatchGraphInfoAMDX structure in pCountInfo->infos, payloads must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09157NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-09158NNoneexplicitvkCmdDispatchGraphIndirectAMDXFor 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-parameterYNoneimplicitvkCmdDispatchGraphIndirectAMDXpCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure
VUID-vkCmdDispatchGraphIndirectAMDX-reductionMode-09213NNoneexplicitvkCmdDispatchGraphIndirectAMDXAny 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-renderpassYNoneimplicitvkCmdDispatchGraphIndirectAMDXThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09183NNoneexplicitvkCmdDispatchGraphIndirectAMDXscratch 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-09184NNoneexplicitvkCmdDispatchGraphIndirectAMDXscratch 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-09185NNoneexplicitvkCmdDispatchGraphIndirectAMDXDevice 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-09214NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-04474NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-04475NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06936NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-06935NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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-unnormalizedCoordinates-09635NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDispatchGraphIndirectAMDX-unnormalizedCoordinates-09636NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDispatchGraphIndirectAMDX-videocodingYNoneimplicitvkCmdDispatchGraphIndirectAMDXThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchGraphIndirectAMDX-viewType-07752NNoneexplicitvkCmdDispatchGraphIndirectAMDXIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDispatchGraphIndirectCountAMDX-ConstOffset-06551NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-09188NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXExecution 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-02691NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-02692NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-02693NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06479NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06550NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-07288NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07888NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08114NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXDescriptors 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-08115NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08116NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXDescriptors 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-08117NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08119NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08600NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-08601NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-08604NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXDescriptors 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-08605NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08606NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08608NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08609NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08610NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08611NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08612NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08613NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-None-09600NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDispatchGraphIndirectCountAMDX-None-10068NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06976NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06974NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-09215NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-09216NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-09217NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06973NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06971NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06972NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06977NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06978NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-04469NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08795NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-08796NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-07027NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-07028NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-07029NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-07030NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXAny 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-04470NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-04471NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-04472NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-04473NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-bufferlevelYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-02707NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-09181NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcommandBuffer must not be a protected command buffer
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09182NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcommandBuffer must be a primary command buffer
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameterYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-recordingYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXcommandBuffer must be in the recording state
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09159NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcountInfo 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-09160NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcountInfo must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09161NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcountInfo must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09162NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcountInfo->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-09163NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcountInfo->infos must be a device address within a VkBuffer created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09164NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXcountInfo->infos must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09166NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-09167NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-09168NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor each VkDispatchGraphInfoAMDX structure in countInfo->infos, payloads must be a multiple of executionGraphDispatchAddressAlignment
VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09169NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-09170NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXFor 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-09212NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-02694NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXAny 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-02695NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXAny 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-02696NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXAny 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-07753NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-09165NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXDevice 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-04553NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-maintenance4-08602NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-09186NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXExecution 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-09187NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXExecution of this command must not cause any shader to initialize more than maxExecutionGraphShaderPayloadCount output payloads
VUID-vkCmdDispatchGraphIndirectCountAMDX-mipmapMode-04770NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchGraphIndirectCountAMDX-reductionMode-09213NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXAny 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-renderpassYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09183NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXscratch 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-09184NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXscratch 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-09185NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXDevice 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-09214NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-04474NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-04475NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06936NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-06935NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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-unnormalizedCoordinates-09635NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDispatchGraphIndirectCountAMDX-unnormalizedCoordinates-09636NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDispatchGraphIndirectCountAMDX-videocodingYNoneimplicitvkCmdDispatchGraphIndirectCountAMDXThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchGraphIndirectCountAMDX-viewType-07752NNoneexplicitvkCmdDispatchGraphIndirectCountAMDXIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDispatchIndirect-ConstOffset-06551YNoneexplicitvkCmdDispatchIndirectIf 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-02691YNoneexplicitvkCmdDispatchIndirectIf 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-02692YNoneexplicitvkCmdDispatchIndirectIf 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-02693YNoneexplicitvkCmdDispatchIndirectIf 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-06479YNoneexplicitvkCmdDispatchIndirectIf 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-06550YNoneexplicitvkCmdDispatchIndirectIf 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-07288NNoneexplicitvkCmdDispatchIndirectAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchIndirect-None-07888YNoneexplicitvkCmdDispatchIndirectIf 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-08114YNoneexplicitvkCmdDispatchIndirectDescriptors 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-08115YNoneexplicitvkCmdDispatchIndirectIf 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-08116NNoneexplicitvkCmdDispatchIndirectDescriptors 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-08117YNoneexplicitvkCmdDispatchIndirectIf 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-08119NNoneexplicitvkCmdDispatchIndirectIf 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-08600YNoneexplicitvkCmdDispatchIndirectFor 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-08601NNoneexplicitvkCmdDispatchIndirectFor 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-08604NNoneexplicitvkCmdDispatchIndirectDescriptors 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-08605NNoneexplicitvkCmdDispatchIndirectIf 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.BadPipelineObjectexplicitvkCmdDispatchIndirectIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchIndirect-None-08607YNoneexplicitvkCmdDispatchIndirectIf 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-08608YNoneexplicitvkCmdDispatchIndirectIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchIndirect-None-08609YNoneexplicitvkCmdDispatchIndirectIf 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-08610YNoneexplicitvkCmdDispatchIndirectIf 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-08611YNoneexplicitvkCmdDispatchIndirectIf 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-08612YNoneexplicitvkCmdDispatchIndirectIf 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-08613YNoneexplicitvkCmdDispatchIndirectIf 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-None-09600NNoneexplicitvkCmdDispatchIndirectIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDispatchIndirect-None-10068NNoneexplicitvkCmdDispatchIndirectFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchIndirectIf 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-06976NNoneexplicitvkCmdDispatchIndirectIf 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-06974NNoneexplicitvkCmdDispatchIndirectIf 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-09215NNoneexplicitvkCmdDispatchIndirectIf 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-09216NNoneexplicitvkCmdDispatchIndirectIf 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-09217NNoneexplicitvkCmdDispatchIndirectIf 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-06973NNoneexplicitvkCmdDispatchIndirectIf 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-06971NNoneexplicitvkCmdDispatchIndirectIf 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-06972NNoneexplicitvkCmdDispatchIndirectIf 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-06977NNoneexplicitvkCmdDispatchIndirectIf 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-06978NNoneexplicitvkCmdDispatchIndirectIf 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-04469YNoneexplicitvkCmdDispatchIndirectIf 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-08795YNoneexplicitvkCmdDispatchIndirectIf 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-08796YNoneexplicitvkCmdDispatchIndirectIf 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-07027YNoneexplicitvkCmdDispatchIndirectFor 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-07028YNoneexplicitvkCmdDispatchIndirectFor 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-07029YNoneexplicitvkCmdDispatchIndirectFor 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-07030YNoneexplicitvkCmdDispatchIndirectAny 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-04470YNoneexplicitvkCmdDispatchIndirectIf 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-04471YNoneexplicitvkCmdDispatchIndirectIf 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-04472YNoneexplicitvkCmdDispatchIndirectIf 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-04473YNoneexplicitvkCmdDispatchIndirectIf 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-02708YNoneexplicitvkCmdDispatchIndirectIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDispatchIndirect-buffer-02709YNoneexplicitvkCmdDispatchIndirectbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDispatchIndirect-buffer-parameterYNoneimplicitvkCmdDispatchIndirectbuffer must be a valid VkBuffer handle
VUID-vkCmdDispatchIndirect-commandBuffer-02707YNoneexplicitvkCmdDispatchIndirectIf 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-02711YNoneexplicitvkCmdDispatchIndirectcommandBuffer must not be a protected command buffer
VUID-vkCmdDispatchIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchIndirectThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatchIndirect-commandBuffer-parameterYNoneimplicitvkCmdDispatchIndirectcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchIndirect-commandBuffer-recordingYNoneimplicitvkCmdDispatchIndirectcommandBuffer must be in the recording state
VUID-vkCmdDispatchIndirect-commonparentYNoneimplicitvkCmdDispatchIndirectBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDispatchIndirect-cubicRangeClamp-09212NNoneexplicitvkCmdDispatchIndirectIf 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-02694YNoneexplicitvkCmdDispatchIndirectAny 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-02695YNoneexplicitvkCmdDispatchIndirectAny 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-02696YNoneexplicitvkCmdDispatchIndirectAny 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-07753YNoneexplicitvkCmdDispatchIndirectIf 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-04553YNoneexplicitvkCmdDispatchIndirectIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDispatchIndirectIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchIndirect-maintenance4-08602YNoneexplicitvkCmdDispatchIndirectIf 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-04770YNoneexplicitvkCmdDispatchIndirectIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDispatchIndirectIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDispatchIndirect-offset-00407YNegativePipeline.BadPipelineObjectexplicitvkCmdDispatchIndirectThe sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer
VUID-vkCmdDispatchIndirect-offset-02710YNoneexplicitvkCmdDispatchIndirectoffset must be a multiple of 4
VUID-vkCmdDispatchIndirect-reductionMode-09213NNoneexplicitvkCmdDispatchIndirectAny 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-renderpassYNoneimplicitvkCmdDispatchIndirectThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214NNoneexplicitvkCmdDispatchIndirectIf 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-04474YNoneexplicitvkCmdDispatchIndirectIf 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-04475NNoneexplicitvkCmdDispatchIndirectIf 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-06936YNoneexplicitvkCmdDispatchIndirectIf 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-06935YNoneexplicitvkCmdDispatchIndirectIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDispatchIndirectIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDispatchIndirect-unnormalizedCoordinates-09636NNoneexplicitvkCmdDispatchIndirectIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDispatchIndirect-videocodingYNoneimplicitvkCmdDispatchIndirectThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchIndirect-viewType-07752YNoneexplicitvkCmdDispatchIndirectIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDraw-ConstOffset-06551YNegativeYcbcr.DrawConstOffsetexplicitvkCmdDrawIf 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.VertexInputLocationMissingexplicitvkCmdDrawIf 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-08734YNegativeShaderObject.MismatchedAttributeType, NegativeVertexInput.AttributeTypeMismatchDynamic, NegativeVertexInput.ResetCmdSetVertexInputexplicitvkCmdDrawIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDraw-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDraw-None-02691YNegativeAtomic.InvalidStorageOperationexplicitvkCmdDrawIf 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.ImageViewFormatUnsupportedFilterexplicitvkCmdDrawIf 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.ImageFilterCubicSamplerInCmdDrawexplicitvkCmdDrawIf 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.BindVertexBufferNullDraw, NegativeVertexInput.BindVertexOffset, NegativeVertexInput.VertexStride, NegativeVertexInput.VertexStrideDoubleDynamicStride, NegativeVertexInput.VertexStrideDynamicInput, NegativeVertexInput.VertexStrideDynamicStride, NegativeVertexInput.VertexStrideDynamicStrideArray, NegativeVertexInput.VertextBinding, NegativeVertexInput.VertextBindingDynamicState, NegativeVertexInput.VertextBindingNonLinearexplicitvkCmdDrawIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDraw-None-04007YNoneexplicitvkCmdDrawAll 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-04008YNegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpass, NegativeVertexInput.VertextBinding, NegativeVertexInput.VertextBindingDynamicState, NegativeVertexInput.VertextBindingNonLinearexplicitvkCmdDrawIf 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.MissingCmdSetPatchControlPointsEXTexplicitvkCmdDrawIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04876YNegativeDynamicState.ExtendedDynamicState2Enabled, NegativeShaderObject.MissingCmdSetRasterizerDiscardEnableexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04877YNegativeDynamicState.ExtendedDynamicState2Enabled, NegativeShaderObject.MissingCmdSetDepthBiasEnableexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04879YNegativeDynamicState.ExtendedDynamicState2Enabled, NegativeDynamicState.ExtendedDynamicState2InvalidateStaticPipeline, NegativeShaderObject.MissingCmdSetPrimitiveRestartEnableEXTexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04914YNegativeDynamicState.MissingCmdSetVertexInput, NegativeShaderObject.MissingCmdSetVertexInputexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDraw-None-06479YNegativeDescriptors.SampledImageDepthComparisonForFormatexplicitvkCmdDrawIf 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.ImageSubresourceOverlapBetweenRenderPassAndDescriptorSets, NegativeDescriptors.ImageSubresourceOverlapBetweenRenderPassAndDescriptorSetsFunctionexplicitvkCmdDrawMemory 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.DescriptorWriteFromReadAttachmentexplicitvkCmdDrawIf 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.DrawFetchexplicitvkCmdDrawIf 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.StateNotSetWithCommandBufferReset, NegativeShaderObject.MissingCmdSetSampleLocationsEXTexplicitvkCmdDrawIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-06886YNegativeCommand.DepthStencilStateForReadOnlyLayoutexplicitvkCmdDrawIf 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.DepthStencilStateForReadOnlyLayoutexplicitvkCmdDrawIf 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-07288NNoneexplicitvkCmdDrawAny shader invocation executed by this command must terminate
VUID-vkCmdDraw-None-07469NNoneexplicitvkCmdDrawInput 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.DrawNotSetTessellationDomainOrigin, NegativeShaderObject.MissingCmdSetTessellationDomainOriginEXTexplicitvkCmdDrawIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07620YNegativeDynamicState.DrawNotSetDepthClampEnable, NegativeShaderObject.MissingCmdSetDepthClampEnableEXTexplicitvkCmdDrawIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07621YNegativeDynamicState.DrawNotSetPolygonMode, NegativeShaderObject.MissingCmdSetPolygonModeEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07622YNegativeShaderObject.MissingCmdSetRasterizationSamplesEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07623YNegativeShaderObject.MissingCmdSetSampleMaskEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07624YNegativeShaderObject.MissingCmdSetAlphaToCoverageEnableEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07625YNegativeDynamicState.DrawNotSetAlphaToOneEnable, NegativeShaderObject.MissingCmdSetAlphaToOneEnableEXTexplicitvkCmdDrawIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07626YNegativeDynamicState.DrawNotSetLogicOpEnable, NegativeShaderObject.MissingCmdSetLogicOpEnableEXTexplicitvkCmdDrawIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07627YNegativeDynamicState.ColorBlendEnableNotSetexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07628YNegativeDynamicState.ColorBlendEquationNotSet, NegativeDynamicState.DrawNotSetColorBlendEquationexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07629YNegativeDynamicState.ColorWriteMaskNotSetexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07630YNegativeDynamicState.DrawNotSetRasterizationStream, NegativeShaderObject.MissingCmdSetRasterizationStreamEXTexplicitvkCmdDrawIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07631YNegativeShaderObject.MissingCmdSetConservativeRasterizationModeEXTexplicitvkCmdDrawIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07632YNegativeDynamicState.DrawNotSetExtraPrimitiveOverestimationSize, NegativeShaderObject.MissingCmdSetExtraPrimitiveOverestimationSizeEXTexplicitvkCmdDrawIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07633YNegativeShaderObject.MissingCmdSetDepthClipEnableEXTexplicitvkCmdDrawIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07634YNoneexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07635YNegativeDynamicState.ColorBlendAdvancedNotSetexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07636YNegativeDynamicState.DrawNotSetProvokingVertexMode, NegativeShaderObject.MissingCmdSetProvokingVertexModeEXTexplicitvkCmdDrawIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07637YNegativeDynamicState.DrawNotSetLineRasterizationModeexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07638YNegativeDynamicState.DrawNotSetLineStippleEnable, NegativeDynamicState.InvalidateStaticPipelineexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07639YNegativeShaderObject.MissingCmdSetDepthClipNegativeOneToOneEXTexplicitvkCmdDrawIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07640YNegativeShaderObject.MissingCmdSetViewportWScalingEnableNVexplicitvkCmdDrawIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07641YNegativeShaderObject.MissingCmdSetViewportSwizzleNVexplicitvkCmdDrawIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07642YNegativeShaderObject.MissingCmdSetCoverageToColorEnableNVexplicitvkCmdDrawIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07643YNegativeShaderObject.MissingCmdSetCoverageToColorLocationNVexplicitvkCmdDrawIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07644YNegativeShaderObject.MissingCmdSetCoverageModulationModeNVexplicitvkCmdDrawIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07645YNegativeShaderObject.MissingCmdSetCoverageModulationTableEnableNVexplicitvkCmdDrawIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07646YNegativeShaderObject.MissingCmdSetCoverageModulationTableNVexplicitvkCmdDrawIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07647YNegativeDynamicState.ShadingRateImageEnableNotSet, NegativeShaderObject.MissingCmdSetShadingRateImageEnableNVexplicitvkCmdDrawIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07648YNegativeShaderObject.MissingCmdSetRepresentativeFragmentTestEnableNVexplicitvkCmdDrawIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07649YNegativeDynamicState.CoverageReductionModeNotSet, NegativeShaderObject.MissingCmdSetCoverageReductionModeNVexplicitvkCmdDrawIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07748NNoneexplicitvkCmdDrawIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDraw-None-07749YNegativeDynamicState.ColorWriteInvalidateStaticPipeline, NegativeDynamicState.ColorWriteNotSetexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07751YNegativeDynamicState.DiscardRectanglesInvalidateStaticPipeline, NegativeDynamicState.DiscardRectanglesNotSet, NegativeDynamicState.StateNotSetWithCommandBufferResetBitmaskexplicitvkCmdDrawIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated 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.BasicUsageexplicitvkCmdDrawIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07832YNegativeDynamicState.ScissorNotBound, NegativeDynamicState.ViewportAndScissorUndefinedDrawState, NegativeViewportInheritance.BasicUsageexplicitvkCmdDrawIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07833YNegativeDynamicState.LineWidthNotBound, NegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpassexplicitvkCmdDrawIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07834YNegativeDynamicState.DepthBiasNotBound, NegativeShaderObject.MissingCmdSetDepthBiasEXT, PositiveDynamicState.SetDepthBias2EXTDepthBiasClampDisabled, PositiveDynamicState.SetDepthBias2EXTDepthBiasClampEnabledexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07835YNegativeDynamicState.BlendConstantsNotBoundexplicitvkCmdDrawIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07836YNegativeDynamicState.DepthBoundsNotBound, NegativeDynamicState.DepthBoundsTestEnableState, NegativeShaderObject.MissingCmdSetDepthBoundsEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07837YNegativeDynamicState.StencilReadNotBound, NegativeShaderObject.MissingCmdSetStencilCompareMaskEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07838YNegativeDynamicState.StencilWriteNotBound, NegativeShaderObject.MissingCmdSetStencilWriteMaskEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07839YNegativeDynamicState.StencilRefNotBound, NegativeShaderObject.MissingCmdSetStencilReferenceEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07840YNegativeDynamicState.DrawNotSetCullMode, NegativeShaderObject.MissingCmdSetCullModeEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07841YNegativeDynamicState.DrawNotSetFrontFace, NegativeShaderObject.MissingCmdSetFrontFaceEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07842YNegativeDynamicState.DrawNotSetPrimitiveTopology, NegativeShaderObject.MissingCmdSetPrimitiveTopologyEXTexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07843YNegativeDynamicState.DrawNotSetDepthTestEnable, NegativeShaderObject.MissingCmdSetDepthTestEnableEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07844YNegativeDynamicState.DrawNotSetDepthWriteEnable, NegativeShaderObject.MissingCmdSetDepthWriteEnableEXTexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07845YNegativeDynamicState.DrawNotSetDepthCompareOp, NegativeShaderObject.MissingCmdSetDepthCompareOpexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07846YNegativeDynamicState.DrawNotSetDepthBoundsTestEnable, NegativeShaderObject.MissingCmdSetDepthBoundsTestEnableexplicitvkCmdDrawIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07847YNegativeDynamicState.DrawNotSetStencilTestEnable, NegativeShaderObject.MissingCmdSetStencilTestEnableexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07848YNegativeDynamicState.DrawNotSetStencilOp, NegativeShaderObject.MissingCmdSetStencilOpexplicitvkCmdDrawIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07849YNegativeDynamicState.InvalidateStaticPipeline, NegativeDynamicState.LineStippleNotBoundexplicitvkCmdDrawIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07850YNegativeViewportInheritance.BasicUsage, NegativeViewportInheritance.MultiViewportexplicitvkCmdDrawIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07878YNegativeDynamicState.DrawNotSetExclusiveScissor, NegativeShaderObject.MissingCmdSetExclusiveScissorEnableNVexplicitvkCmdDrawIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07879YNegativeDynamicState.DrawNotSetExclusiveScissor, NegativeShaderObject.InvalidExclusiveScissorCountexplicitvkCmdDrawIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07880YNoneexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07881YNoneexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07888YNegativeAtomic.InvalidStorageOperationexplicitvkCmdDrawIf 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.BindInvalidPipelineLayout, NegativeDescriptors.DescriptorSetSamplerDestroyed, NegativeDescriptors.DynamicOffsetWithNullBuffer, NegativeDescriptors.ImageDescriptorLayoutMismatch, NegativeGpuAVDescriptorIndexing.ArrayOOBGeom, NegativeGpuAVDescriptorIndexing.ArrayOOBRuntime, NegativeGpuAVDescriptorIndexing.ArrayOOBTess, NegativeGpuAVDescriptorIndexing.ArrayOOBVariableDescriptorCountAllocate, NegativeGpuAVDescriptorIndexing.UpdateAfterBind, NegativeObjectLifetime.CmdBufferBufferViewDestroyed, NegativePushDescriptor.ImageLayout, NegativeShaderObject.DescriptorNotUpdatedexplicitvkCmdDrawDescriptors 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-08115YNoneexplicitvkCmdDrawIf 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-08116NNoneexplicitvkCmdDrawDescriptors 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-08117YNoneexplicitvkCmdDrawIf 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-08119NNoneexplicitvkCmdDrawIf 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.IncompatibleDescriptorSetexplicitvkCmdDrawFor 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-08601NNoneexplicitvkCmdDrawFor 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-08604NNoneexplicitvkCmdDrawDescriptors 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-08605NNoneexplicitvkCmdDrawIf 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.BadPipelineObject, NegativePipeline.NoPipelineDynamicStateexplicitvkCmdDrawIf 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.MissingVertexShaderBindexplicitvkCmdDrawIf 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.DynamicPrimitiveTopolgyIngoreStateexplicitvkCmdDrawIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the 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.UnnormalizedCoordinatesSeparateSamplerSharedSamplerexplicitvkCmdDrawIf 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.UnnormalizedCoordinatesSeparateSamplerSharedSamplerexplicitvkCmdDrawIf 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.UnnormalizedCoordinatesInBoundsAccess, NegativeSampler.UnnormalizedCoordinatesSeparateSampler, NegativeShaderImageAccess.UnnormalizedCoordinatesFunctionexplicitvkCmdDrawIf 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.ObjectUniformBufferTooSmallexplicitvkCmdDrawIf 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-08613YPositiveGpuAVShaderObject.SelectInstrumentedShadersexplicitvkCmdDrawIf 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.MissingPolygonLineCmdSetLineWidthEXTexplicitvkCmdDrawIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08618YNegativeShaderObject.MissingPrimitiveTopologyLineCmdSetLineWidthEXTexplicitvkCmdDrawIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08619YNegativeShaderObject.MissingLineWidthSetexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08621YNegativeShaderObject.MissingCmdSetBlendConstantsEXTexplicitvkCmdDrawIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08635NNoneexplicitvkCmdDrawIf 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.InvalidViewportWScaling, NegativeShaderObject.MissingCmdSetViewportWScalingNVexplicitvkCmdDrawIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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.InvalidShadingRatePaletteViewportCountexplicitvkCmdDrawIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNegativeShaderObject.BlendEnabledWithNonBlendableFormatexplicitvkCmdDrawIf a shader object is bound to 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.RasterizationSamplesMismatchexplicitvkCmdDrawIf a shader object 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.MissingColorWriteEnableexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08647YNegativeShaderObject.ColorWriteEnableAttachmentCountexplicitvkCmdDrawIf 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.MissingCmdSetDiscardRectangleEnableEXTexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08649YNegativeShaderObject.MissingCmdSetDiscardRectangleModeEXTexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08657YNegativeShaderObject.MissingCmdSetColorBlendEnableEXTexplicitvkCmdDrawIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08658YNegativeShaderObject.MissingCmdSetColorBlendAdvancedEXT, NegativeShaderObject.MissingCmdSetColorBlendEquationEXT, NegativeShaderObject.MissingCmdSetColorBlendEquationEXTActiveAttachmentsexplicitvkCmdDrawIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08659YNegativeShaderObject.MissingCmdSetColorWriteMaskEXTexplicitvkCmdDrawIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08664YNegativeShaderObject.MissingCmdSetSampleLocationsEnableEXTexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08666YNegativeShaderObject.MissingPolygonModeCmdSetLineRasterizationModeEXTexplicitvkCmdDrawIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08667YNegativeShaderObject.MissingPrimitiveTopologyCmdSetLineRasterizationModeEXTexplicitvkCmdDrawIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08668YNegativeShaderObject.MissingLineRasterizationModeexplicitvkCmdDrawIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08669YNegativeShaderObject.MissingPolygonModeCmdSetLineStippleEnableEXTexplicitvkCmdDrawIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08670YNegativeShaderObject.MissingPrimitiveTopologyCmdSetLineStippleEnableEXTexplicitvkCmdDrawIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08671YNegativeShaderObject.MissingLineStippleEnableexplicitvkCmdDrawIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08672YNegativeShaderObject.MissingCmdSetLineStippleEXTexplicitvkCmdDrawIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08684YNegativeShaderObject.DrawWithNoShadersBound, NegativeShaderObject.MissingVertexShaderBindexplicitvkCmdDrawIf 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.MissingTessellationControlBindexplicitvkCmdDrawIf 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.MissingTessellationEvaluationBindexplicitvkCmdDrawIf 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.MissingGeometryBindexplicitvkCmdDrawIf 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.MissingFragmentShaderBindexplicitvkCmdDrawIf 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.MissingTaskShaderBindexplicitvkCmdDrawIf 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.MissingMeshShaderBindexplicitvkCmdDrawIf 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.VertAndTaskShadersBoundexplicitvkCmdDrawIf 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.MeshShaderWithMissingTaskShaderexplicitvkCmdDrawIf 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.TaskAndMeshShaderWithNoTaskFlagexplicitvkCmdDrawIf 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.VertAndTaskShadersBoundexplicitvkCmdDrawIf 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.MissingLinkedShaderBindexplicitvkCmdDrawIf 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.BindShaderBetweenLinkedShadersexplicitvkCmdDrawIf 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.DrawWithShadersInNonDynamicRenderPassexplicitvkCmdDrawIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDraw-None-08877YNegativeDynamicState.DrawNotSetAttachmentFeedbackLoopEnable, NegativeShaderObject.MissingCmdSetAttachmentFeedbackLoopEnableEXTexplicitvkCmdDrawIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08878YNegativeShaderObject.DifferentShaderPushConstantRangesexplicitvkCmdDrawAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDraw-None-08879YNegativeShaderObject.DifferentShaderDescriptorLayoutsexplicitvkCmdDrawAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDraw-None-08885YNegativeShaderObject.DrawWithGraphicsShadersWhenMeshShaderIsBound, NegativeShaderObject.MeshShaderWithMissingTaskShader, NegativeShaderObject.TaskAndMeshShaderWithNoTaskFlag, NegativeShaderObject.VertAndMeshShaderBothBound, NegativeShaderObject.VertAndTaskShadersBoundexplicitvkCmdDrawThere 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-09000NNoneexplicitvkCmdDrawIf 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-09001NNoneexplicitvkCmdDrawIf 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-09002NNoneexplicitvkCmdDrawIf 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-09003YNoneexplicitvkCmdDrawIf 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.InvalidColorWriteMaskexplicitvkCmdDrawIf 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.MismatchedFormat64ComponentsexplicitvkCmdDrawIf 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.DynamicRasterizationSamplesWithMSRTSSexplicitvkCmdDrawIf 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-09363YNegativeAndroidExternalResolve.DrawDynamicRasterizationSamplesexplicitvkCmdDrawIf 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-09364YNoneexplicitvkCmdDrawIf 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.DrawDynamicRasterizationSamplesexplicitvkCmdDrawIf 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-09366YNoneexplicitvkCmdDrawIf 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-09368YNoneexplicitvkCmdDrawIf 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-09369YNoneexplicitvkCmdDrawIf 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.UnsupportedDynamicStateDivisorexplicitvkCmdDrawIf 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-None-09548YNegativeDynamicRenderingLocalRead.CmdDrawColorLocationexplicitvkCmdDrawIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDraw-None-09549YNegativeDynamicRenderingLocalRead.CmdDrawColorIndexexplicitvkCmdDrawIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDraw-None-09600NNoneexplicitvkCmdDrawIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDraw-None-09637YNegativePipelineTopology.DynamicPrimitiveRestartEnableexplicitvkCmdDrawIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDraw-None-09642YNegativeDynamicRendering.RenderPassLegacyDitheringexplicitvkCmdDrawIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDraw-None-09643YNegativeDynamicRendering.PipelineLegacyDitheringexplicitvkCmdDrawIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDraw-None-09650YNegativeDynamicState.DepthClampControlexplicitvkCmdDrawIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-10068NNoneexplicitvkCmdDrawFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIf 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-06976NNoneexplicitvkCmdDrawIf 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-06974NNoneexplicitvkCmdDrawIf 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-09215NNoneexplicitvkCmdDrawIf 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-09216NNoneexplicitvkCmdDrawIf 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-09217NNoneexplicitvkCmdDrawIf 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-06973NNoneexplicitvkCmdDrawIf 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-06971NNoneexplicitvkCmdDrawIf 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-06972NNoneexplicitvkCmdDrawIf 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-06977NNoneexplicitvkCmdDrawIf 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-06978NNoneexplicitvkCmdDrawIf 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-04469YNoneexplicitvkCmdDrawIf 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-08795YNoneexplicitvkCmdDrawIf 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-08796YNoneexplicitvkCmdDrawIf 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-07027YNoneexplicitvkCmdDrawFor 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-07028YNoneexplicitvkCmdDrawFor 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-07029YNoneexplicitvkCmdDrawFor 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-07030YNoneexplicitvkCmdDrawAny 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-07468NNoneexplicitvkCmdDrawIf 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-04470YNoneexplicitvkCmdDrawIf 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-04471YNoneexplicitvkCmdDrawIf 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-04472YNoneexplicitvkCmdDrawIf 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-04473YNoneexplicitvkCmdDrawIf 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-04141NNoneexplicitvkCmdDrawIf 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-04142NNoneexplicitvkCmdDrawIf 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.AdvancedBlendMaxAttachmentsexplicitvkCmdDrawIf 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.AlphaToCoverageOutputNoAlphaexplicitvkCmdDrawIf 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.AlphaToCoverageexplicitvkCmdDrawIf 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.ColorWriteNotSetexplicitvkCmdDrawIf 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.DrawBlendEnabledFormatFeaturesexplicitvkCmdDrawIf 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.MismatchingAttachmentFormatsexplicitvkCmdDrawIf 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.MismatchingMixedAttachmentSamplesColorexplicitvkCmdDrawIf 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-09362YNoneexplicitvkCmdDrawIf 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-09372YNoneexplicitvkCmdDrawIf 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-02707YNegativeGpuAVDescriptorIndexing.MixingProtectedResourcesexplicitvkCmdDrawIf 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-02712YNegativeProtectedMemory.RayQuery, NegativeProtectedMemory.WriteToProtectedStorageBufferexplicitvkCmdDrawIf 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-02713NNoneexplicitvkCmdDrawIf 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-04617YNegativeProtectedMemory.RayQueryexplicitvkCmdDrawIf 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-cmdpoolYNoneimplicitvkCmdDrawThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDraw-commandBuffer-parameterYNoneimplicitvkCmdDrawcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDraw-commandBuffer-recordingYNegativeVertexInput.VertextBufferDestroyedimplicitvkCmdDrawcommandBuffer must be in the recording state
VUID-vkCmdDraw-conservativePointAndLineRasterization-07499YNegativeDynamicState.InvalidConservativeRasterizationModeexplicitvkCmdDrawIf 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-07488NNoneexplicitvkCmdDrawIf 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-07491NNoneexplicitvkCmdDrawIf 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-07490NNoneexplicitvkCmdDrawIf 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-09212NNoneexplicitvkCmdDrawIf 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.ExtendedDynamicStateSetViewportScissor, NegativeGeometryTessellation.DrawDynamicPrimitiveTopologyexplicitvkCmdDrawIf 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.MismatchingAttachmentFormatsexplicitvkCmdDrawIf 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 an 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.MismatchingAttachmentFormats3ColorexplicitvkCmdDrawIf 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 an 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.MismatchingAttachmentFormats2explicitvkCmdDrawIf 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 an 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.MismatchingAttachmentFormats2explicitvkCmdDrawIf 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.MismatchingAttachmentFormats, NegativeDynamicRendering.MismatchingDepthAttachmentFormatInSecondaryCmdBufferexplicitvkCmdDrawIf 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.MismatchingAttachmentFormats3DepthStencilexplicitvkCmdDrawIf 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.MismatchingAttachmentFormats2explicitvkCmdDrawIf 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.MismatchingAttachmentFormatsexplicitvkCmdDrawIf 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.MismatchingAttachmentFormats3DepthStencilexplicitvkCmdDrawIf 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-filterCubic-02694YNegativeCommand.FilterCubicSamplerInCmdDrawexplicitvkCmdDrawAny 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.FilterCubicSamplerInCmdDrawexplicitvkCmdDrawAny 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.ColorBlendAttchmentexplicitvkCmdDrawIf 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.ColorBlendEquationInvalidateStaticPipeline, NegativeDynamicState.ColorBlendEquationMultipleAttachmentsexplicitvkCmdDrawIf 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.DynamicColorBlendAttchmentexplicitvkCmdDrawIf 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.DrawNotSetColorBlendAdvancedexplicitvkCmdDrawIf 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.AddressModeWithCornerSampledNVexplicitvkCmdDrawAny 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.FunctionOpImageexplicitvkCmdDrawIf 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.Mismatched64BitAttributeTypeexplicitvkCmdDrawIf 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.Mismatched32BitAttributeTypeexplicitvkCmdDrawIf 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-06172NNoneexplicitvkCmdDrawIf 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-06173NNoneexplicitvkCmdDrawIf 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-06174NNoneexplicitvkCmdDrawIf 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-06175NNoneexplicitvkCmdDrawIf 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-06176NNoneexplicitvkCmdDrawIf 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-06177NNoneexplicitvkCmdDrawIf 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.PipelineMissingFlagsexplicitvkCmdDrawIf 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.PipelineMissingFlagsexplicitvkCmdDrawIf 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.ExtendedDynamicState2LogicOpEnabled, NegativeShaderObject.MissingCmdSetLogicOpexplicitvkCmdDrawIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-magFilter-04553YNegativePipeline.SampledInvalidImageViews, NegativeSampler.ImageViewFormatUnsupportedFilter, NegativeShaderImageAccess.MultipleFunctionCalls, NegativeShaderObject.MissingImageFilterLinearBitexplicitvkCmdDrawIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNegativeSampler.LinearReductionModeMinMaxexplicitvkCmdDrawIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDraw-maintenance4-08602YNegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpass, NegativeShaderPushConstants.DrawWithoutUpdateexplicitvkCmdDrawIf 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-09239YNegativeDynamicState.MaxFragmentDualSrcAttachmentsDynamicBlendEnable, NegativeShaderLimits.MaxFragmentDualSrcAttachments, NegativeShaderObject.MaxFragmentDualSrcAttachmentsDynamicBlendEnableexplicitvkCmdDrawIf 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.MaxMultiviewInstanceIndexexplicitvkCmdDrawIf 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.SampledInvalidImageViewsexplicitvkCmdDrawIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284YNegativeDynamicState.InvalidSampleMaskSamples, NegativeDynamicState.RasterizationSamples, NegativePipeline.NumSamplesMismatchexplicitvkCmdDrawIf 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.MismatchingAttachmentSamplesColor, NegativeDynamicState.RasterizationSamplesDynamicRenderingexplicitvkCmdDrawIf 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.MismatchingAttachmentSamplesDepthStencilexplicitvkCmdDrawIf 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.MismatchingAttachmentSamplesDepthStencilexplicitvkCmdDrawIf 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.MissingPipelineFormatexplicitvkCmdDrawIf 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.MissingColorAttachmentBlendBitexplicitvkCmdDrawIf 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.MismatchingMixedAttachmentSamplesDepthStencilexplicitvkCmdDrawIf 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.MissingPipelineFormatexplicitvkCmdDrawIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDraw-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDraw-pDynamicStates-08715YNegativeDynamicRendering.CommandDrawWithShaderTileImageReadexplicitvkCmdDrawIf 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.CommandDrawWithShaderTileImageReadexplicitvkCmdDrawIf 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-09370YNoneexplicitvkCmdDrawIf 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-09371YNoneexplicitvkCmdDrawIf 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.MismatchedRasterizationSamplesexplicitvkCmdDrawIf 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.UnsupportedDivisorexplicitvkCmdDrawIf 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.MismatchingMixedAttachmentSamplesDepthStencilexplicitvkCmdDrawIf 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.MissingPipelineFormatexplicitvkCmdDrawIf 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.MissingCmdBindVertexBuffers2explicitvkCmdDrawIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDraw-pipelineFragmentShadingRate-09238YNegativeShaderObject.MissingCmdSetFragmentShadingRateKHRexplicitvkCmdDrawIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552YNegativeFragmentShadingRate.PrimitiveFragmentShadingRateWriteMultiViewportLimitDynamicexplicitvkCmdDrawIf 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.InvalidViewportCountexplicitvkCmdDrawIf 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.PrimitivesGeneratedStreamsexplicitvkCmdDrawIf 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.PGQNonZeroRasterizationStreamsexplicitvkCmdDrawIf 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.PrimitivesGeneratedQueryexplicitvkCmdDrawIf 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.DynamicRasterizationSamplesexplicitvkCmdDrawIf 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.RasterizationSamples, NegativeDynamicState.RasterizationSamplesDynamicRenderingexplicitvkCmdDrawIf 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-07489NNoneexplicitvkCmdDrawIf 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-07494NNoneexplicitvkCmdDrawIf 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-09367YNoneexplicitvkCmdDrawIf 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.MissingCmdSetDiscardRectangleEXTexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-rasterizerDiscardEnable-09417YNegativeShaderObject.MissingCmdSetColorBlendEnableEXT, NegativeShaderObject.MissingCmdSetColorBlendEnableEXTForActiveAttachmentexplicitvkCmdDrawIf a shader object is bound to 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.MissingCmdSetColorBlendEquationEXTexplicitvkCmdDrawIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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.MissingCmdSetColorWriteMaskEXTActiveAttachmentsexplicitvkCmdDrawIf a shader object is bound to 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.CoverageToColorInvalidFormatexplicitvkCmdDrawIf 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-09213NNoneexplicitvkCmdDrawAny 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.IncompatibleRenderPassSubpassFlagsexplicitvkCmdDrawThe 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.PipelineexplicitvkCmdDrawIf 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.DrawWithShadersOutsideRenderPassimplicitvkCmdDrawThis command must only be called inside of a render pass instance
VUID-vkCmdDraw-sampleLocationsEnable-02689YNegativeDynamicState.SampleLocationsexplicitvkCmdDrawIf 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.DynamicSampleLocationsEnableexplicitvkCmdDrawIf 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.DynamicSampleLocationsGridSizeexplicitvkCmdDrawIf 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.DynamicSampleLocationsGridSizeexplicitvkCmdDrawIf 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.InterpolateAtSampleexplicitvkCmdDrawIf 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.SampleLocationsEnableexplicitvkCmdDrawIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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.SampleLocationsEnableexplicitvkCmdDrawIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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.SampleLocationsEnableexplicitvkCmdDrawIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDraw-sampleLocationsPerPixel-07482YNegativeDynamicState.SampleLocationsSamplesMismatchexplicitvkCmdDrawIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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.DynamicSampleLocationsRasterizationSamplesMismatchexplicitvkCmdDrawIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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.InvalidSampleMaskSamplesexplicitvkCmdDrawIf 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.InvalidSampleMaskSamplesexplicitvkCmdDrawIf 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.ExtendedDynamicStateViewportScissorDraw, NegativeDynamicState.MissingScissorWithCountexplicitvkCmdDrawIf 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-09214NNoneexplicitvkCmdDrawIf 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.MissingCmdSetCoarseSampleOrderNVexplicitvkCmdDrawIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-shadingRateImage-09234YNegativeShaderObject.MissingCmdSetViewportShadingRatePaletteNVexplicitvkCmdDrawIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIf 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-04475NNoneexplicitvkCmdDrawIf 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.DrawCmdsexplicitvkCmdDrawThe 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.InvalidMeshQueryAtDrawexplicitvkCmdDrawIf 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.RasterizationLineModeRectangularexplicitvkCmdDrawIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07496YNegativeDynamicState.RasterizationLineModeBresenhamexplicitvkCmdDrawIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07497YNegativeDynamicState.RasterizationLineModeSmoothexplicitvkCmdDrawIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07498YNegativeDynamicState.RasterizationLineModeDefaultexplicitvkCmdDrawIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDraw-storageBuffers-06936YNegativeGpuAV.SelectInstrumentedShaders, NegativeGpuAVOOB.Basic, NegativeGpuAVOOB.GPLNonInlined, NegativeGpuAVOOB.GPLReadWriteIndependentSets, NegativeGpuAVOOB.GPLWrite, NegativeGpuAVOOB.Geometry, NegativeGpuAVOOB.StorageBufferTooSmall, NegativeGpuAVOOB.VertexFragmentMultiEntrypointexplicitvkCmdDrawIf 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.RenderPassAsyncHazardexplicitvkCmdDrawThe 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-06935YNegativeGpuAVOOB.GPLRead, NegativeGpuAVOOB.GPLReadWriteIndependentSets, NegativeGpuAVOOB.UniformBufferTooSmall, NegativeGpuAVOOB.UniformBufferTooSmall2, NegativeGpuAVOOB.UniformBufferTooSmallArray, NegativeGpuAVOOB.UniformBufferTooSmallNestedStruct, NegativeGpuAVOOB.VertexFragmentMultiEntrypointexplicitvkCmdDrawIf 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-unnormalizedCoordinates-09635YNegativeSampler.UnnormalizedCoordinatesLevelCountexplicitvkCmdDrawIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDraw-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDraw-videocodingYNoneimplicitvkCmdDrawThis command must only be called outside of a video coding scope
VUID-vkCmdDraw-viewMask-06178YNegativeDynamicRendering.MismatchingViewMaskexplicitvkCmdDrawIf 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.UpdateAfterBindImageViewTypeMismatch, NegativeShaderImageAccess.SampledImageShareBindingexplicitvkCmdDrawIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDraw-viewportCount-03417YNegativeDynamicState.ExtendedDynamicStateViewportScissorDraw, NegativeDynamicState.MissingScissorWithCount, NegativeShaderObject.NotSettingViewportAndScissorexplicitvkCmdDrawIf 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, NegativeShaderObject.DifferentViewportAndScissorCount, NegativeShaderObject.NotSettingViewportAndScissorexplicitvkCmdDrawIf 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-04137NNoneexplicitvkCmdDrawIf 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-04138YNegativeShaderObject.MissingCmdSetViewportWScalingNVexplicitvkCmdDrawIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDraw-viewportCount-04139NNoneexplicitvkCmdDrawIf 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-07492NNoneexplicitvkCmdDrawIf 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-07493NNoneexplicitvkCmdDrawIf 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.InvalidViewportSwizzleCountexplicitvkCmdDrawIf 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-07823NNoneexplicitvkCmdDrawClusterHUAWEIThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI Execution Model
VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawClusterHUAWEIIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawClusterHUAWEI-None-02691NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-02692NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-02693NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04876NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-04877NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-06479NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06537NNoneexplicitvkCmdDrawClusterHUAWEIMemory 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-06539NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06550NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06666NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-06886NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06887NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07074NNoneexplicitvkCmdDrawClusterHUAWEITransform Feedback Queries must not be active
VUID-vkCmdDrawClusterHUAWEI-None-07075NNoneexplicitvkCmdDrawClusterHUAWEIPrimitives Generated Queries must not be active
VUID-vkCmdDrawClusterHUAWEI-None-07288NNoneexplicitvkCmdDrawClusterHUAWEIAny shader invocation executed by this command must terminate
VUID-vkCmdDrawClusterHUAWEI-None-07469NNoneexplicitvkCmdDrawClusterHUAWEIInput 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-07619NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07620NNoneexplicitvkCmdDrawClusterHUAWEIIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07621NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07622NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07623NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07624NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07625NNoneexplicitvkCmdDrawClusterHUAWEIIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07626NNoneexplicitvkCmdDrawClusterHUAWEIIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07627NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07628NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07629NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07630NNoneexplicitvkCmdDrawClusterHUAWEIIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07631NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07632NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07633NNoneexplicitvkCmdDrawClusterHUAWEIIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07634NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07635NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07636NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07637NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07638NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07639NNoneexplicitvkCmdDrawClusterHUAWEIIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07640NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07641NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07642NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07643NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07644NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07645NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07646NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07647NNoneexplicitvkCmdDrawClusterHUAWEIIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07648NNoneexplicitvkCmdDrawClusterHUAWEIIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07649NNoneexplicitvkCmdDrawClusterHUAWEIIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07748NNoneexplicitvkCmdDrawClusterHUAWEIIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawClusterHUAWEI-None-07749NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07751NNoneexplicitvkCmdDrawClusterHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawClusterHUAWEI-None-07819NNoneexplicitvkCmdDrawClusterHUAWEIThe 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-07831NNoneexplicitvkCmdDrawClusterHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07832NNoneexplicitvkCmdDrawClusterHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07833NNoneexplicitvkCmdDrawClusterHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07834NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07835NNoneexplicitvkCmdDrawClusterHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07836NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07837NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07838NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07839NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07840NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07841NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07843NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07844NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07845NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07846NNoneexplicitvkCmdDrawClusterHUAWEIIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07847NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07848NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07849NNoneexplicitvkCmdDrawClusterHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07850NNoneexplicitvkCmdDrawClusterHUAWEIIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07878NNoneexplicitvkCmdDrawClusterHUAWEIIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07879NNoneexplicitvkCmdDrawClusterHUAWEIIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07880NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07881NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-07888NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08114NNoneexplicitvkCmdDrawClusterHUAWEIDescriptors 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-08115NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08116NNoneexplicitvkCmdDrawClusterHUAWEIDescriptors 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-08117NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08119NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08600NNoneexplicitvkCmdDrawClusterHUAWEIFor 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-08601NNoneexplicitvkCmdDrawClusterHUAWEIFor 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-08604NNoneexplicitvkCmdDrawClusterHUAWEIDescriptors 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-08605NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08606NNoneexplicitvkCmdDrawClusterHUAWEIIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawClusterHUAWEI-None-08607NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08608NNoneexplicitvkCmdDrawClusterHUAWEIIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawClusterHUAWEI-None-08609NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08610NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08611NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08612NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08613NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08617NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08618NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08619NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08621NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08635NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08636NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637NNoneexplicitvkCmdDrawClusterHUAWEIIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to 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-08644NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object 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-08646NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08647NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08648NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08649NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08657NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08658NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08659NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08664NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08666NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08667NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08668NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08669NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08670NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08671NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08672NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08684NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08685NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08686NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08687NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08688NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08689NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08690NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08693NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08694NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08695NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08696NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08698NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08699NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08876NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawClusterHUAWEI-None-08877NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-08878NNoneexplicitvkCmdDrawClusterHUAWEIAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawClusterHUAWEI-None-08879NNoneexplicitvkCmdDrawClusterHUAWEIAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawClusterHUAWEI-None-09000NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09001NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09002NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09003NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09116NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09211NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09363NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09364NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09365NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09366NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09368NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09369NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-None-09548NNoneexplicitvkCmdDrawClusterHUAWEIIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawClusterHUAWEI-None-09549NNoneexplicitvkCmdDrawClusterHUAWEIIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawClusterHUAWEI-None-09600NNoneexplicitvkCmdDrawClusterHUAWEIIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawClusterHUAWEI-None-09642NNoneexplicitvkCmdDrawClusterHUAWEIIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawClusterHUAWEI-None-09643NNoneexplicitvkCmdDrawClusterHUAWEIIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawClusterHUAWEI-None-09650NNoneexplicitvkCmdDrawClusterHUAWEIIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-None-10068NNoneexplicitvkCmdDrawClusterHUAWEIFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06976NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06974NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09215NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09216NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09217NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06973NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06971NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06972NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06977NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06978NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04469NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08795NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08796NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07027NNoneexplicitvkCmdDrawClusterHUAWEIFor 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-07028NNoneexplicitvkCmdDrawClusterHUAWEIFor 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-07029NNoneexplicitvkCmdDrawClusterHUAWEIFor 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-07030NNoneexplicitvkCmdDrawClusterHUAWEIAny 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-07468NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04470NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04471NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04472NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04473NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04141NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04142NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07480NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08919NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08920NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07750NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04727NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06179NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06185NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09362NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09372NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-02707NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-cmdpoolYNoneimplicitvkCmdDrawClusterHUAWEIThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdDrawClusterHUAWEIcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawClusterHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdDrawClusterHUAWEIcommandBuffer must be in the recording state
VUID-vkCmdDrawClusterHUAWEI-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07488NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07491NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07490NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09212NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08910NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 an 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-08911NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 an 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-08912NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 an 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-08913NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08914NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08915NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08916NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08917NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08918NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-filterCubic-02694NNoneexplicitvkCmdDrawClusterHUAWEIAny 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-02695NNoneexplicitvkCmdDrawClusterHUAWEIAny 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-07476NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07477NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07478NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07479NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-02696NNoneexplicitvkCmdDrawClusterHUAWEIAny 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-07753NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07820NNoneexplicitvkCmdDrawClusterHUAWEIgroupCountX must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[0]
VUID-vkCmdDrawClusterHUAWEI-groupCountY-07821NNoneexplicitvkCmdDrawClusterHUAWEIgroupCountY must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[1]
VUID-vkCmdDrawClusterHUAWEI-groupCountZ-07822NNoneexplicitvkCmdDrawClusterHUAWEIgroupCountZ must be less than or equal to VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::maxWorkGroupCount[2]
VUID-vkCmdDrawClusterHUAWEI-imageView-06172NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06173NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06174NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06175NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06176NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06177NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06183NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06184NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04878NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-magFilter-04553NNoneexplicitvkCmdDrawClusterHUAWEIIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598NNoneexplicitvkCmdDrawClusterHUAWEIIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09239NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-02688NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04770NNoneexplicitvkCmdDrawClusterHUAWEIIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599NNoneexplicitvkCmdDrawClusterHUAWEIIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07285NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07286NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07287NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08963NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07470NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06186NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08964NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawClusterHUAWEIInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawClusterHUAWEI-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawClusterHUAWEIInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08716NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09370NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09371NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07935NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06187NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08965NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09238NNoneexplicitvkCmdDrawClusterHUAWEIIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-pipelineStatistics-07076NNoneexplicitvkCmdDrawClusterHUAWEIThe 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-04552NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-08642NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06709NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07481NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06708NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07471NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07474NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07489NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07494NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09367NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09236NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09416NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09417NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to 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-09418NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419NNoneexplicitvkCmdDrawClusterHUAWEIIf a shader object is bound to 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-09420NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09213NNoneexplicitvkCmdDrawClusterHUAWEIAny 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-02684NNoneexplicitvkCmdDrawClusterHUAWEIThe 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-06198NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-renderpassYNoneimplicitvkCmdDrawClusterHUAWEIThis command must only be called inside of a render pass instance
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-02689NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07484NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07485NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07486NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07487NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07936NNoneexplicitvkCmdDrawClusterHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937NNoneexplicitvkCmdDrawClusterHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938NNoneexplicitvkCmdDrawClusterHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawClusterHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483NNoneexplicitvkCmdDrawClusterHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07473NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-03418NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09214NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09233NNoneexplicitvkCmdDrawClusterHUAWEIIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234NNoneexplicitvkCmdDrawClusterHUAWEIIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04475NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-06480NNoneexplicitvkCmdDrawClusterHUAWEIThe 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-07073NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07495NNoneexplicitvkCmdDrawClusterHUAWEIIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07496NNoneexplicitvkCmdDrawClusterHUAWEIIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07497NNoneexplicitvkCmdDrawClusterHUAWEIIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07498NNoneexplicitvkCmdDrawClusterHUAWEIIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawClusterHUAWEI-storageBuffers-06936NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-02685NNoneexplicitvkCmdDrawClusterHUAWEIThe 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-06935NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-unnormalizedCoordinates-09635NNoneexplicitvkCmdDrawClusterHUAWEIIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawClusterHUAWEI-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawClusterHUAWEIIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawClusterHUAWEI-videocodingYNoneimplicitvkCmdDrawClusterHUAWEIThis command must only be called outside of a video coding scope
VUID-vkCmdDrawClusterHUAWEI-viewMask-06178NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07752NNoneexplicitvkCmdDrawClusterHUAWEIIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawClusterHUAWEI-viewportCount-03417NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-03419NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04137NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-04138NNoneexplicitvkCmdDrawClusterHUAWEIIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterHUAWEI-viewportCount-04139NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07492NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07493NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-09421NNoneexplicitvkCmdDrawClusterHUAWEIIf 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-07824NNoneexplicitvkCmdDrawClusterIndirectHUAWEIThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the ClusterCullingHUAWEI Execution Model.
VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-02692NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-02693NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04876NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06479NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06537NNoneexplicitvkCmdDrawClusterIndirectHUAWEIMemory 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-06539NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06550NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06666NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06887NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07074NNoneexplicitvkCmdDrawClusterIndirectHUAWEITransform Feedback Queries must not be active
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07075NNoneexplicitvkCmdDrawClusterIndirectHUAWEIPrimitives Generated Queries must not be active
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07288NNoneexplicitvkCmdDrawClusterIndirectHUAWEIAny shader invocation executed by this command must terminate
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07469NNoneexplicitvkCmdDrawClusterIndirectHUAWEIInput 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-07619NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07620NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07621NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07622NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07623NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07624NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07625NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07626NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07627NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07628NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07629NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07630NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07631NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07632NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07633NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07634NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07635NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07636NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07637NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07638NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07639NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07641NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07642NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07643NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07644NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07645NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07646NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07647NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07648NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07649NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07748NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07749NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07751NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07831NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07832NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07833NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07834NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07848NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07849NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07850NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07878NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07879NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07880NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07881NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-07888NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08114NNoneexplicitvkCmdDrawClusterIndirectHUAWEIDescriptors 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-08115NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08116NNoneexplicitvkCmdDrawClusterIndirectHUAWEIDescriptors 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-08117NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08119NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08600NNoneexplicitvkCmdDrawClusterIndirectHUAWEIFor 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-08601NNoneexplicitvkCmdDrawClusterIndirectHUAWEIFor 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-08604NNoneexplicitvkCmdDrawClusterIndirectHUAWEIDescriptors 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-08605NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08606NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08608NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08609NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08610NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08611NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08612NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08613NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08617NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08619NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08621NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08635NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08636NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to 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-08644NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object 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-08646NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08647NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08648NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08649NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08657NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08658NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08659NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08664NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08666NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08667NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08668NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08669NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08670NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08671NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08684NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08685NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08686NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08687NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08688NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08689NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08690NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08693NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08694NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08695NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08696NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08698NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08699NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08876NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08877NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878NNoneexplicitvkCmdDrawClusterIndirectHUAWEIAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879NNoneexplicitvkCmdDrawClusterIndirectHUAWEIAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09000NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09001NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09002NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09003NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09116NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09211NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09363NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09364NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09365NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09366NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09368NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09369NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-None-09548NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09549NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09600NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09642NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09643NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawClusterIndirectHUAWEI-None-09650NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-None-10068NNoneexplicitvkCmdDrawClusterIndirectHUAWEIFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06976NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06974NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09215NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09216NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09217NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06973NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06971NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06972NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06977NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06978NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04469NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08795NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08796NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07027NNoneexplicitvkCmdDrawClusterIndirectHUAWEIFor 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-07028NNoneexplicitvkCmdDrawClusterIndirectHUAWEIFor 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-07029NNoneexplicitvkCmdDrawClusterIndirectHUAWEIFor 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-07030NNoneexplicitvkCmdDrawClusterIndirectHUAWEIAny 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-07468NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04470NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04471NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04472NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04473NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04141NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04142NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07480NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08919NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08920NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07750NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04727NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-parameterYNoneimplicitvkCmdDrawClusterIndirectHUAWEIbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06179NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06185NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09362NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09372NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-02707NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-cmdpoolYNoneimplicitvkCmdDrawClusterIndirectHUAWEIThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdDrawClusterIndirectHUAWEIcommandBuffer must be in the recording state
VUID-vkCmdDrawClusterIndirectHUAWEI-commonparentYNoneimplicitvkCmdDrawClusterIndirectHUAWEIBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawClusterIndirectHUAWEI-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07488NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07491NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07490NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09212NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-02718NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02719NNoneexplicitvkCmdDrawClusterIndirectHUAWEIdrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08910NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 an 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-08911NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 an 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-08912NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 an 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-08913NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08914NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08915NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08916NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08917NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08918NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-filterCubic-02694NNoneexplicitvkCmdDrawClusterIndirectHUAWEIAny 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-02695NNoneexplicitvkCmdDrawClusterIndirectHUAWEIAny 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-07476NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07477NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07478NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07479NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-02696NNoneexplicitvkCmdDrawClusterIndirectHUAWEIAny 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-07753NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06172NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06173NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06174NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06175NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06176NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06177NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06183NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06184NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04878NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-magFilter-04553NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09239NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-02688NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04770NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07285NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07286NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07287NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07918NNoneexplicitvkCmdDrawClusterIndirectHUAWEIoffset must be a multiple of VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI::indirectBufferOffsetAlignment
VUID-vkCmdDrawClusterIndirectHUAWEI-pColorAttachments-08963NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07470NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06186NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08964NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawClusterIndirectHUAWEIInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawClusterIndirectHUAWEIInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08716NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09370NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09371NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07935NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06187NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08965NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09238NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineStatistics-07076NNoneexplicitvkCmdDrawClusterIndirectHUAWEIThe 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-04552NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-08642NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06709NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07481NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06708NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07471NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07474NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07489NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07494NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09367NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09236NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09416NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09417NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to 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-09418NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a shader object is bound to 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-09420NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09213NNoneexplicitvkCmdDrawClusterIndirectHUAWEIAny 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-02684NNoneexplicitvkCmdDrawClusterIndirectHUAWEIThe 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-06198NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-renderpassYNoneimplicitvkCmdDrawClusterIndirectHUAWEIThis command must only be called inside of a render pass instance
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-02689NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07484NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07485NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07486NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07487NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07936NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07473NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-03418NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09214NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09233NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04475NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06480NNoneexplicitvkCmdDrawClusterIndirectHUAWEIThe 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-07073NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07495NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07496NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07497NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07498NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawClusterIndirectHUAWEI-storageBuffers-06936NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-02685NNoneexplicitvkCmdDrawClusterIndirectHUAWEIThe 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-06935NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-unnormalizedCoordinates-09635NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawClusterIndirectHUAWEI-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawClusterIndirectHUAWEI-videocodingYNoneimplicitvkCmdDrawClusterIndirectHUAWEIThis command must only be called outside of a video coding scope
VUID-vkCmdDrawClusterIndirectHUAWEI-viewMask-06178NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07752NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03417NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-03419NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04137NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-04138NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04139NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07492NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-07493NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-09421NNoneexplicitvkCmdDrawClusterIndirectHUAWEIIf 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-06551YNoneexplicitvkCmdDrawIndexedIf 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-07939YNoneexplicitvkCmdDrawIndexedIf 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-08734YNoneexplicitvkCmdDrawIndexedIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndexed-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawIndexedIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndexed-None-02691YNoneexplicitvkCmdDrawIndexedIf 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-02692YNoneexplicitvkCmdDrawIndexedIf 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-02693YNoneexplicitvkCmdDrawIndexedIf 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-02721YNoneexplicitvkCmdDrawIndexedIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndexed-None-04007YNoneexplicitvkCmdDrawIndexedAll 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-04008YNoneexplicitvkCmdDrawIndexedIf 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-04875YNoneexplicitvkCmdDrawIndexedIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04876YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04877YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04879YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04914YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexed-None-06479YNoneexplicitvkCmdDrawIndexedIf 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-06537YNoneexplicitvkCmdDrawIndexedMemory 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-06539YNoneexplicitvkCmdDrawIndexedIf 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-06550YNoneexplicitvkCmdDrawIndexedIf 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-06666YNoneexplicitvkCmdDrawIndexedIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-06886YNoneexplicitvkCmdDrawIndexedIf 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-06887YNoneexplicitvkCmdDrawIndexedIf 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-07288NNoneexplicitvkCmdDrawIndexedAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexed-None-07312YNegativeCommand.IndexBufferNotBound, NegativeMultiview.UnboundResourcesAfterBeginRenderPassAndNextSubpassexplicitvkCmdDrawIndexedIf maintenance6 is not enabled, a valid index buffer must be bound
VUID-vkCmdDrawIndexed-None-07469NNoneexplicitvkCmdDrawIndexedInput 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-07619YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07620YNoneexplicitvkCmdDrawIndexedIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07621YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07622YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07623YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07624YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07625YNoneexplicitvkCmdDrawIndexedIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07626YNoneexplicitvkCmdDrawIndexedIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07627YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07628YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07629YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07630YNoneexplicitvkCmdDrawIndexedIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07631YNoneexplicitvkCmdDrawIndexedIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07632YNoneexplicitvkCmdDrawIndexedIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07633YNoneexplicitvkCmdDrawIndexedIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07634YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07635YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07636YNoneexplicitvkCmdDrawIndexedIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07637YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07638YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07639YNoneexplicitvkCmdDrawIndexedIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07640YNoneexplicitvkCmdDrawIndexedIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07641YNoneexplicitvkCmdDrawIndexedIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07642YNoneexplicitvkCmdDrawIndexedIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07643YNoneexplicitvkCmdDrawIndexedIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07644YNoneexplicitvkCmdDrawIndexedIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07645YNoneexplicitvkCmdDrawIndexedIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07646YNoneexplicitvkCmdDrawIndexedIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07647YNoneexplicitvkCmdDrawIndexedIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07648YNoneexplicitvkCmdDrawIndexedIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07649YNoneexplicitvkCmdDrawIndexedIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07748NNoneexplicitvkCmdDrawIndexedIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexed-None-07749YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07751YNoneexplicitvkCmdDrawIndexedIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndexed-None-07831YNoneexplicitvkCmdDrawIndexedIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07832YNoneexplicitvkCmdDrawIndexedIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07833YNoneexplicitvkCmdDrawIndexedIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07834YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07835YNoneexplicitvkCmdDrawIndexedIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07836YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07837YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07838YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07839YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07840YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07841YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07842YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07843YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07844YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07845YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07846YNoneexplicitvkCmdDrawIndexedIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07847YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07848YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07849YNoneexplicitvkCmdDrawIndexedIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07850YNoneexplicitvkCmdDrawIndexedIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07878YNoneexplicitvkCmdDrawIndexedIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07879YNoneexplicitvkCmdDrawIndexedIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07880YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07881YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07888YNoneexplicitvkCmdDrawIndexedIf 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-08114YNoneexplicitvkCmdDrawIndexedDescriptors 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-08115YNoneexplicitvkCmdDrawIndexedIf 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-08116NNoneexplicitvkCmdDrawIndexedDescriptors 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-08117YNoneexplicitvkCmdDrawIndexedIf 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-08119NNoneexplicitvkCmdDrawIndexedIf 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-08600YNoneexplicitvkCmdDrawIndexedFor 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-08601NNoneexplicitvkCmdDrawIndexedFor 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-08604NNoneexplicitvkCmdDrawIndexedDescriptors 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-08605NNoneexplicitvkCmdDrawIndexedIf 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.BadPipelineObjectexplicitvkCmdDrawIndexedIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexed-None-08607YNoneexplicitvkCmdDrawIndexedIf 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-08608YNoneexplicitvkCmdDrawIndexedIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexed-None-08609YNoneexplicitvkCmdDrawIndexedIf 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-08610YNoneexplicitvkCmdDrawIndexedIf 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-08611YNoneexplicitvkCmdDrawIndexedIf 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-08612YNoneexplicitvkCmdDrawIndexedIf 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-08613YNoneexplicitvkCmdDrawIndexedIf 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-08617YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08618YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08619YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08621YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08635NNoneexplicitvkCmdDrawIndexedIf 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-08636YNoneexplicitvkCmdDrawIndexedIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawIndexedIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawIndexedIf a shader object 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-08646YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08647YNoneexplicitvkCmdDrawIndexedIf 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-08648YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08649YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08657YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08658YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08659YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08664YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08666YNoneexplicitvkCmdDrawIndexedIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08667YNoneexplicitvkCmdDrawIndexedIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08668YNoneexplicitvkCmdDrawIndexedIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08669YNoneexplicitvkCmdDrawIndexedIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08670YNoneexplicitvkCmdDrawIndexedIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08671YNoneexplicitvkCmdDrawIndexedIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08672YNoneexplicitvkCmdDrawIndexedIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08684YNoneexplicitvkCmdDrawIndexedIf 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-08685YNoneexplicitvkCmdDrawIndexedIf 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-08686YNoneexplicitvkCmdDrawIndexedIf 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-08687YNoneexplicitvkCmdDrawIndexedIf 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-08688YNoneexplicitvkCmdDrawIndexedIf 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-08689YNoneexplicitvkCmdDrawIndexedIf 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-08690YNoneexplicitvkCmdDrawIndexedIf 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-08693YNoneexplicitvkCmdDrawIndexedIf 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-08694YNoneexplicitvkCmdDrawIndexedIf 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-08695YNoneexplicitvkCmdDrawIndexedIf 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-08696YNoneexplicitvkCmdDrawIndexedIf 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-08698YNoneexplicitvkCmdDrawIndexedIf 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-08699YNoneexplicitvkCmdDrawIndexedIf 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-08876YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndexed-None-08877YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08878YNoneexplicitvkCmdDrawIndexedAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndexed-None-08879YNoneexplicitvkCmdDrawIndexedAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndexed-None-08885YNoneexplicitvkCmdDrawIndexedThere 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-09000NNoneexplicitvkCmdDrawIndexedIf 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-09001NNoneexplicitvkCmdDrawIndexedIf 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-09002NNoneexplicitvkCmdDrawIndexedIf 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-09003YNoneexplicitvkCmdDrawIndexedIf 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-09116YNoneexplicitvkCmdDrawIndexedIf 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-09203YNoneexplicitvkCmdDrawIndexedIf 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-09211YNoneexplicitvkCmdDrawIndexedIf 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-09363YNoneexplicitvkCmdDrawIndexedIf 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-09364YNoneexplicitvkCmdDrawIndexedIf 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-09365YNoneexplicitvkCmdDrawIndexedIf 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-09366YNoneexplicitvkCmdDrawIndexedIf 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-09368YNoneexplicitvkCmdDrawIndexedIf 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-09369YNoneexplicitvkCmdDrawIndexedIf 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-09462YNoneexplicitvkCmdDrawIndexedIf 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-None-09548YNoneexplicitvkCmdDrawIndexedIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawIndexed-None-09549YNoneexplicitvkCmdDrawIndexedIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndexed-None-09600NNoneexplicitvkCmdDrawIndexedIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawIndexed-None-09637YNoneexplicitvkCmdDrawIndexedIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDrawIndexed-None-09642YNoneexplicitvkCmdDrawIndexedIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawIndexed-None-09643YNoneexplicitvkCmdDrawIndexedIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawIndexed-None-09650YNoneexplicitvkCmdDrawIndexedIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-10068NNoneexplicitvkCmdDrawIndexedFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexedIf 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-06976NNoneexplicitvkCmdDrawIndexedIf 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-06974NNoneexplicitvkCmdDrawIndexedIf 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-09215NNoneexplicitvkCmdDrawIndexedIf 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-09216NNoneexplicitvkCmdDrawIndexedIf 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-09217NNoneexplicitvkCmdDrawIndexedIf 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-06973NNoneexplicitvkCmdDrawIndexedIf 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-06971NNoneexplicitvkCmdDrawIndexedIf 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-06972NNoneexplicitvkCmdDrawIndexedIf 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-06977NNoneexplicitvkCmdDrawIndexedIf 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-06978NNoneexplicitvkCmdDrawIndexedIf 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-04469YNoneexplicitvkCmdDrawIndexedIf 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-08795YNoneexplicitvkCmdDrawIndexedIf 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-08796YNoneexplicitvkCmdDrawIndexedIf 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-07027YNoneexplicitvkCmdDrawIndexedFor 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-07028YNoneexplicitvkCmdDrawIndexedFor 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-07029YNoneexplicitvkCmdDrawIndexedFor 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-07030YNoneexplicitvkCmdDrawIndexedAny 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-07468NNoneexplicitvkCmdDrawIndexedIf 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-04470YNoneexplicitvkCmdDrawIndexedIf 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-04471YNoneexplicitvkCmdDrawIndexedIf 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-04472YNoneexplicitvkCmdDrawIndexedIf 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-04473YNoneexplicitvkCmdDrawIndexedIf 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-04141NNoneexplicitvkCmdDrawIndexedIf 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-04142NNoneexplicitvkCmdDrawIndexedIf 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-07480YNoneexplicitvkCmdDrawIndexedIf 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-08919YNoneexplicitvkCmdDrawIndexedIf 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-08920YNoneexplicitvkCmdDrawIndexedIf 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-07750YNoneexplicitvkCmdDrawIndexedIf 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-04727YNoneexplicitvkCmdDrawIndexedIf 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-06179YNoneexplicitvkCmdDrawIndexedIf 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-06185YNoneexplicitvkCmdDrawIndexedIf 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-09362YNoneexplicitvkCmdDrawIndexedIf 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-09372YNoneexplicitvkCmdDrawIndexedIf 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.MixingProtectedResourcesexplicitvkCmdDrawIndexedIf 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.MixingProtectedResourcesexplicitvkCmdDrawIndexedIf 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-02713NNoneexplicitvkCmdDrawIndexedIf 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-04617YNoneexplicitvkCmdDrawIndexedIf 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-cmdpoolYNoneimplicitvkCmdDrawIndexedThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexed-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexed-commandBuffer-recordingYNegativeCommand.IndexBufferDestroyedimplicitvkCmdDrawIndexedcommandBuffer must be in the recording state
VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndexedIf 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-07488NNoneexplicitvkCmdDrawIndexedIf 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-07491NNoneexplicitvkCmdDrawIndexedIf 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-07490NNoneexplicitvkCmdDrawIndexedIf 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-09212NNoneexplicitvkCmdDrawIndexedIf 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-07500YNoneexplicitvkCmdDrawIndexedIf 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-08910YNoneexplicitvkCmdDrawIndexedIf 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 an 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-08911YNoneexplicitvkCmdDrawIndexedIf 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 an 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-08912YNoneexplicitvkCmdDrawIndexedIf 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 an 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-08913YNoneexplicitvkCmdDrawIndexedIf 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-08914YNoneexplicitvkCmdDrawIndexedIf 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-08915YNoneexplicitvkCmdDrawIndexedIf 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-08916YNoneexplicitvkCmdDrawIndexedIf 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-08917YNoneexplicitvkCmdDrawIndexedIf 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-08918YNoneexplicitvkCmdDrawIndexedIf 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-filterCubic-02694YNoneexplicitvkCmdDrawIndexedAny 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-02695YNoneexplicitvkCmdDrawIndexedAny 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-07476YNoneexplicitvkCmdDrawIndexedIf 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-07477YNoneexplicitvkCmdDrawIndexedIf 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-07478YNoneexplicitvkCmdDrawIndexedIf 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-07479YNoneexplicitvkCmdDrawIndexedIf 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-02696YNoneexplicitvkCmdDrawIndexedAny 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-07753YNoneexplicitvkCmdDrawIndexedIf 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-08936YNoneexplicitvkCmdDrawIndexedIf 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-08937YNoneexplicitvkCmdDrawIndexedIf 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-06172NNoneexplicitvkCmdDrawIndexedIf 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-06173NNoneexplicitvkCmdDrawIndexedIf 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-06174NNoneexplicitvkCmdDrawIndexedIf 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-06175NNoneexplicitvkCmdDrawIndexedIf 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-06176NNoneexplicitvkCmdDrawIndexedIf 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-06177NNoneexplicitvkCmdDrawIndexedIf 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-06183YNoneexplicitvkCmdDrawIndexedIf 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-06184YNoneexplicitvkCmdDrawIndexedIf 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-04878YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-magFilter-04553YNoneexplicitvkCmdDrawIndexedIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawIndexedIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndexed-maintenance4-08602YNoneexplicitvkCmdDrawIndexedIf 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-09239YNoneexplicitvkCmdDrawIndexedIf 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-02688YNoneexplicitvkCmdDrawIndexedIf 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-04770YNoneexplicitvkCmdDrawIndexedIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawIndexedIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexedIf 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-07285YNoneexplicitvkCmdDrawIndexedIf 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-07286YNoneexplicitvkCmdDrawIndexedIf 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-07287YNoneexplicitvkCmdDrawIndexedIf 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-08963YNoneexplicitvkCmdDrawIndexedIf 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-07470YNoneexplicitvkCmdDrawIndexedIf 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-06186YNoneexplicitvkCmdDrawIndexedIf 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-08964YNoneexplicitvkCmdDrawIndexedIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawIndexedInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawIndexed-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawIndexedInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawIndexed-pDynamicStates-08715YNoneexplicitvkCmdDrawIndexedIf 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-08716YNoneexplicitvkCmdDrawIndexedIf 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-09370YNoneexplicitvkCmdDrawIndexedIf 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-09371YNoneexplicitvkCmdDrawIndexedIf 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-07935YNoneexplicitvkCmdDrawIndexedIf 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-09461YNoneexplicitvkCmdDrawIndexedIf 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-06187YNoneexplicitvkCmdDrawIndexedIf 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-08965YNoneexplicitvkCmdDrawIndexedIf 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-04913YNoneexplicitvkCmdDrawIndexedIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndexedIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexedIf 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-08642YNoneexplicitvkCmdDrawIndexedIf 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-06709YNoneexplicitvkCmdDrawIndexedIf 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-07481YNoneexplicitvkCmdDrawIndexedIf 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-06708YNoneexplicitvkCmdDrawIndexedIf 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-07471YNoneexplicitvkCmdDrawIndexedIf 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-07474YNoneexplicitvkCmdDrawIndexedIf 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-07489NNoneexplicitvkCmdDrawIndexedIf 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-07494NNoneexplicitvkCmdDrawIndexedIf 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-09367YNoneexplicitvkCmdDrawIndexedIf 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-09236YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndexedIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawIndexedIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawIndexedIf 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-09213NNoneexplicitvkCmdDrawIndexedAny 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-02684YNoneexplicitvkCmdDrawIndexedThe 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-06198YNoneexplicitvkCmdDrawIndexedIf 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-renderpassYNoneimplicitvkCmdDrawIndexedThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexed-robustBufferAccess2-08798YNegativeCommand.IndexBufferSizeOffsetexplicitvkCmdDrawIndexedIf 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-02689YNoneexplicitvkCmdDrawIndexedIf 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-07484YNoneexplicitvkCmdDrawIndexedIf 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-07485YNoneexplicitvkCmdDrawIndexedIf 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-07486YNoneexplicitvkCmdDrawIndexedIf 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-07487YNoneexplicitvkCmdDrawIndexedIf 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-07936YNoneexplicitvkCmdDrawIndexedIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawIndexedIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawIndexedIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndexedIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawIndexedIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawIndexedIf 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-07473YNoneexplicitvkCmdDrawIndexedIf 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-03418YNoneexplicitvkCmdDrawIndexedIf 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-09214NNoneexplicitvkCmdDrawIndexedIf 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-09233YNoneexplicitvkCmdDrawIndexedIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-shadingRateImage-09234YNoneexplicitvkCmdDrawIndexedIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndexedIf 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-04475NNoneexplicitvkCmdDrawIndexedIf 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-06481YNoneexplicitvkCmdDrawIndexedThe 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-07073YNoneexplicitvkCmdDrawIndexedIf 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-07495YNoneexplicitvkCmdDrawIndexedIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndexedIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndexedIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndexedIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexed-storageBuffers-06936YNoneexplicitvkCmdDrawIndexedIf 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-02685YNoneexplicitvkCmdDrawIndexedThe 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-06935YNoneexplicitvkCmdDrawIndexedIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawIndexedIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawIndexed-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawIndexedIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawIndexed-videocodingYNoneimplicitvkCmdDrawIndexedThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexed-viewMask-06178YNoneexplicitvkCmdDrawIndexedIf 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-07752YNoneexplicitvkCmdDrawIndexedIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawIndexed-viewportCount-03417YNoneexplicitvkCmdDrawIndexedIf 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-03419YNoneexplicitvkCmdDrawIndexedIf 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-04137NNoneexplicitvkCmdDrawIndexedIf 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-04138YNoneexplicitvkCmdDrawIndexedIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-viewportCount-04139NNoneexplicitvkCmdDrawIndexedIf 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-07492NNoneexplicitvkCmdDrawIndexedIf 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-07493NNoneexplicitvkCmdDrawIndexedIf 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-09421YNoneexplicitvkCmdDrawIndexedIf 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-06551YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07939YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08734YNoneexplicitvkCmdDrawIndexedIndirectIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndexedIndirect-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawIndexedIndirectIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndexedIndirect-None-02691YNoneexplicitvkCmdDrawIndexedIndirectIf 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-02692YNoneexplicitvkCmdDrawIndexedIndirectIf 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-02693YNoneexplicitvkCmdDrawIndexedIndirectIf 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-02721YNoneexplicitvkCmdDrawIndexedIndirectIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndexedIndirect-None-04007YNoneexplicitvkCmdDrawIndexedIndirectAll 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-04008YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04875YNoneexplicitvkCmdDrawIndexedIndirectIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04876YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04877YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04879YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04914YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirect-None-06479YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06537YNoneexplicitvkCmdDrawIndexedIndirectMemory 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-06539YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06550YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06666YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-06886YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06887YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07288NNoneexplicitvkCmdDrawIndexedIndirectAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexedIndirect-None-07312YNoneexplicitvkCmdDrawIndexedIndirectIf maintenance6 is not enabled, a valid index buffer must be bound
VUID-vkCmdDrawIndexedIndirect-None-07469NNoneexplicitvkCmdDrawIndexedIndirectInput 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-07619YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07620YNoneexplicitvkCmdDrawIndexedIndirectIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07621YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07622YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07623YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07624YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07625YNoneexplicitvkCmdDrawIndexedIndirectIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07626YNoneexplicitvkCmdDrawIndexedIndirectIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07627YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07628YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07629YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07630YNoneexplicitvkCmdDrawIndexedIndirectIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07631YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07632YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07633YNoneexplicitvkCmdDrawIndexedIndirectIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07634YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07635YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07636YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07637YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07638YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07639YNoneexplicitvkCmdDrawIndexedIndirectIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07640YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07641YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07642YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07643YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07644YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07645YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07646YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07647YNoneexplicitvkCmdDrawIndexedIndirectIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07648YNoneexplicitvkCmdDrawIndexedIndirectIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07649YNoneexplicitvkCmdDrawIndexedIndirectIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07748NNoneexplicitvkCmdDrawIndexedIndirectIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexedIndirect-None-07749YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07751YNoneexplicitvkCmdDrawIndexedIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndexedIndirect-None-07831YNoneexplicitvkCmdDrawIndexedIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07832YNoneexplicitvkCmdDrawIndexedIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07833YNoneexplicitvkCmdDrawIndexedIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07834YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07835YNoneexplicitvkCmdDrawIndexedIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07836YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07837YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07838YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07839YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07840YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07841YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07842YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07843YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07844YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07845YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07846YNoneexplicitvkCmdDrawIndexedIndirectIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07847YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07848YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07849YNoneexplicitvkCmdDrawIndexedIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07850YNoneexplicitvkCmdDrawIndexedIndirectIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07878YNoneexplicitvkCmdDrawIndexedIndirectIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07879YNoneexplicitvkCmdDrawIndexedIndirectIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07880YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07881YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07888YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08114YNoneexplicitvkCmdDrawIndexedIndirectDescriptors 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-08115YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08116NNoneexplicitvkCmdDrawIndexedIndirectDescriptors 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-08117YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08119NNoneexplicitvkCmdDrawIndexedIndirectIf 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-08600YNoneexplicitvkCmdDrawIndexedIndirectFor 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-08601NNoneexplicitvkCmdDrawIndexedIndirectFor 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-08604NNoneexplicitvkCmdDrawIndexedIndirectDescriptors 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-08605NNoneexplicitvkCmdDrawIndexedIndirectIf 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.BadPipelineObjectexplicitvkCmdDrawIndexedIndirectIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirect-None-08607YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08608YNoneexplicitvkCmdDrawIndexedIndirectIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexedIndirect-None-08609YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08610YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08611YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08612YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08613YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08617YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08618YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08619YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08621YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08635NNoneexplicitvkCmdDrawIndexedIndirectIf 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-08636YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawIndexedIndirectIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object 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-08646YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08647YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08648YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08649YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08657YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08658YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08659YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08664YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08666YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08667YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08668YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08669YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08670YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08671YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08672YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08684YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08685YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08686YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08687YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08688YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08689YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08690YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08693YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08694YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08695YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08696YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08698YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08699YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08876YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndexedIndirect-None-08877YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08878YNoneexplicitvkCmdDrawIndexedIndirectAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndexedIndirect-None-08879YNoneexplicitvkCmdDrawIndexedIndirectAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndexedIndirect-None-08885YNoneexplicitvkCmdDrawIndexedIndirectThere 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-09000NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09001NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09002NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09003YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09116YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09203YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09211YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09363YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09364YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09365YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09366YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09368YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09369YNoneexplicitvkCmdDrawIndexedIndirectIf 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-None-09548YNoneexplicitvkCmdDrawIndexedIndirectIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawIndexedIndirect-None-09549YNoneexplicitvkCmdDrawIndexedIndirectIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndexedIndirect-None-09600NNoneexplicitvkCmdDrawIndexedIndirectIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawIndexedIndirect-None-09637YNoneexplicitvkCmdDrawIndexedIndirectIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDrawIndexedIndirect-None-09642YNoneexplicitvkCmdDrawIndexedIndirectIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawIndexedIndirect-None-09643YNoneexplicitvkCmdDrawIndexedIndirectIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawIndexedIndirect-None-09650YNoneexplicitvkCmdDrawIndexedIndirectIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-10068NNoneexplicitvkCmdDrawIndexedIndirectFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06976NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06974NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09215NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09216NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09217NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06973NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06971NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06972NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06977NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06978NNoneexplicitvkCmdDrawIndexedIndirectIf 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-04469YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08795YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08796YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07027YNoneexplicitvkCmdDrawIndexedIndirectFor 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-07028YNoneexplicitvkCmdDrawIndexedIndirectFor 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-07029YNoneexplicitvkCmdDrawIndexedIndirectFor 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-07030YNoneexplicitvkCmdDrawIndexedIndirectAny 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-07468NNoneexplicitvkCmdDrawIndexedIndirectIf 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-04470YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04471YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04472YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04473YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04141NNoneexplicitvkCmdDrawIndexedIndirectIf 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-04142NNoneexplicitvkCmdDrawIndexedIndirectIf 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-07480YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08919YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08920YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07750YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04727YNoneexplicitvkCmdDrawIndexedIndirectIf 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-02708YNoneexplicitvkCmdDrawIndexedIndirectIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirect-buffer-02709YNoneexplicitvkCmdDrawIndexedIndirectbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirect-buffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06185YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09362YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09372YNoneexplicitvkCmdDrawIndexedIndirectIf 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-02707YNoneexplicitvkCmdDrawIndexedIndirectIf 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.UnprotectedCommandsexplicitvkCmdDrawIndexedIndirectcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndexedIndirectThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexedIndirect-commandBuffer-recordingYNoneimplicitvkCmdDrawIndexedIndirectcommandBuffer must be in the recording state
VUID-vkCmdDrawIndexedIndirect-commonparentYNoneimplicitvkCmdDrawIndexedIndirectBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07488NNoneexplicitvkCmdDrawIndexedIndirectIf 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-07491NNoneexplicitvkCmdDrawIndexedIndirectIf 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-07490NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09212NNoneexplicitvkCmdDrawIndexedIndirectIf 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.StrideMultiDrawIndirectexplicitvkCmdDrawIndexedIndirectIf 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.StrideMultiDrawIndirectexplicitvkCmdDrawIndexedIndirectIf 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.StrideMultiDrawIndirectexplicitvkCmdDrawIndexedIndirectIf 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.MultiDrawIndirectFeatureexplicitvkCmdDrawIndexedIndirectIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawIndexedIndirect-drawCount-02719YNoneexplicitvkCmdDrawIndexedIndirectdrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08910YNoneexplicitvkCmdDrawIndexedIndirectIf 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 an 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-08911YNoneexplicitvkCmdDrawIndexedIndirectIf 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 an 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-08912YNoneexplicitvkCmdDrawIndexedIndirectIf 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 an 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-08913YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08914YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08915YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08916YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08917YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08918YNoneexplicitvkCmdDrawIndexedIndirectIf 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-filterCubic-02694YNoneexplicitvkCmdDrawIndexedIndirectAny 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-02695YNoneexplicitvkCmdDrawIndexedIndirectAny 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-07476YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07477YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07478YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07479YNoneexplicitvkCmdDrawIndexedIndirectIf 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-02696YNoneexplicitvkCmdDrawIndexedIndirectAny 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-07753YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08936YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08937YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06172NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06173NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06174NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06175NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06176NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06177NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06183YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06184YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04878YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-magFilter-04553YNoneexplicitvkCmdDrawIndexedIndirectIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawIndexedIndirectIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndexedIndirect-maintenance4-08602YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09239YNoneexplicitvkCmdDrawIndexedIndirectIf 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-02688YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04770YNoneexplicitvkCmdDrawIndexedIndirectIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawIndexedIndirectIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07285YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07286YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07287YNoneexplicitvkCmdDrawIndexedIndirectIf 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.IndirectDrawexplicitvkCmdDrawIndexedIndirectoffset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07470YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06186YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08964YNoneexplicitvkCmdDrawIndexedIndirectIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawIndexedIndirectInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawIndexedIndirect-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawIndexedIndirectInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08716YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09370YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09371YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07935YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06187YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08965YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04913YNoneexplicitvkCmdDrawIndexedIndirectIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndexedIndirectIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexedIndirectIf 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-08642YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06709YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07481YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06708YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07471YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07474YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07489NNoneexplicitvkCmdDrawIndexedIndirectIf 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-07494NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09367YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09236YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndexedIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawIndexedIndirectIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09213NNoneexplicitvkCmdDrawIndexedIndirectAny 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-02684YNoneexplicitvkCmdDrawIndexedIndirectThe 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-06198YNoneexplicitvkCmdDrawIndexedIndirectIf 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-renderpassYNoneimplicitvkCmdDrawIndexedIndirectThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07484YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07485YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07486YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07487YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07936YNoneexplicitvkCmdDrawIndexedIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawIndexedIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawIndexedIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndexedIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawIndexedIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07473YNoneexplicitvkCmdDrawIndexedIndirectIf 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-03418YNoneexplicitvkCmdDrawIndexedIndirectIf 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-09214NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09233YNoneexplicitvkCmdDrawIndexedIndirectIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234YNoneexplicitvkCmdDrawIndexedIndirectIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04475NNoneexplicitvkCmdDrawIndexedIndirectIf 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-06481YNoneexplicitvkCmdDrawIndexedIndirectThe 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-07073YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07495YNoneexplicitvkCmdDrawIndexedIndirectIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndexedIndirectIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndexedIndirectIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndexedIndirectIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936YNoneexplicitvkCmdDrawIndexedIndirectIf 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-02685YNoneexplicitvkCmdDrawIndexedIndirectThe 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-06935YNoneexplicitvkCmdDrawIndexedIndirectIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawIndexedIndirectIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawIndexedIndirect-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawIndexedIndirectIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawIndexedIndirect-videocodingYNoneimplicitvkCmdDrawIndexedIndirectThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexedIndirect-viewMask-06178YNoneexplicitvkCmdDrawIndexedIndirectIf 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-07752YNoneexplicitvkCmdDrawIndexedIndirectIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawIndexedIndirect-viewportCount-03417YNoneexplicitvkCmdDrawIndexedIndirectIf 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-03419YNoneexplicitvkCmdDrawIndexedIndirectIf 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-04137NNoneexplicitvkCmdDrawIndexedIndirectIf 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-04138YNoneexplicitvkCmdDrawIndexedIndirectIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-viewportCount-04139NNoneexplicitvkCmdDrawIndexedIndirectIf 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-07492NNoneexplicitvkCmdDrawIndexedIndirectIf 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-07493NNoneexplicitvkCmdDrawIndexedIndirectIf 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-09421YNoneexplicitvkCmdDrawIndexedIndirectIf 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-06551YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07939YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08734YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndexedIndirectCount-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawIndexedIndirectCountIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndexedIndirectCount-None-02691YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-02692YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-02693YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-02721YNoneexplicitvkCmdDrawIndexedIndirectCountIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndexedIndirectCount-None-04007YNoneexplicitvkCmdDrawIndexedIndirectCountAll 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-04008YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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.DrawIndirectCountFeatureexplicitvkCmdDrawIndexedIndirectCountIf drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawIndexedIndirectCount-None-04875YNoneexplicitvkCmdDrawIndexedIndirectCountIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04876YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04877YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04879YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04914YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirectCount-None-06479YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06537YNoneexplicitvkCmdDrawIndexedIndirectCountMemory 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-06539YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06550YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06666YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-06886YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06887YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07288NNoneexplicitvkCmdDrawIndexedIndirectCountAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexedIndirectCount-None-07312YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountIf maintenance6 is not enabled, a valid index buffer must be bound
VUID-vkCmdDrawIndexedIndirectCount-None-07469NNoneexplicitvkCmdDrawIndexedIndirectCountInput 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-07619YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07620YNoneexplicitvkCmdDrawIndexedIndirectCountIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07621YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07622YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07623YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07624YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07625YNoneexplicitvkCmdDrawIndexedIndirectCountIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07626YNoneexplicitvkCmdDrawIndexedIndirectCountIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07627YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07628YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07629YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07630YNoneexplicitvkCmdDrawIndexedIndirectCountIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07631YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07632YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07633YNoneexplicitvkCmdDrawIndexedIndirectCountIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07634YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07635YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07636YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07637YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07638YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07639YNoneexplicitvkCmdDrawIndexedIndirectCountIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07640YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07641YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07642YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07643YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07644YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07645YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07646YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07647YNoneexplicitvkCmdDrawIndexedIndirectCountIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07648YNoneexplicitvkCmdDrawIndexedIndirectCountIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07649YNoneexplicitvkCmdDrawIndexedIndirectCountIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07748NNoneexplicitvkCmdDrawIndexedIndirectCountIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexedIndirectCount-None-07749YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07751YNoneexplicitvkCmdDrawIndexedIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndexedIndirectCount-None-07831YNoneexplicitvkCmdDrawIndexedIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07832YNoneexplicitvkCmdDrawIndexedIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07833YNoneexplicitvkCmdDrawIndexedIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07834YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07835YNoneexplicitvkCmdDrawIndexedIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07836YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07837YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07838YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07839YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07840YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07841YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07842YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07843YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07844YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07845YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07846YNoneexplicitvkCmdDrawIndexedIndirectCountIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07847YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07848YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07849YNoneexplicitvkCmdDrawIndexedIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07850YNoneexplicitvkCmdDrawIndexedIndirectCountIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07878YNoneexplicitvkCmdDrawIndexedIndirectCountIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07879YNoneexplicitvkCmdDrawIndexedIndirectCountIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07880YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07881YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07888YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08114YNoneexplicitvkCmdDrawIndexedIndirectCountDescriptors 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-08115YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08116NNoneexplicitvkCmdDrawIndexedIndirectCountDescriptors 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-08117YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08119NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08600YNoneexplicitvkCmdDrawIndexedIndirectCountFor 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-08601NNoneexplicitvkCmdDrawIndexedIndirectCountFor 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-08604NNoneexplicitvkCmdDrawIndexedIndirectCountDescriptors 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-08605NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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.BadPipelineObjectexplicitvkCmdDrawIndexedIndirectCountIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirectCount-None-08607YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08608YNoneexplicitvkCmdDrawIndexedIndirectCountIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexedIndirectCount-None-08609YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08610YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08611YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08612YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08613YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08617YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08618YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08619YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08621YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08635NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08636YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawIndexedIndirectCountIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object 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-08646YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08647YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08648YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08649YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08657YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08658YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08659YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08664YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08666YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08667YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08668YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08669YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08670YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08671YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08672YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08684YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08685YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08686YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08687YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08688YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08689YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08690YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08693YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08694YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08695YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08696YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08698YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08699YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08876YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndexedIndirectCount-None-08877YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08878YNoneexplicitvkCmdDrawIndexedIndirectCountAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndexedIndirectCount-None-08879YNoneexplicitvkCmdDrawIndexedIndirectCountAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndexedIndirectCount-None-08885YNoneexplicitvkCmdDrawIndexedIndirectCountThere 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-09000NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09001NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09002NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09003YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09116YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09203YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09211YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09363YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09364YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09365YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09366YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09368YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09369YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-None-09548YNoneexplicitvkCmdDrawIndexedIndirectCountIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawIndexedIndirectCount-None-09549YNoneexplicitvkCmdDrawIndexedIndirectCountIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndexedIndirectCount-None-09600NNoneexplicitvkCmdDrawIndexedIndirectCountIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawIndexedIndirectCount-None-09637YNoneexplicitvkCmdDrawIndexedIndirectCountIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDrawIndexedIndirectCount-None-09642YNoneexplicitvkCmdDrawIndexedIndirectCountIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawIndexedIndirectCount-None-09643YNoneexplicitvkCmdDrawIndexedIndirectCountIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawIndexedIndirectCount-None-09650YNoneexplicitvkCmdDrawIndexedIndirectCountIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-10068NNoneexplicitvkCmdDrawIndexedIndirectCountFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06976NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06974NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09215NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09216NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09217NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06973NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06971NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06972NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06977NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06978NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04469YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08795YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08796YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07027YNoneexplicitvkCmdDrawIndexedIndirectCountFor 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-07028YNoneexplicitvkCmdDrawIndexedIndirectCountFor 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-07029YNoneexplicitvkCmdDrawIndexedIndirectCountFor 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-07030YNoneexplicitvkCmdDrawIndexedIndirectCountAny 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-07468NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04470YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04471YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04472YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04473YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04141NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04142NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07480YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08919YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08920YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07750YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04727YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirectCount-buffer-02709YNoneexplicitvkCmdDrawIndexedIndirectCountbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirectCount-buffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectCountbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06185YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09362YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09372YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-02707YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-02711YNoneexplicitvkCmdDrawIndexedIndirectCountcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndexedIndirectCountThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectCountcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recordingYNoneimplicitvkCmdDrawIndexedIndirectCountcommandBuffer must be in the recording state
VUID-vkCmdDrawIndexedIndirectCount-commonparentYNoneimplicitvkCmdDrawIndexedIndirectCountEach of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountIf countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcountBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717YNegativeGpuAVIndirectBuffer.DrawCountDeviceLimitSubmit2explicitvkCmdDrawIndexedIndirectCountThe count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawIndexedIndirectCountIf 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.DrawCountexplicitvkCmdDrawIndexedIndirectCountIf 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-parameterYNoneimplicitvkCmdDrawIndexedIndirectCountcountBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountcountBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129YNegativeCommand.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07491NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07490NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09212NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07500YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08910YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 an 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-08911YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 an 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-08912YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 an 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-08913YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08914YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08915YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08916YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08917YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08918YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-filterCubic-02694YNoneexplicitvkCmdDrawIndexedIndirectCountAny 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-02695YNoneexplicitvkCmdDrawIndexedIndirectCountAny 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-07476YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07477YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07478YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07479YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-02696YNoneexplicitvkCmdDrawIndexedIndirectCountAny 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-07753YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08936YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08937YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06172NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06173NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06174NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06175NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06176NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06177NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06183YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06184YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04878YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553YNoneexplicitvkCmdDrawIndexedIndirectCountIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawIndexedIndirectCountIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-03143YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09239YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-02688YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04770YNoneexplicitvkCmdDrawIndexedIndirectCountIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawIndexedIndirectCountIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07285YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07286YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07287YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountoffset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirectCount-pColorAttachments-08963YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07470YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06186YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08964YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawIndexedIndirectCountInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawIndexedIndirectCount-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawIndexedIndirectCountInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08716YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09370YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09371YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07935YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06187YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08965YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04913YNoneexplicitvkCmdDrawIndexedIndirectCountIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDrawIndexedIndirectCount-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndexedIndirectCountIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-08642YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06709YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07481YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06708YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07471YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07474YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07489NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07494NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09367YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09236YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawIndexedIndirectCountIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09213NNoneexplicitvkCmdDrawIndexedIndirectCountAny 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-02684YNoneexplicitvkCmdDrawIndexedIndirectCountThe 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-06198YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-renderpassYNoneimplicitvkCmdDrawIndexedIndirectCountThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07484YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07485YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07486YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07487YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07936YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07473YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-03418YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09214NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09233YNoneexplicitvkCmdDrawIndexedIndirectCountIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234YNoneexplicitvkCmdDrawIndexedIndirectCountIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04475NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06481YNoneexplicitvkCmdDrawIndexedIndirectCountThe 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-07073YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07495YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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.DrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCountstride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)
VUID-vkCmdDrawIndexedIndirectCount-subpass-02685YNoneexplicitvkCmdDrawIndexedIndirectCountThe 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-06935YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawIndexedIndirectCountIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawIndexedIndirectCount-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawIndexedIndirectCountIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawIndexedIndirectCount-videocodingYNoneimplicitvkCmdDrawIndexedIndirectCountThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07752YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-03419YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04137NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-04138YNoneexplicitvkCmdDrawIndexedIndirectCountIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07492NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-07493NNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-09421YNoneexplicitvkCmdDrawIndexedIndirectCountIf 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-06551YNoneexplicitvkCmdDrawIndirectIf 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-07939YNoneexplicitvkCmdDrawIndirectIf 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-08734YNoneexplicitvkCmdDrawIndirectIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndirect-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawIndirectIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndirect-None-02691YNoneexplicitvkCmdDrawIndirectIf 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-02692YNoneexplicitvkCmdDrawIndirectIf 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-02693YNoneexplicitvkCmdDrawIndirectIf 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-02721YNoneexplicitvkCmdDrawIndirectIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndirect-None-04007YNoneexplicitvkCmdDrawIndirectAll 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-04008YNoneexplicitvkCmdDrawIndirectIf 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-04875YNoneexplicitvkCmdDrawIndirectIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04876YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04877YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04879YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04914YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirect-None-06479YNoneexplicitvkCmdDrawIndirectIf 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-06537YNoneexplicitvkCmdDrawIndirectMemory 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-06539YNoneexplicitvkCmdDrawIndirectIf 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-06550YNoneexplicitvkCmdDrawIndirectIf 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-06666YNoneexplicitvkCmdDrawIndirectIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-06886YNoneexplicitvkCmdDrawIndirectIf 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-06887YNoneexplicitvkCmdDrawIndirectIf 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-07288NNoneexplicitvkCmdDrawIndirectAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirect-None-07469NNoneexplicitvkCmdDrawIndirectInput 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-07619YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07620YNoneexplicitvkCmdDrawIndirectIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07621YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07622YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07623YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07624YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07625YNoneexplicitvkCmdDrawIndirectIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07626YNoneexplicitvkCmdDrawIndirectIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07627YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07628YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07629YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07630YNoneexplicitvkCmdDrawIndirectIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07631YNoneexplicitvkCmdDrawIndirectIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07632YNoneexplicitvkCmdDrawIndirectIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07633YNoneexplicitvkCmdDrawIndirectIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07634YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07635YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07636YNoneexplicitvkCmdDrawIndirectIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07637YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07638YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07639YNoneexplicitvkCmdDrawIndirectIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07640YNoneexplicitvkCmdDrawIndirectIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07641YNoneexplicitvkCmdDrawIndirectIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07642YNoneexplicitvkCmdDrawIndirectIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07643YNoneexplicitvkCmdDrawIndirectIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07644YNoneexplicitvkCmdDrawIndirectIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07645YNoneexplicitvkCmdDrawIndirectIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07646YNoneexplicitvkCmdDrawIndirectIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07647YNoneexplicitvkCmdDrawIndirectIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07648YNoneexplicitvkCmdDrawIndirectIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07649YNoneexplicitvkCmdDrawIndirectIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07748NNoneexplicitvkCmdDrawIndirectIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirect-None-07749YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07751YNoneexplicitvkCmdDrawIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndirect-None-07831YNoneexplicitvkCmdDrawIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07832YNoneexplicitvkCmdDrawIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07833YNoneexplicitvkCmdDrawIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07834YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07835YNoneexplicitvkCmdDrawIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07836YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07837YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07838YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07839YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07840YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07841YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07842YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07843YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07844YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07845YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07846YNoneexplicitvkCmdDrawIndirectIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07847YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07848YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07849YNoneexplicitvkCmdDrawIndirectIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07850YNoneexplicitvkCmdDrawIndirectIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07878YNoneexplicitvkCmdDrawIndirectIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07879YNoneexplicitvkCmdDrawIndirectIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07880YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07881YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07888YNoneexplicitvkCmdDrawIndirectIf 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-08114YNoneexplicitvkCmdDrawIndirectDescriptors 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-08115YNoneexplicitvkCmdDrawIndirectIf 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-08116NNoneexplicitvkCmdDrawIndirectDescriptors 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-08117YNoneexplicitvkCmdDrawIndirectIf 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-08119NNoneexplicitvkCmdDrawIndirectIf 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-08600YNoneexplicitvkCmdDrawIndirectFor 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-08601NNoneexplicitvkCmdDrawIndirectFor 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-08604NNoneexplicitvkCmdDrawIndirectDescriptors 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-08605NNoneexplicitvkCmdDrawIndirectIf 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.BadPipelineObjectexplicitvkCmdDrawIndirectIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirect-None-08607YNoneexplicitvkCmdDrawIndirectIf 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-08608YNoneexplicitvkCmdDrawIndirectIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirect-None-08609YNoneexplicitvkCmdDrawIndirectIf 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-08610YNoneexplicitvkCmdDrawIndirectIf 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-08611YNoneexplicitvkCmdDrawIndirectIf 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-08612YNoneexplicitvkCmdDrawIndirectIf 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-08613YNoneexplicitvkCmdDrawIndirectIf 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-08617YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08618YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08619YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08621YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08635NNoneexplicitvkCmdDrawIndirectIf 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-08636YNoneexplicitvkCmdDrawIndirectIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawIndirectIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawIndirectIf a shader object 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-08646YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08647YNoneexplicitvkCmdDrawIndirectIf 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-08648YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08649YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08657YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08658YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08659YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08664YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08666YNoneexplicitvkCmdDrawIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08667YNoneexplicitvkCmdDrawIndirectIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08668YNoneexplicitvkCmdDrawIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08669YNoneexplicitvkCmdDrawIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08670YNoneexplicitvkCmdDrawIndirectIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08671YNoneexplicitvkCmdDrawIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08672YNoneexplicitvkCmdDrawIndirectIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08684YNoneexplicitvkCmdDrawIndirectIf 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-08685YNoneexplicitvkCmdDrawIndirectIf 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-08686YNoneexplicitvkCmdDrawIndirectIf 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-08687YNoneexplicitvkCmdDrawIndirectIf 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-08688YNoneexplicitvkCmdDrawIndirectIf 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-08689YNoneexplicitvkCmdDrawIndirectIf 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-08690YNoneexplicitvkCmdDrawIndirectIf 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-08693YNoneexplicitvkCmdDrawIndirectIf 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-08694YNoneexplicitvkCmdDrawIndirectIf 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-08695YNoneexplicitvkCmdDrawIndirectIf 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-08696YNoneexplicitvkCmdDrawIndirectIf 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-08698YNoneexplicitvkCmdDrawIndirectIf 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-08699YNoneexplicitvkCmdDrawIndirectIf 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-08876YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndirect-None-08877YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08878YNoneexplicitvkCmdDrawIndirectAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndirect-None-08879YNoneexplicitvkCmdDrawIndirectAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndirect-None-08885YNoneexplicitvkCmdDrawIndirectThere 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-09000NNoneexplicitvkCmdDrawIndirectIf 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-09001NNoneexplicitvkCmdDrawIndirectIf 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-09002NNoneexplicitvkCmdDrawIndirectIf 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-09003YNoneexplicitvkCmdDrawIndirectIf 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-09116YNoneexplicitvkCmdDrawIndirectIf 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-09203YNoneexplicitvkCmdDrawIndirectIf 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-09211YNoneexplicitvkCmdDrawIndirectIf 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-09363YNoneexplicitvkCmdDrawIndirectIf 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-09364YNoneexplicitvkCmdDrawIndirectIf 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-09365YNoneexplicitvkCmdDrawIndirectIf 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-09366YNoneexplicitvkCmdDrawIndirectIf 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-09368YNoneexplicitvkCmdDrawIndirectIf 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-09369YNoneexplicitvkCmdDrawIndirectIf 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-None-09548YNoneexplicitvkCmdDrawIndirectIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawIndirect-None-09549YNoneexplicitvkCmdDrawIndirectIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndirect-None-09600NNoneexplicitvkCmdDrawIndirectIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawIndirect-None-09637YNoneexplicitvkCmdDrawIndirectIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDrawIndirect-None-09642YNoneexplicitvkCmdDrawIndirectIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawIndirect-None-09643YNoneexplicitvkCmdDrawIndirectIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawIndirect-None-09650YNoneexplicitvkCmdDrawIndirectIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-10068NNoneexplicitvkCmdDrawIndirectFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirectIf 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-06976NNoneexplicitvkCmdDrawIndirectIf 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-06974NNoneexplicitvkCmdDrawIndirectIf 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-09215NNoneexplicitvkCmdDrawIndirectIf 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-09216NNoneexplicitvkCmdDrawIndirectIf 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-09217NNoneexplicitvkCmdDrawIndirectIf 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-06973NNoneexplicitvkCmdDrawIndirectIf 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-06971NNoneexplicitvkCmdDrawIndirectIf 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-06972NNoneexplicitvkCmdDrawIndirectIf 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-06977NNoneexplicitvkCmdDrawIndirectIf 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-06978NNoneexplicitvkCmdDrawIndirectIf 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-04469YNoneexplicitvkCmdDrawIndirectIf 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-08795YNoneexplicitvkCmdDrawIndirectIf 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-08796YNoneexplicitvkCmdDrawIndirectIf 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-07027YNoneexplicitvkCmdDrawIndirectFor 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-07028YNoneexplicitvkCmdDrawIndirectFor 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-07029YNoneexplicitvkCmdDrawIndirectFor 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-07030YNoneexplicitvkCmdDrawIndirectAny 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-07468NNoneexplicitvkCmdDrawIndirectIf 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-04470YNoneexplicitvkCmdDrawIndirectIf 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-04471YNoneexplicitvkCmdDrawIndirectIf 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-04472YNoneexplicitvkCmdDrawIndirectIf 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-04473YNoneexplicitvkCmdDrawIndirectIf 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-04141NNoneexplicitvkCmdDrawIndirectIf 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-04142NNoneexplicitvkCmdDrawIndirectIf 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-07480YNoneexplicitvkCmdDrawIndirectIf 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-08919YNoneexplicitvkCmdDrawIndirectIf 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-08920YNoneexplicitvkCmdDrawIndirectIf 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-07750YNoneexplicitvkCmdDrawIndirectIf 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-04727YNoneexplicitvkCmdDrawIndirectIf 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-02708YNoneexplicitvkCmdDrawIndirectIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirect-buffer-02709YNegativeCommand.IndirectDrawexplicitvkCmdDrawIndirectbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirect-buffer-parameterYNoneimplicitvkCmdDrawIndirectbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirect-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndirectIf 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-06185YNoneexplicitvkCmdDrawIndirectIf 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-09362YNoneexplicitvkCmdDrawIndirectIf 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-09372YNoneexplicitvkCmdDrawIndirectIf 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-02707YNoneexplicitvkCmdDrawIndirectIf 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.UnprotectedCommandsexplicitvkCmdDrawIndirectcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndirectThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirect-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirect-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectcommandBuffer must be in the recording state
VUID-vkCmdDrawIndirect-commonparentYNoneimplicitvkCmdDrawIndirectBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndirectIf 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-07488NNoneexplicitvkCmdDrawIndirectIf 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-07491NNoneexplicitvkCmdDrawIndirectIf 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-07490NNoneexplicitvkCmdDrawIndirectIf 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-09212NNoneexplicitvkCmdDrawIndirectIf 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.StrideMultiDrawIndirectexplicitvkCmdDrawIndirectIf 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.StrideMultiDrawIndirectexplicitvkCmdDrawIndirectIf 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.StrideMultiDrawIndirectexplicitvkCmdDrawIndirectIf 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-02718YNoneexplicitvkCmdDrawIndirectIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawIndirect-drawCount-02719YNegativeCommand.StrideMultiDrawIndirectexplicitvkCmdDrawIndirectdrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawIndirectIf 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-08910YNoneexplicitvkCmdDrawIndirectIf 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 an 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-08911YNoneexplicitvkCmdDrawIndirectIf 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 an 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-08912YNoneexplicitvkCmdDrawIndirectIf 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 an 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-08913YNoneexplicitvkCmdDrawIndirectIf 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-08914YNoneexplicitvkCmdDrawIndirectIf 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-08915YNoneexplicitvkCmdDrawIndirectIf 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-08916YNoneexplicitvkCmdDrawIndirectIf 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-08917YNoneexplicitvkCmdDrawIndirectIf 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-08918YNoneexplicitvkCmdDrawIndirectIf 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-filterCubic-02694YNoneexplicitvkCmdDrawIndirectAny 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-02695YNoneexplicitvkCmdDrawIndirectAny 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-07476YNoneexplicitvkCmdDrawIndirectIf 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-07477YNoneexplicitvkCmdDrawIndirectIf 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-07478YNoneexplicitvkCmdDrawIndirectIf 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-07479YNoneexplicitvkCmdDrawIndirectIf 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-02696YNoneexplicitvkCmdDrawIndirectAny 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-07753YNoneexplicitvkCmdDrawIndirectIf 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-08936YNoneexplicitvkCmdDrawIndirectIf 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-08937YNoneexplicitvkCmdDrawIndirectIf 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-06172NNoneexplicitvkCmdDrawIndirectIf 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-06173NNoneexplicitvkCmdDrawIndirectIf 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-06174NNoneexplicitvkCmdDrawIndirectIf 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-06175NNoneexplicitvkCmdDrawIndirectIf 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-06176NNoneexplicitvkCmdDrawIndirectIf 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-06177NNoneexplicitvkCmdDrawIndirectIf 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-06183YNoneexplicitvkCmdDrawIndirectIf 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-06184YNoneexplicitvkCmdDrawIndirectIf 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-04878YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-magFilter-04553YNoneexplicitvkCmdDrawIndirectIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawIndirectIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndirect-maintenance4-08602YNoneexplicitvkCmdDrawIndirectIf 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-09239YNoneexplicitvkCmdDrawIndirectIf 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-02688YNoneexplicitvkCmdDrawIndirectIf 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-04770YNoneexplicitvkCmdDrawIndirectIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawIndirectIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirectIf 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-07285YNoneexplicitvkCmdDrawIndirectIf 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-07286YNoneexplicitvkCmdDrawIndirectIf 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-07287YNoneexplicitvkCmdDrawIndirectIf 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-02710YNoneexplicitvkCmdDrawIndirectoffset must be a multiple of 4
VUID-vkCmdDrawIndirect-pColorAttachments-08963YNoneexplicitvkCmdDrawIndirectIf 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-07470YNoneexplicitvkCmdDrawIndirectIf 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-06186YNoneexplicitvkCmdDrawIndirectIf 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-08964YNoneexplicitvkCmdDrawIndirectIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawIndirectInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawIndirect-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawIndirectInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawIndirect-pDynamicStates-08715YNoneexplicitvkCmdDrawIndirectIf 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-08716YNoneexplicitvkCmdDrawIndirectIf 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-09370YNoneexplicitvkCmdDrawIndirectIf 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-09371YNoneexplicitvkCmdDrawIndirectIf 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-07935YNoneexplicitvkCmdDrawIndirectIf 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-06187YNoneexplicitvkCmdDrawIndirectIf 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-08965YNoneexplicitvkCmdDrawIndirectIf 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-04913YNoneexplicitvkCmdDrawIndirectIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndirectIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirectIf 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-08642YNoneexplicitvkCmdDrawIndirectIf 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-06709YNoneexplicitvkCmdDrawIndirectIf 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-07481YNoneexplicitvkCmdDrawIndirectIf 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-06708YNoneexplicitvkCmdDrawIndirectIf 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-07471YNoneexplicitvkCmdDrawIndirectIf 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-07474YNoneexplicitvkCmdDrawIndirectIf 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-07489NNoneexplicitvkCmdDrawIndirectIf 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-07494NNoneexplicitvkCmdDrawIndirectIf 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-09367YNoneexplicitvkCmdDrawIndirectIf 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-09236YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndirectIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawIndirectIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawIndirectIf 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-09213NNoneexplicitvkCmdDrawIndirectAny 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-02684YNoneexplicitvkCmdDrawIndirectThe 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-06198YNoneexplicitvkCmdDrawIndirectIf 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-renderpassYNoneimplicitvkCmdDrawIndirectThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirectIf 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-07484YNoneexplicitvkCmdDrawIndirectIf 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-07485YNoneexplicitvkCmdDrawIndirectIf 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-07486YNoneexplicitvkCmdDrawIndirectIf 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-07487YNoneexplicitvkCmdDrawIndirectIf 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-07936YNoneexplicitvkCmdDrawIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawIndirectIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawIndirectIf 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-07473YNoneexplicitvkCmdDrawIndirectIf 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-03418YNoneexplicitvkCmdDrawIndirectIf 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-09214NNoneexplicitvkCmdDrawIndirectIf 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-09233YNoneexplicitvkCmdDrawIndirectIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-shadingRateImage-09234YNoneexplicitvkCmdDrawIndirectIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndirectIf 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-04475NNoneexplicitvkCmdDrawIndirectIf 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-06481YNoneexplicitvkCmdDrawIndirectThe 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-07073YNoneexplicitvkCmdDrawIndirectIf 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-07495YNoneexplicitvkCmdDrawIndirectIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndirectIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndirectIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndirectIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirect-storageBuffers-06936YNoneexplicitvkCmdDrawIndirectIf 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-02685YNoneexplicitvkCmdDrawIndirectThe 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-06935YNoneexplicitvkCmdDrawIndirectIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawIndirectIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawIndirect-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawIndirectIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawIndirect-videocodingYNoneimplicitvkCmdDrawIndirectThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirect-viewMask-06178YNoneexplicitvkCmdDrawIndirectIf 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-07752YNoneexplicitvkCmdDrawIndirectIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawIndirect-viewportCount-03417YNoneexplicitvkCmdDrawIndirectIf 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-03419YNoneexplicitvkCmdDrawIndirectIf 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-04137NNoneexplicitvkCmdDrawIndirectIf 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-04138YNoneexplicitvkCmdDrawIndirectIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-viewportCount-04139NNoneexplicitvkCmdDrawIndirectIf 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-07492NNoneexplicitvkCmdDrawIndirectIf 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-07493NNoneexplicitvkCmdDrawIndirectIf 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-09421YNoneexplicitvkCmdDrawIndirectIf 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-06551YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07939YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08734YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndirectByteCountEXT-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawIndirectByteCountEXTIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndirectByteCountEXT-None-02691YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-02692YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-02693YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-02721YNoneexplicitvkCmdDrawIndirectByteCountEXTIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndirectByteCountEXT-None-04007YNoneexplicitvkCmdDrawIndirectByteCountEXTAll 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-04008YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04875YNoneexplicitvkCmdDrawIndirectByteCountEXTIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04876YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04877YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04879YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04914YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectByteCountEXT-None-06479YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06537YNoneexplicitvkCmdDrawIndirectByteCountEXTMemory 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-06539YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06550YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06666YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-06886YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06887YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07288NNoneexplicitvkCmdDrawIndirectByteCountEXTAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirectByteCountEXT-None-07469NNoneexplicitvkCmdDrawIndirectByteCountEXTInput 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-07619YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07620YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07621YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07622YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07623YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07624YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07625YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07626YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07627YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07628YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07629YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07630YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07631YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07632YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07633YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07634YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07635YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07636YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07637YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07638YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07639YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07640YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07641YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07642YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07643YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07644YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07645YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07646YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07647YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07648YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07649YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07748NNoneexplicitvkCmdDrawIndirectByteCountEXTIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirectByteCountEXT-None-07749YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07751YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndirectByteCountEXT-None-07831YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07832YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07833YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07834YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07835YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07836YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07837YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07838YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07839YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07840YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07841YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07842YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07843YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07844YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07845YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07846YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07847YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07848YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07849YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07850YNoneexplicitvkCmdDrawIndirectByteCountEXTIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07878YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07879YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07880YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07881YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07888YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08114YNoneexplicitvkCmdDrawIndirectByteCountEXTDescriptors 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-08115YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08116NNoneexplicitvkCmdDrawIndirectByteCountEXTDescriptors 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-08117YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08119NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08600YNoneexplicitvkCmdDrawIndirectByteCountEXTFor 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-08601NNoneexplicitvkCmdDrawIndirectByteCountEXTFor 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-08604NNoneexplicitvkCmdDrawIndirectByteCountEXTDescriptors 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-08605NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08606YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-08607YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08608YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirectByteCountEXT-None-08609YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08610YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08611YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08612YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08613YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08617YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08618YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08619YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08621YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08635NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08636YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object 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-08646YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08647YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08648YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08649YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08657YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08658YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08659YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08664YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08666YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08667YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08668YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08669YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08670YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08671YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08672YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08684YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08685YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08686YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08687YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08688YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08689YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08690YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08693YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08694YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08695YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08696YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08698YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08699YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08876YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndirectByteCountEXT-None-08877YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08878YNoneexplicitvkCmdDrawIndirectByteCountEXTAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndirectByteCountEXT-None-08879YNoneexplicitvkCmdDrawIndirectByteCountEXTAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndirectByteCountEXT-None-08885YNoneexplicitvkCmdDrawIndirectByteCountEXTThere 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-09000NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09001NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09002NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09003YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09116YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09203YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09211YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09363YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09364YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09365YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09366YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09368YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09369YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09462NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-None-09548YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawIndirectByteCountEXT-None-09549YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndirectByteCountEXT-None-09600NNoneexplicitvkCmdDrawIndirectByteCountEXTIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawIndirectByteCountEXT-None-09637YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDrawIndirectByteCountEXT-None-09642YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawIndirectByteCountEXT-None-09643YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawIndirectByteCountEXT-None-09650NNoneexplicitvkCmdDrawIndirectByteCountEXTIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-10068NNoneexplicitvkCmdDrawIndirectByteCountEXTFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06976NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06974NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09215NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09216NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09217NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06973NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06971NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06972NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06977NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06978NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04469YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08795YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08796YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07027YNoneexplicitvkCmdDrawIndirectByteCountEXTFor 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-07028YNoneexplicitvkCmdDrawIndirectByteCountEXTFor 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-07029YNoneexplicitvkCmdDrawIndirectByteCountEXTFor 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-07030YNoneexplicitvkCmdDrawIndirectByteCountEXTAny 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-07468NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04470YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04471YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04472YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04473YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04141NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04142NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07480YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08919YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08920YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07750YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04727YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06179YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06185YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09362YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09372YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-02646YNoneexplicitvkCmdDrawIndirectByteCountEXTcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-cmdpoolYNoneimplicitvkCmdDrawIndirectByteCountEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectByteCountEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectByteCountEXTcommandBuffer must be in the recording state
VUID-vkCmdDrawIndirectByteCountEXT-commonparentYNoneimplicitvkCmdDrawIndirectByteCountEXTBoth of commandBuffer, and counterBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-02290YNoneexplicitvkCmdDrawIndirectByteCountEXTcounterBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567YNoneexplicitvkCmdDrawIndirectByteCountEXTIf counterBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameterYNoneimplicitvkCmdDrawIndirectByteCountEXTcounterBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTcounterBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndirectByteCountEXT-counterOffset-09474YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTcounterOffset must be a multiple of 4
VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07491NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07490NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09212NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07500YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08910YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 an 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-08911YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 an 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-08912YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 an 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-08913YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08914YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08915YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08916YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08917YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08918YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-filterCubic-02694YNoneexplicitvkCmdDrawIndirectByteCountEXTAny 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-02695YNoneexplicitvkCmdDrawIndirectByteCountEXTAny 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-07476YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07477YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07478YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07479YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-02696YNoneexplicitvkCmdDrawIndirectByteCountEXTAny 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-07753YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08936YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08937YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06172NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06173NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06174NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06175NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06176NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06177NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06183YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06184YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04878YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09239YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-02688YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04770YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07285YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07286YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07287YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08963YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07470YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06186YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08964YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawIndirectByteCountEXTInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawIndirectByteCountEXT-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawIndirectByteCountEXTInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08716YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09370YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09371YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07935YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09461NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06187YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08965YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04913YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDrawIndirectByteCountEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-08642YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06709YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07481YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06708YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07471YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07474YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07489NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07494NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09367YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09236YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09213NNoneexplicitvkCmdDrawIndirectByteCountEXTAny 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-02684YNoneexplicitvkCmdDrawIndirectByteCountEXTThe 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-06198YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-renderpassYNoneimplicitvkCmdDrawIndirectByteCountEXTThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07484YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07485YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07486YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07487YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07936YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07473YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-03418YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09214NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09233YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04475NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06481YNoneexplicitvkCmdDrawIndirectByteCountEXTThe 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-07073YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07495YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-02685YNoneexplicitvkCmdDrawIndirectByteCountEXTThe 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.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTVkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288YNoneexplicitvkCmdDrawIndirectByteCountEXTThe implementation must support VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw
VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawIndirectByteCountEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawIndirectByteCountEXT-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawIndirectByteCountEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTvertexStride must be greater than 0 and less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride
VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-09475YNegativeTransformFeedback.DrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXTvertexStride must be a multiple of 4
VUID-vkCmdDrawIndirectByteCountEXT-videocodingYNoneimplicitvkCmdDrawIndirectByteCountEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07752YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-03419YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04137NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-04138YNoneexplicitvkCmdDrawIndirectByteCountEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07492NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-07493NNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-09421YNoneexplicitvkCmdDrawIndirectByteCountEXTIf 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-06551YNoneexplicitvkCmdDrawIndirectCountIf 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-07939YNoneexplicitvkCmdDrawIndirectCountIf 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-08734YNoneexplicitvkCmdDrawIndirectCountIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndirectCount-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawIndirectCountIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndirectCount-None-02691YNoneexplicitvkCmdDrawIndirectCountIf 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-02692YNoneexplicitvkCmdDrawIndirectCountIf 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-02693YNoneexplicitvkCmdDrawIndirectCountIf 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-02721YNoneexplicitvkCmdDrawIndirectCountIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndirectCount-None-04007YNoneexplicitvkCmdDrawIndirectCountAll 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-04008YNoneexplicitvkCmdDrawIndirectCountIf 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.DrawIndirectCountFeatureexplicitvkCmdDrawIndirectCountIf drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawIndirectCount-None-04875YNoneexplicitvkCmdDrawIndirectCountIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04876YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04877YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04879YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04914YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectCount-None-06479YNoneexplicitvkCmdDrawIndirectCountIf 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-06537YNoneexplicitvkCmdDrawIndirectCountMemory 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-06539YNoneexplicitvkCmdDrawIndirectCountIf 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-06550YNoneexplicitvkCmdDrawIndirectCountIf 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-06666YNoneexplicitvkCmdDrawIndirectCountIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-06886YNoneexplicitvkCmdDrawIndirectCountIf 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-06887YNoneexplicitvkCmdDrawIndirectCountIf 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-07288NNoneexplicitvkCmdDrawIndirectCountAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirectCount-None-07469NNoneexplicitvkCmdDrawIndirectCountInput 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-07619YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07620YNoneexplicitvkCmdDrawIndirectCountIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07621YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07622YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07623YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07624YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07625YNoneexplicitvkCmdDrawIndirectCountIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07626YNoneexplicitvkCmdDrawIndirectCountIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07627YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07628YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07629YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07630YNoneexplicitvkCmdDrawIndirectCountIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07631YNoneexplicitvkCmdDrawIndirectCountIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07632YNoneexplicitvkCmdDrawIndirectCountIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07633YNoneexplicitvkCmdDrawIndirectCountIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07634YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07635YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07636YNoneexplicitvkCmdDrawIndirectCountIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07637YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07638YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07639YNoneexplicitvkCmdDrawIndirectCountIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07640YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07641YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07642YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07643YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07644YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07645YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07646YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07647YNoneexplicitvkCmdDrawIndirectCountIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07648YNoneexplicitvkCmdDrawIndirectCountIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07649YNoneexplicitvkCmdDrawIndirectCountIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07748NNoneexplicitvkCmdDrawIndirectCountIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirectCount-None-07749YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07751YNoneexplicitvkCmdDrawIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndirectCount-None-07831YNoneexplicitvkCmdDrawIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07832YNoneexplicitvkCmdDrawIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07833YNoneexplicitvkCmdDrawIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07834YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07835YNoneexplicitvkCmdDrawIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07836YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07837YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07838YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07839YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07840YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07841YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07842YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07843YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07844YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07845YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07846YNoneexplicitvkCmdDrawIndirectCountIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07847YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07848YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07849YNoneexplicitvkCmdDrawIndirectCountIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07850YNoneexplicitvkCmdDrawIndirectCountIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07878YNoneexplicitvkCmdDrawIndirectCountIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07879YNoneexplicitvkCmdDrawIndirectCountIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07880YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07881YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07888YNoneexplicitvkCmdDrawIndirectCountIf 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-08114YNoneexplicitvkCmdDrawIndirectCountDescriptors 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-08115YNoneexplicitvkCmdDrawIndirectCountIf 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-08116NNoneexplicitvkCmdDrawIndirectCountDescriptors 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-08117YNoneexplicitvkCmdDrawIndirectCountIf 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-08119NNoneexplicitvkCmdDrawIndirectCountIf 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-08600YNoneexplicitvkCmdDrawIndirectCountFor 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-08601NNoneexplicitvkCmdDrawIndirectCountFor 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-08604NNoneexplicitvkCmdDrawIndirectCountDescriptors 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-08605NNoneexplicitvkCmdDrawIndirectCountIf 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.BadPipelineObjectexplicitvkCmdDrawIndirectCountIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectCount-None-08607YNoneexplicitvkCmdDrawIndirectCountIf 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-08608YNoneexplicitvkCmdDrawIndirectCountIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirectCount-None-08609YNoneexplicitvkCmdDrawIndirectCountIf 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-08610YNoneexplicitvkCmdDrawIndirectCountIf 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-08611YNoneexplicitvkCmdDrawIndirectCountIf 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-08612YNoneexplicitvkCmdDrawIndirectCountIf 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-08613YNoneexplicitvkCmdDrawIndirectCountIf 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-08617YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08618YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08619YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08621YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08635NNoneexplicitvkCmdDrawIndirectCountIf 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-08636YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawIndirectCountIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawIndirectCountIf a shader object 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-08646YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08647YNoneexplicitvkCmdDrawIndirectCountIf 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-08648YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08649YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08657YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08658YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08659YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08664YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08666YNoneexplicitvkCmdDrawIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08667YNoneexplicitvkCmdDrawIndirectCountIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08668YNoneexplicitvkCmdDrawIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08669YNoneexplicitvkCmdDrawIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08670YNoneexplicitvkCmdDrawIndirectCountIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08671YNoneexplicitvkCmdDrawIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08672YNoneexplicitvkCmdDrawIndirectCountIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08684YNoneexplicitvkCmdDrawIndirectCountIf 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-08685YNoneexplicitvkCmdDrawIndirectCountIf 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-08686YNoneexplicitvkCmdDrawIndirectCountIf 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-08687YNoneexplicitvkCmdDrawIndirectCountIf 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-08688YNoneexplicitvkCmdDrawIndirectCountIf 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-08689YNoneexplicitvkCmdDrawIndirectCountIf 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-08690YNoneexplicitvkCmdDrawIndirectCountIf 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-08693YNoneexplicitvkCmdDrawIndirectCountIf 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-08694YNoneexplicitvkCmdDrawIndirectCountIf 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-08695YNoneexplicitvkCmdDrawIndirectCountIf 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-08696YNoneexplicitvkCmdDrawIndirectCountIf 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-08698YNoneexplicitvkCmdDrawIndirectCountIf 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-08699YNoneexplicitvkCmdDrawIndirectCountIf 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-08876YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndirectCount-None-08877YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08878YNoneexplicitvkCmdDrawIndirectCountAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndirectCount-None-08879YNoneexplicitvkCmdDrawIndirectCountAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawIndirectCount-None-08885YNoneexplicitvkCmdDrawIndirectCountThere 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-09000NNoneexplicitvkCmdDrawIndirectCountIf 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-09001NNoneexplicitvkCmdDrawIndirectCountIf 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-09002NNoneexplicitvkCmdDrawIndirectCountIf 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-09003YNoneexplicitvkCmdDrawIndirectCountIf 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-09116YNoneexplicitvkCmdDrawIndirectCountIf 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-09203YNoneexplicitvkCmdDrawIndirectCountIf 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-09211YNoneexplicitvkCmdDrawIndirectCountIf 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-09363YNoneexplicitvkCmdDrawIndirectCountIf 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-09364YNoneexplicitvkCmdDrawIndirectCountIf 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-09365YNoneexplicitvkCmdDrawIndirectCountIf 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-09366YNoneexplicitvkCmdDrawIndirectCountIf 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-09368YNoneexplicitvkCmdDrawIndirectCountIf 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-09369YNoneexplicitvkCmdDrawIndirectCountIf 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-None-09548YNoneexplicitvkCmdDrawIndirectCountIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawIndirectCount-None-09549YNoneexplicitvkCmdDrawIndirectCountIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawIndirectCount-None-09600NNoneexplicitvkCmdDrawIndirectCountIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawIndirectCount-None-09637YNoneexplicitvkCmdDrawIndirectCountIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDrawIndirectCount-None-09642YNoneexplicitvkCmdDrawIndirectCountIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawIndirectCount-None-09643YNoneexplicitvkCmdDrawIndirectCountIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawIndirectCount-None-09650YNoneexplicitvkCmdDrawIndirectCountIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-10068NNoneexplicitvkCmdDrawIndirectCountFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirectCountIf 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-06976NNoneexplicitvkCmdDrawIndirectCountIf 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-06974NNoneexplicitvkCmdDrawIndirectCountIf 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-09215NNoneexplicitvkCmdDrawIndirectCountIf 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-09216NNoneexplicitvkCmdDrawIndirectCountIf 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-09217NNoneexplicitvkCmdDrawIndirectCountIf 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-06973NNoneexplicitvkCmdDrawIndirectCountIf 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-06971NNoneexplicitvkCmdDrawIndirectCountIf 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-06972NNoneexplicitvkCmdDrawIndirectCountIf 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-06977NNoneexplicitvkCmdDrawIndirectCountIf 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-06978NNoneexplicitvkCmdDrawIndirectCountIf 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-04469YNoneexplicitvkCmdDrawIndirectCountIf 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-08795YNoneexplicitvkCmdDrawIndirectCountIf 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-08796YNoneexplicitvkCmdDrawIndirectCountIf 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-07027YNoneexplicitvkCmdDrawIndirectCountFor 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-07028YNoneexplicitvkCmdDrawIndirectCountFor 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-07029YNoneexplicitvkCmdDrawIndirectCountFor 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-07030YNoneexplicitvkCmdDrawIndirectCountAny 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-07468NNoneexplicitvkCmdDrawIndirectCountIf 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-04470YNoneexplicitvkCmdDrawIndirectCountIf 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-04471YNoneexplicitvkCmdDrawIndirectCountIf 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-04472YNoneexplicitvkCmdDrawIndirectCountIf 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-04473YNoneexplicitvkCmdDrawIndirectCountIf 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-04141NNoneexplicitvkCmdDrawIndirectCountIf 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-04142NNoneexplicitvkCmdDrawIndirectCountIf 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-07480YNoneexplicitvkCmdDrawIndirectCountIf 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-08919YNoneexplicitvkCmdDrawIndirectCountIf 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-08920YNoneexplicitvkCmdDrawIndirectCountIf 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-07750YNoneexplicitvkCmdDrawIndirectCountIf 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-04727YNoneexplicitvkCmdDrawIndirectCountIf 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.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectCount-buffer-02709YNoneexplicitvkCmdDrawIndirectCountbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectCount-buffer-parameterYNoneimplicitvkCmdDrawIndirectCountbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndirectCountIf 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-06185YNoneexplicitvkCmdDrawIndirectCountIf 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-09362YNoneexplicitvkCmdDrawIndirectCountIf 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-09372YNoneexplicitvkCmdDrawIndirectCountIf 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-02707YNoneexplicitvkCmdDrawIndirectCountIf 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-02711YNoneexplicitvkCmdDrawIndirectCountcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndirectCountThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirectCount-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectCountcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirectCount-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectCountcommandBuffer must be in the recording state
VUID-vkCmdDrawIndirectCount-commonparentYNoneimplicitvkCmdDrawIndirectCountEach of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawIndirectCountIf 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.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountIf countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectCount-countBuffer-02715YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcountBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectCount-countBuffer-02717YNegativeGpuAVIndirectBuffer.DrawCountDeviceLimitexplicitvkCmdDrawIndirectCountThe count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndirectCount-countBuffer-03121YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawIndirectCountIf 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.DrawCountexplicitvkCmdDrawIndirectCountIf 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-parameterYNoneimplicitvkCmdDrawIndirectCountcountBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectCount-countBufferOffset-02716YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountcountBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndirectCount-countBufferOffset-04129YNegativeCommand.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCount(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndirectCountIf 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-07491NNoneexplicitvkCmdDrawIndirectCountIf 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-07490NNoneexplicitvkCmdDrawIndirectCountIf 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-09212NNoneexplicitvkCmdDrawIndirectCountIf 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-07500YNoneexplicitvkCmdDrawIndirectCountIf 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-08910YNoneexplicitvkCmdDrawIndirectCountIf 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 an 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-08911YNoneexplicitvkCmdDrawIndirectCountIf 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 an 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-08912YNoneexplicitvkCmdDrawIndirectCountIf 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 an 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-08913YNoneexplicitvkCmdDrawIndirectCountIf 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-08914YNoneexplicitvkCmdDrawIndirectCountIf 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-08915YNoneexplicitvkCmdDrawIndirectCountIf 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-08916YNoneexplicitvkCmdDrawIndirectCountIf 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-08917YNoneexplicitvkCmdDrawIndirectCountIf 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-08918YNoneexplicitvkCmdDrawIndirectCountIf 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-filterCubic-02694YNoneexplicitvkCmdDrawIndirectCountAny 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-02695YNoneexplicitvkCmdDrawIndirectCountAny 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-07476YNoneexplicitvkCmdDrawIndirectCountIf 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-07477YNoneexplicitvkCmdDrawIndirectCountIf 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-07478YNoneexplicitvkCmdDrawIndirectCountIf 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-07479YNoneexplicitvkCmdDrawIndirectCountIf 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-02696YNoneexplicitvkCmdDrawIndirectCountAny 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-07753YNoneexplicitvkCmdDrawIndirectCountIf 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-08936YNoneexplicitvkCmdDrawIndirectCountIf 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-08937YNoneexplicitvkCmdDrawIndirectCountIf 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-06172NNoneexplicitvkCmdDrawIndirectCountIf 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-06173NNoneexplicitvkCmdDrawIndirectCountIf 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-06174NNoneexplicitvkCmdDrawIndirectCountIf 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-06175NNoneexplicitvkCmdDrawIndirectCountIf 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-06176NNoneexplicitvkCmdDrawIndirectCountIf 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-06177NNoneexplicitvkCmdDrawIndirectCountIf 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-06183YNoneexplicitvkCmdDrawIndirectCountIf 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-06184YNoneexplicitvkCmdDrawIndirectCountIf 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-04878YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-magFilter-04553YNoneexplicitvkCmdDrawIndirectCountIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawIndirectCountIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndirectCount-maintenance4-08602YNoneexplicitvkCmdDrawIndirectCountIf 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-03111YNoneexplicitvkCmdDrawIndirectCountIf 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-09239YNoneexplicitvkCmdDrawIndirectCountIf 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-02688YNoneexplicitvkCmdDrawIndirectCountIf 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-04770YNoneexplicitvkCmdDrawIndirectCountIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawIndirectCountIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirectCountIf 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-07285YNoneexplicitvkCmdDrawIndirectCountIf 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-07286YNoneexplicitvkCmdDrawIndirectCountIf 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-07287YNoneexplicitvkCmdDrawIndirectCountIf 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.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountoffset must be a multiple of 4
VUID-vkCmdDrawIndirectCount-pColorAttachments-08963YNoneexplicitvkCmdDrawIndirectCountIf 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-07470YNoneexplicitvkCmdDrawIndirectCountIf 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-06186YNoneexplicitvkCmdDrawIndirectCountIf 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-08964YNoneexplicitvkCmdDrawIndirectCountIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawIndirectCountInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawIndirectCount-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawIndirectCountInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawIndirectCount-pDynamicStates-08715YNoneexplicitvkCmdDrawIndirectCountIf 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-08716YNoneexplicitvkCmdDrawIndirectCountIf 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-09370YNoneexplicitvkCmdDrawIndirectCountIf 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-09371YNoneexplicitvkCmdDrawIndirectCountIf 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-07935YNoneexplicitvkCmdDrawIndirectCountIf 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-06187YNoneexplicitvkCmdDrawIndirectCountIf 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-08965YNoneexplicitvkCmdDrawIndirectCountIf 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-04913YNoneexplicitvkCmdDrawIndirectCountIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawIndirectCountIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirectCountIf 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-08642YNoneexplicitvkCmdDrawIndirectCountIf 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-06709YNoneexplicitvkCmdDrawIndirectCountIf 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-07481YNoneexplicitvkCmdDrawIndirectCountIf 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-06708YNoneexplicitvkCmdDrawIndirectCountIf 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-07471YNoneexplicitvkCmdDrawIndirectCountIf 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-07474YNoneexplicitvkCmdDrawIndirectCountIf 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-07489NNoneexplicitvkCmdDrawIndirectCountIf 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-07494NNoneexplicitvkCmdDrawIndirectCountIf 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-09367YNoneexplicitvkCmdDrawIndirectCountIf 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-09236YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawIndirectCountIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawIndirectCountIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawIndirectCountIf 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-09213NNoneexplicitvkCmdDrawIndirectCountAny 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-02684YNoneexplicitvkCmdDrawIndirectCountThe 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-06198YNoneexplicitvkCmdDrawIndirectCountIf 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-renderpassYNoneimplicitvkCmdDrawIndirectCountThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirectCountIf 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-07484YNoneexplicitvkCmdDrawIndirectCountIf 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-07485YNoneexplicitvkCmdDrawIndirectCountIf 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-07486YNoneexplicitvkCmdDrawIndirectCountIf 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-07487YNoneexplicitvkCmdDrawIndirectCountIf 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-07936YNoneexplicitvkCmdDrawIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawIndirectCountIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawIndirectCountIf 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-07473YNoneexplicitvkCmdDrawIndirectCountIf 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-03418YNoneexplicitvkCmdDrawIndirectCountIf 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-09214NNoneexplicitvkCmdDrawIndirectCountIf 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-09233YNoneexplicitvkCmdDrawIndirectCountIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-shadingRateImage-09234YNoneexplicitvkCmdDrawIndirectCountIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawIndirectCountIf 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-04475NNoneexplicitvkCmdDrawIndirectCountIf 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-06481YNoneexplicitvkCmdDrawIndirectCountThe 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-07073YNoneexplicitvkCmdDrawIndirectCountIf 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-07495YNoneexplicitvkCmdDrawIndirectCountIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496YNoneexplicitvkCmdDrawIndirectCountIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497YNoneexplicitvkCmdDrawIndirectCountIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498YNoneexplicitvkCmdDrawIndirectCountIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirectCount-storageBuffers-06936YNoneexplicitvkCmdDrawIndirectCountIf 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.DrawIndirectCountKHRexplicitvkCmdDrawIndirectCountstride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)
VUID-vkCmdDrawIndirectCount-subpass-02685YNoneexplicitvkCmdDrawIndirectCountThe 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-06935YNoneexplicitvkCmdDrawIndirectCountIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawIndirectCountIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawIndirectCount-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawIndirectCountIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawIndirectCount-videocodingYNoneimplicitvkCmdDrawIndirectCountThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirectCount-viewMask-06178YNoneexplicitvkCmdDrawIndirectCountIf 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-07752YNoneexplicitvkCmdDrawIndirectCountIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawIndirectCount-viewportCount-03417YNoneexplicitvkCmdDrawIndirectCountIf 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-03419YNoneexplicitvkCmdDrawIndirectCountIf 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-04137NNoneexplicitvkCmdDrawIndirectCountIf 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-04138YNoneexplicitvkCmdDrawIndirectCountIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-viewportCount-04139NNoneexplicitvkCmdDrawIndirectCountIf 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-07492NNoneexplicitvkCmdDrawIndirectCountIf 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-07493NNoneexplicitvkCmdDrawIndirectCountIf 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-09421YNoneexplicitvkCmdDrawIndirectCountIf 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-06551YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawMeshTasksEXTIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksEXTThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model
VUID-vkCmdDrawMeshTasksEXT-None-02691YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-02692YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-02693YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04876YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-04877YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-06479YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06537YNoneexplicitvkCmdDrawMeshTasksEXTMemory 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-06539YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06550YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06666YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-06886YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06887YNoneexplicitvkCmdDrawMeshTasksEXTIf 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.MeshIncompatibleActiveQueriesexplicitvkCmdDrawMeshTasksEXTTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksEXT-None-07075YNegativeMesh.MeshIncompatibleActiveQueriesexplicitvkCmdDrawMeshTasksEXTPrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksEXTAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksEXTInput 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-07619YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07620YNoneexplicitvkCmdDrawMeshTasksEXTIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07621YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07622YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07623YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07624YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07625YNoneexplicitvkCmdDrawMeshTasksEXTIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07626YNoneexplicitvkCmdDrawMeshTasksEXTIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07627YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07628YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07629YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07630YNoneexplicitvkCmdDrawMeshTasksEXTIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07631YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07632YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07633YNoneexplicitvkCmdDrawMeshTasksEXTIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07634YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07635YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07636YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07637YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07638YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07639YNoneexplicitvkCmdDrawMeshTasksEXTIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07640YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07641YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07642YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07643YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07644YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07645YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07646YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07647YNoneexplicitvkCmdDrawMeshTasksEXTIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07648YNoneexplicitvkCmdDrawMeshTasksEXTIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07649YNoneexplicitvkCmdDrawMeshTasksEXTIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksEXTIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksEXT-None-07749YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07751YNoneexplicitvkCmdDrawMeshTasksEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksEXT-None-07831YNoneexplicitvkCmdDrawMeshTasksEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07832YNoneexplicitvkCmdDrawMeshTasksEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07833YNoneexplicitvkCmdDrawMeshTasksEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07834YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07835YNoneexplicitvkCmdDrawMeshTasksEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07836YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07837YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07838YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07839YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07840YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07841YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07843YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07844YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07845YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07846YNoneexplicitvkCmdDrawMeshTasksEXTIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07847YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07848YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07849YNoneexplicitvkCmdDrawMeshTasksEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07850YNoneexplicitvkCmdDrawMeshTasksEXTIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07878YNoneexplicitvkCmdDrawMeshTasksEXTIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07879YNoneexplicitvkCmdDrawMeshTasksEXTIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07880YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07881YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07888YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08114YNoneexplicitvkCmdDrawMeshTasksEXTDescriptors 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-08115YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08116NNoneexplicitvkCmdDrawMeshTasksEXTDescriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08119NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08600YNoneexplicitvkCmdDrawMeshTasksEXTFor 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-08601NNoneexplicitvkCmdDrawMeshTasksEXTFor 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-08604NNoneexplicitvkCmdDrawMeshTasksEXTDescriptors 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-08605NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08606YNoneexplicitvkCmdDrawMeshTasksEXTIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksEXT-None-08607YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08608YNoneexplicitvkCmdDrawMeshTasksEXTIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksEXT-None-08609YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08610YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08611YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08612YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08613YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08617YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08618YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08619YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08621YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08635NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08636YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawMeshTasksEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object 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-08646YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08647YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08648YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08649YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08657YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08658YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08659YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08664YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08666YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08667YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08668YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08669YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08670YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08671YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08672YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08684YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08685YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08686YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08687YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08688YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08689YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08690YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08693YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08694YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08695YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08696YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08698YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08699YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08876YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksEXT-None-08877YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08878YNoneexplicitvkCmdDrawMeshTasksEXTAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksEXT-None-08879YNoneexplicitvkCmdDrawMeshTasksEXTAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksEXT-None-09000NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09001NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09002NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09003YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09116YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09211YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09363YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09364YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09365YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09366YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09368YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09369YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-None-09548YNoneexplicitvkCmdDrawMeshTasksEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMeshTasksEXT-None-09549YNoneexplicitvkCmdDrawMeshTasksEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksEXT-None-09600NNoneexplicitvkCmdDrawMeshTasksEXTIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMeshTasksEXT-None-09642YNoneexplicitvkCmdDrawMeshTasksEXTIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawMeshTasksEXT-None-09643YNoneexplicitvkCmdDrawMeshTasksEXTIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawMeshTasksEXT-None-09650YNoneexplicitvkCmdDrawMeshTasksEXTIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-10068NNoneexplicitvkCmdDrawMeshTasksEXTFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06976NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06974NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09215NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09216NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09217NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06973NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06971NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06972NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06977NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06978NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04469YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08795YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08796YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07027YNoneexplicitvkCmdDrawMeshTasksEXTFor 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-07028YNoneexplicitvkCmdDrawMeshTasksEXTFor 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-07029YNoneexplicitvkCmdDrawMeshTasksEXTFor 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-07030YNoneexplicitvkCmdDrawMeshTasksEXTAny 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-07468NNoneexplicitvkCmdDrawMeshTasksEXTIf 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.ImageInt64Mesh32explicitvkCmdDrawMeshTasksEXTIf 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-04471YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04472YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04473YNoneexplicitvkCmdDrawMeshTasksEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksEXTIf 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-07326NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07327NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07328NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07329NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04141NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04142NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07480YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08919YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08920YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07750YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04727YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06179YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06185YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09362YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09372YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-02707YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-cmdpoolYNoneimplicitvkCmdDrawMeshTasksEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksEXTcommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07488NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07491NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07490NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09212NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08910YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 an 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-08911YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 an 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-08912YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 an 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-08913YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08914YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08915YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08916YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08917YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08918YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksEXTAny 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-02695YNoneexplicitvkCmdDrawMeshTasksEXTAny 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-07476YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07477YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07478YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07479YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-02696YNoneexplicitvkCmdDrawMeshTasksEXTAny 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-07753YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06172NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06173NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06174NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06175NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06176NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06177NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06183YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06184YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04878YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawMeshTasksEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09239YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-02688YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04770YNoneexplicitvkCmdDrawMeshTasksEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawMeshTasksEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07285YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07286YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07287YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08963YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07470YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06186YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08964YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawMeshTasksEXTInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawMeshTasksEXT-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawMeshTasksEXTInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08716YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09370YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09371YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07935YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06187YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08965YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09238YNoneexplicitvkCmdDrawMeshTasksEXTIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksEXTThe 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-04552YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-08642YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06709YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07481YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06708YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07471YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07474YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07489NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07494NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09367YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09236YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawMeshTasksEXTIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09213NNoneexplicitvkCmdDrawMeshTasksEXTAny 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-02684YNoneexplicitvkCmdDrawMeshTasksEXTThe 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-06198YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-renderpassYNoneimplicitvkCmdDrawMeshTasksEXTThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07484YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07485YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07486YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07487YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07936YNoneexplicitvkCmdDrawMeshTasksEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawMeshTasksEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawMeshTasksEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawMeshTasksEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07473YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-03418YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09214NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09233YNoneexplicitvkCmdDrawMeshTasksEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04475NNoneexplicitvkCmdDrawMeshTasksEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksEXTThe 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-07073YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07495YNoneexplicitvkCmdDrawMeshTasksEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksEXTIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksEXTIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksEXT-storageBuffers-06936YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-02685YNoneexplicitvkCmdDrawMeshTasksEXTThe 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-06935YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawMeshTasksEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawMeshTasksEXT-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawMeshTasksEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawMeshTasksEXT-videocodingYNoneimplicitvkCmdDrawMeshTasksEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksEXT-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07752YNoneexplicitvkCmdDrawMeshTasksEXTIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawMeshTasksEXT-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-03419YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04137NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-04138YNoneexplicitvkCmdDrawMeshTasksEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07492NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-07493NNoneexplicitvkCmdDrawMeshTasksEXTIf 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-09421YNoneexplicitvkCmdDrawMeshTasksEXTIf 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-06551YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectCountEXTThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-02692YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-02693YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04445NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06537YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTMemory 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-06539YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06550YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06666YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06887YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07074YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07075YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTPrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTInput 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-07619YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07831YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07832YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07833YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07834YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07848YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07850YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07878YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07879YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07880YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07888YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08114YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTDescriptors 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-08115YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08116NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTDescriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08119NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08600YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTFor 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-08601NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTFor 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-08604NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTDescriptors 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-08605NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08606YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08608YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08609YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08610YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08611YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08612YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08613YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08617YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08635NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08636YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object 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-08646YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08647YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08648YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08649YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08657YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08658YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08659YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08664YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08684YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08685YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08686YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08687YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08688YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08689YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08690YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08693YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08694YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08695YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08696YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08698YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08699YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08876YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09000NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09001NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09002NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09003YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09116YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09211YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09363YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09364YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09365YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09366YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09368YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09369YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-None-09548YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09549YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09600NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09642YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09643YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09650NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-10068NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06976NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06974NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09215NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09216NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09217NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06973NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06971NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06972NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06977NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06978NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04469YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08795YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08796YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07027YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTFor 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-07028YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTFor 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-07029YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTFor 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-07030YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTAny 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-07468NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04470YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04471YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04472YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04473YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04141NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04142NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07480YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08919YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08920YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07750YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04727YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-02708YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06185YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09362YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09372YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-02707YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-02711YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTEach of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXTIf countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715YNegativeMesh.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXTcountBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717YNegativeGpuAVIndirectBuffer.DrawCountDeviceLimitexplicitvkCmdDrawMeshTasksIndirectCountEXTThe count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098YNegativeGpuAVIndirectBuffer.DrawCountexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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.DrawCountexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTcountBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTcountBufferOffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07491NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07490NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09212NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08910YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 an 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-08911YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 an 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-08912YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 an 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-08913YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08914YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08915YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08916YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08917YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08918YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTAny 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-02695YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTAny 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-07476YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07477YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07478YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07479YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-02696YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTAny 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-07753YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06172NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06173NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06174NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06175NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06176NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06177NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06183YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06184YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04878YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09239YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-02688YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04770YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07285YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07286YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07287YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-02710NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXToffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07470YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06186YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08964YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08716YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09370YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09371YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07935YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06187YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08965YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09238YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTThe 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-04552YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-08642YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06709YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07481YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06708YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07471YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07474YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07489NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07494NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09367YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09236YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09213NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTAny 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-02684YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTThe 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-06198YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07484YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07485YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07486YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07487YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07936YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07473YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-03418YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09214NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09233YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04475NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectCountEXTThe 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-07073YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07495YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXTstride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandEXT)
VUID-vkCmdDrawMeshTasksIndirectCountEXT-subpass-02685YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTThe 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-06935YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawMeshTasksIndirectCountEXT-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocodingYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07752YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-03419YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04137NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-04138YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07492NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-07493NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-09421YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXTIf 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-06551YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectCountNVThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02692YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02693YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04445NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06537YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVMemory 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-06539YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06550YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06666YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06887YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07074YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVPrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVInput 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-07619YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07831YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07832YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07833YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07834YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07848YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07849YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07850YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07878YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07879YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07880YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07881YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07888YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08114YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVDescriptors 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-08115YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08116NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVDescriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08119NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08600YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVFor 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-08601NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVFor 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-08604NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVDescriptors 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-08605NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08606YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08608YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08609YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08610YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08611YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08612YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08613YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08617YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08619YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08621YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08635NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08636YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object 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-08646YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08647YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08648YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08649YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08657YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08658YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08659YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08664YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08666YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08669YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08684YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08685YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08686YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08687YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08688YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08689YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08690YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08693YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08694YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08695YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08696YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08698YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08699YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08876YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09000NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09001NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09002NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09003YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09116YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09211YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09363YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09364YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09365YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09366YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09368YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09369YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-None-09548YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09549YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09600NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09642YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09643YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09650YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-10068NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06976NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06974NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09215NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09216NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09217NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06973NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06971NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06972NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06977NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06978NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04469YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08795YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08796YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07027YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVFor 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-07028YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVFor 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-07029YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVFor 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-07030YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVAny 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-07468NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04470YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04471YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04472YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04473YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04141NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04142NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07480YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08919YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08920YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07750YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04727YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02708YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06185YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09362YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09372YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02707YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02711YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVEach of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02191YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02192YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02714YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcountBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVThe count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVcountBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVcountBufferOffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07491NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07490NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09212NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08910YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 an 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-08911YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 an 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-08912YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 an 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-08913YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08914YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08915YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08916YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08917YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08918YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVAny 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-02695YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVAny 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-07476YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07477YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07478YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07479YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02696YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVAny 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-07753YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06172NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06173NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06174NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06175NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06176NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06177NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06183YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06184YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04878YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02183YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09239YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02688YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04770YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07285YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07286YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07287YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02710YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVoffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07470YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06186YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08964YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08716YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09370YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09371YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07935YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06187YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08965YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09238YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVThe 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-04552YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-08642YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06709YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07481YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06708YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07471YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07474YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07489NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07494NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09367YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09236YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09213NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVAny 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-02684YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVThe 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-06198YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07484YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07485YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07486YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07487YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07936YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07473YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-03418YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09214NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09233YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04475NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectCountNVThe 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-07073YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07495YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-02182YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVstride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)
VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVThe 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-06935YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawMeshTasksIndirectCountNV-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawMeshTasksIndirectCountNV-videocodingYNoneimplicitvkCmdDrawMeshTasksIndirectCountNVThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07752YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-03419YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04137NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-04138YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07492NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-07493NNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-09421YNoneexplicitvkCmdDrawMeshTasksIndirectCountNVIf 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-06551YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT Execution Model
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02692YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02693YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04876YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06537YNoneexplicitvkCmdDrawMeshTasksIndirectEXTMemory 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-06539YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06550YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06666YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06887YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07074YNoneexplicitvkCmdDrawMeshTasksIndirectEXTTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07075YNoneexplicitvkCmdDrawMeshTasksIndirectEXTPrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectEXTAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectEXTInput 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-07619YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07831YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07832YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07833YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07834YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07848YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07849YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07850YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07878YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07879YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07880YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07881YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07888YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08114YNoneexplicitvkCmdDrawMeshTasksIndirectEXTDescriptors 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-08115YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08116NNoneexplicitvkCmdDrawMeshTasksIndirectEXTDescriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08119NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08600YNoneexplicitvkCmdDrawMeshTasksIndirectEXTFor 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-08601NNoneexplicitvkCmdDrawMeshTasksIndirectEXTFor 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-08604NNoneexplicitvkCmdDrawMeshTasksIndirectEXTDescriptors 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-08605NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08606YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08608YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08609YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08610YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08611YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08612YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08613YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08617YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08619YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08621YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08635NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08636YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object 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-08646YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08647YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08648YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08649YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08657YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08658YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08659YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08664YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08666YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08669YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08684YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08685YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08686YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08687YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08688YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08689YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08690YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08693YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08694YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08695YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08696YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08698YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08699YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08876YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878YNoneexplicitvkCmdDrawMeshTasksIndirectEXTAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879YNoneexplicitvkCmdDrawMeshTasksIndirectEXTAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09000NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09001NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09002NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09003YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09116YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09211YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09363YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09364YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09365YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09366YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09368YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09369YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-None-09548YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09549YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09600NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09642YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09643YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawMeshTasksIndirectEXT-None-09650NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-10068NNoneexplicitvkCmdDrawMeshTasksIndirectEXTFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06976NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06974NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09215NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09216NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09217NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06973NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06971NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06972NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06977NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06978NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04469YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08795YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08796YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07027YNoneexplicitvkCmdDrawMeshTasksIndirectEXTFor 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-07028YNoneexplicitvkCmdDrawMeshTasksIndirectEXTFor 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-07029YNoneexplicitvkCmdDrawMeshTasksIndirectEXTFor 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-07030YNoneexplicitvkCmdDrawMeshTasksIndirectEXTAny 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-07468NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04470YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04471YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04472YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04473YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04141NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04142NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07480YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08919YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08920YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07750YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04727YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02708YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectEXTbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectEXTbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06185YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09362YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09372YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02707YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02711YNoneexplicitvkCmdDrawMeshTasksIndirectEXTcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectEXTcommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectEXT-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectEXTBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07488NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07491NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07490NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09212NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719YNegativeMesh.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTdrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088YNegativeMesh.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTIf 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.MultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08910YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 an 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-08911YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 an 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-08912YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 an 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-08913YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08914YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08915YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08916YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08917YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08918YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectEXTAny 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-02695YNoneexplicitvkCmdDrawMeshTasksIndirectEXTAny 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-07476YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07477YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07478YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07479YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02696YNoneexplicitvkCmdDrawMeshTasksIndirectEXTAny 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-07753YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06172NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06173NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06174NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06175NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06176NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06177NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06183YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06184YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04878YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09239YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02688YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04770YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07285YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07286YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07287YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02710NNoneexplicitvkCmdDrawMeshTasksIndirectEXToffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectEXT-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07470YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06186YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08964YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawMeshTasksIndirectEXTInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawMeshTasksIndirectEXTInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08716YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09370YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09371YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07935YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06187YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08965YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09238YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectEXTThe 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-04552YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-08642YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06709YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07481YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06708YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07471YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07474YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07489NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07494NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09367YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09236YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09213NNoneexplicitvkCmdDrawMeshTasksIndirectEXTAny 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-02684YNoneexplicitvkCmdDrawMeshTasksIndirectEXTThe 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-06198YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectEXTThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07484YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07485YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07486YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07487YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07936YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07473YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-03418YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09214NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09233YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04475NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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.DrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXTThe 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-07073YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07495YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-02685YNoneexplicitvkCmdDrawMeshTasksIndirectEXTThe 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-06935YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawMeshTasksIndirectEXT-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawMeshTasksIndirectEXT-videocodingYNoneimplicitvkCmdDrawMeshTasksIndirectEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectEXT-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07752YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-03419YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04137NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-04138YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07492NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-07493NNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-09421YNoneexplicitvkCmdDrawMeshTasksIndirectEXTIf 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-06551YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectNVThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model
VUID-vkCmdDrawMeshTasksIndirectNV-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-02692YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-02693YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04876YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06537YNoneexplicitvkCmdDrawMeshTasksIndirectNVMemory 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-06539YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06550YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06666YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06887YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07074YNoneexplicitvkCmdDrawMeshTasksIndirectNVTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectNV-None-07075YNoneexplicitvkCmdDrawMeshTasksIndirectNVPrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectNV-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectNVAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectNV-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectNVInput 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-07619YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectNV-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksIndirectNV-None-07831YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07832YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07833YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07834YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07835YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07836YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07837YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07838YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07839YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07840YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07841YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07843YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07844YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07845YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07846YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07847YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07848YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07849YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07850YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07878YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07879YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07880YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07881YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07888YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08114YNoneexplicitvkCmdDrawMeshTasksIndirectNVDescriptors 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-08115YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08116NNoneexplicitvkCmdDrawMeshTasksIndirectNVDescriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08119NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08600YNoneexplicitvkCmdDrawMeshTasksIndirectNVFor 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-08601NNoneexplicitvkCmdDrawMeshTasksIndirectNVFor 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-08604NNoneexplicitvkCmdDrawMeshTasksIndirectNVDescriptors 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-08605NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08607YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08608YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectNV-None-08609YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08610YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08611YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08612YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08613YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08617YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08618YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08619YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08621YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08635NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08636YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object 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-08646YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08647YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08648YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08649YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08657YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08658YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08659YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08664YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08666YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08667YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08668YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08669YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08670YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08671YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08672YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08684YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08685YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08686YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08687YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08688YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08689YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08690YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08693YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08694YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08695YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08696YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08698YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08699YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08876YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectNV-None-08877YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08878YNoneexplicitvkCmdDrawMeshTasksIndirectNVAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectNV-None-08879YNoneexplicitvkCmdDrawMeshTasksIndirectNVAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectNV-None-09000NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09001NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09002NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09003YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09116YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09211YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09363YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09364YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09365YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09366YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09368YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09369YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-None-09548YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-None-09549YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectNV-None-09600NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMeshTasksIndirectNV-None-09642YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectNV-None-09643YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawMeshTasksIndirectNV-None-09650YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-10068NNoneexplicitvkCmdDrawMeshTasksIndirectNVFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06976NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06974NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09215NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09216NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09217NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06973NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06971NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06972NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06977NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06978NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04469YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08795YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08796YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07027YNoneexplicitvkCmdDrawMeshTasksIndirectNVFor 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-07028YNoneexplicitvkCmdDrawMeshTasksIndirectNVFor 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-07029YNoneexplicitvkCmdDrawMeshTasksIndirectNVFor 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-07030YNoneexplicitvkCmdDrawMeshTasksIndirectNVAny 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-07468NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04470YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04471YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04472YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04473YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04141NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04142NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07480YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08919YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08920YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07750YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04727YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectNVbuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectNVbuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06185YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09362YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09372YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-02707YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-02711YNoneexplicitvkCmdDrawMeshTasksIndirectNVcommandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectNVcommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectNV-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectNVBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectNV-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07488NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07491NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07490NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09212NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVIf 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.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectNVIf drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157YNegativeMesh.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVIf 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.BasicUsageNVexplicitvkCmdDrawMeshTasksIndirectNVIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719YNoneexplicitvkCmdDrawMeshTasksIndirectNVdrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08910YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 an 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-08911YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 an 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-08912YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 an 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-08913YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08914YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08915YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08916YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08917YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08918YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectNVAny 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-02695YNoneexplicitvkCmdDrawMeshTasksIndirectNVAny 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-07476YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07477YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07478YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07479YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-02696YNoneexplicitvkCmdDrawMeshTasksIndirectNVAny 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-07753YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06172NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06173NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06174NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06175NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06176NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06177NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06183YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06184YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04878YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09239YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-02688YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04770YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07285YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07286YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07287YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-02710YNoneexplicitvkCmdDrawMeshTasksIndirectNVoffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectNV-pColorAttachments-08963YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07470YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06186YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08964YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawMeshTasksIndirectNVInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawMeshTasksIndirectNV-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawMeshTasksIndirectNVInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08716YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09370YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09371YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07935YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06187YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08965YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09238YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectNVThe 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-04552YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-08642YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06709YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07481YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06708YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07471YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07474YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07489NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07494NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09367YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09236YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09213NNoneexplicitvkCmdDrawMeshTasksIndirectNVAny 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-02684YNoneexplicitvkCmdDrawMeshTasksIndirectNVThe 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-06198YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectNVThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07484YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07485YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07486YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07487YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07936YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07473YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-03418YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09214NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09233YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04475NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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.DrawCmdsNVexplicitvkCmdDrawMeshTasksIndirectNVThe 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-07073YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07495YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-02685YNoneexplicitvkCmdDrawMeshTasksIndirectNVThe 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-06935YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawMeshTasksIndirectNV-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawMeshTasksIndirectNV-videocodingYNoneimplicitvkCmdDrawMeshTasksIndirectNVThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07752YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-03419YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04137NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-04138YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07492NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-07493NNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-09421YNoneexplicitvkCmdDrawMeshTasksIndirectNVIf 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-06551YNoneexplicitvkCmdDrawMeshTasksNVIf 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-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawMeshTasksNVIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksNV-MeshNV-07080YNegativeMesh.DrawCmdsNVexplicitvkCmdDrawMeshTasksNVThe current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV Execution Model
VUID-vkCmdDrawMeshTasksNV-None-02691YNoneexplicitvkCmdDrawMeshTasksNVIf 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-02692YNoneexplicitvkCmdDrawMeshTasksNVIf 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-02693YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04876YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-04877YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-06479YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06537YNoneexplicitvkCmdDrawMeshTasksNVMemory 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-06539YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06550YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06666YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-06886YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06887YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07074YNoneexplicitvkCmdDrawMeshTasksNVTransform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksNV-None-07075YNoneexplicitvkCmdDrawMeshTasksNVPrimitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksNV-None-07288NNoneexplicitvkCmdDrawMeshTasksNVAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksNV-None-07469NNoneexplicitvkCmdDrawMeshTasksNVInput 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-07619YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07620YNoneexplicitvkCmdDrawMeshTasksNVIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07621YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07622YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07623YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07624YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07625YNoneexplicitvkCmdDrawMeshTasksNVIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07626YNoneexplicitvkCmdDrawMeshTasksNVIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07627YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07628YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07629YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07630YNoneexplicitvkCmdDrawMeshTasksNVIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07631YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07632YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07633YNoneexplicitvkCmdDrawMeshTasksNVIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07634YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07635YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07636YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07637YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07638YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07639YNoneexplicitvkCmdDrawMeshTasksNVIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07640YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07641YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07642YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07643YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07644YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07645YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07646YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07647YNoneexplicitvkCmdDrawMeshTasksNVIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07648YNoneexplicitvkCmdDrawMeshTasksNVIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07649YNoneexplicitvkCmdDrawMeshTasksNVIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07748NNoneexplicitvkCmdDrawMeshTasksNVIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksNV-None-07749YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07751YNoneexplicitvkCmdDrawMeshTasksNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMeshTasksNV-None-07831YNoneexplicitvkCmdDrawMeshTasksNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07832YNoneexplicitvkCmdDrawMeshTasksNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07833YNoneexplicitvkCmdDrawMeshTasksNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07834YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07835YNoneexplicitvkCmdDrawMeshTasksNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07836YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07837YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07838YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07839YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07840YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07841YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07843YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07844YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07845YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07846YNoneexplicitvkCmdDrawMeshTasksNVIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07847YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07848YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07849YNoneexplicitvkCmdDrawMeshTasksNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07850YNoneexplicitvkCmdDrawMeshTasksNVIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07878YNoneexplicitvkCmdDrawMeshTasksNVIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07879YNoneexplicitvkCmdDrawMeshTasksNVIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07880YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07881YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07888YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08114YNoneexplicitvkCmdDrawMeshTasksNVDescriptors 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-08115YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08116NNoneexplicitvkCmdDrawMeshTasksNVDescriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08119NNoneexplicitvkCmdDrawMeshTasksNVIf 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-08600YNoneexplicitvkCmdDrawMeshTasksNVFor 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-08601NNoneexplicitvkCmdDrawMeshTasksNVFor 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-08604NNoneexplicitvkCmdDrawMeshTasksNVDescriptors 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-08605NNoneexplicitvkCmdDrawMeshTasksNVIf 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-08606YNoneexplicitvkCmdDrawMeshTasksNVIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksNV-None-08607YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08608YNoneexplicitvkCmdDrawMeshTasksNVIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksNV-None-08609YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08610YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08611YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08612YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08613YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08617YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08618YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08619YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08621YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08635NNoneexplicitvkCmdDrawMeshTasksNVIf 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-08636YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawMeshTasksNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object 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-08646YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08647YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08648YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08649YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08657YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08658YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08659YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08664YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08666YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08667YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08668YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08669YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08670YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08671YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08672YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08684YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08685YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08686YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08687YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08688YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08689YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08690YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08693YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08694YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08695YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08696YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08698YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08699YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08876YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksNV-None-08877YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08878YNoneexplicitvkCmdDrawMeshTasksNVAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksNV-None-08879YNoneexplicitvkCmdDrawMeshTasksNVAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksNV-None-09000NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09001NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09002NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09003YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09116YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09211YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09363YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09364YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09365YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09366YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09368YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09369YNoneexplicitvkCmdDrawMeshTasksNVIf 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-None-09548YNoneexplicitvkCmdDrawMeshTasksNVIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMeshTasksNV-None-09549YNoneexplicitvkCmdDrawMeshTasksNVIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksNV-None-09600NNoneexplicitvkCmdDrawMeshTasksNVIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMeshTasksNV-None-09642YNoneexplicitvkCmdDrawMeshTasksNVIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawMeshTasksNV-None-09643YNoneexplicitvkCmdDrawMeshTasksNVIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawMeshTasksNV-None-09650YNoneexplicitvkCmdDrawMeshTasksNVIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-10068NNoneexplicitvkCmdDrawMeshTasksNVFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06976NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06974NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09215NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09216NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09217NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06973NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06971NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06972NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06977NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06978NNoneexplicitvkCmdDrawMeshTasksNVIf 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-04469YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08795YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08796YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07027YNoneexplicitvkCmdDrawMeshTasksNVFor 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-07028YNoneexplicitvkCmdDrawMeshTasksNVFor 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-07029YNoneexplicitvkCmdDrawMeshTasksNVFor 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-07030YNoneexplicitvkCmdDrawMeshTasksNVAny 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-07468NNoneexplicitvkCmdDrawMeshTasksNVIf 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-04470YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04471YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04472YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04473YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04141NNoneexplicitvkCmdDrawMeshTasksNVIf 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-04142NNoneexplicitvkCmdDrawMeshTasksNVIf 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-07480YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08919YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08920YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07750YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04727YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06179YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06185YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09362YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09372YNoneexplicitvkCmdDrawMeshTasksNVIf 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-02707YNoneexplicitvkCmdDrawMeshTasksNVIf 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-cmdpoolYNoneimplicitvkCmdDrawMeshTasksNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksNVcommandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07488NNoneexplicitvkCmdDrawMeshTasksNVIf 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-07491NNoneexplicitvkCmdDrawMeshTasksNVIf 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-07490NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09212NNoneexplicitvkCmdDrawMeshTasksNVIf 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-08910YNoneexplicitvkCmdDrawMeshTasksNVIf 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 an 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-08911YNoneexplicitvkCmdDrawMeshTasksNVIf 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 an 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-08912YNoneexplicitvkCmdDrawMeshTasksNVIf 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 an 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-08913YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08914YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08915YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08916YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08917YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08918YNoneexplicitvkCmdDrawMeshTasksNVIf 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-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksNVAny 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-02695YNoneexplicitvkCmdDrawMeshTasksNVAny 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-07476YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07477YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07478YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07479YNoneexplicitvkCmdDrawMeshTasksNVIf 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-02696YNoneexplicitvkCmdDrawMeshTasksNVAny 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-07753YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06172NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06173NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06174NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06175NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06176NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06177NNoneexplicitvkCmdDrawMeshTasksNVIf 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-06183YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06184YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04878YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawMeshTasksNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksNV-maintenance4-08602YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09239YNoneexplicitvkCmdDrawMeshTasksNVIf 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-02688YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04770YNoneexplicitvkCmdDrawMeshTasksNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawMeshTasksNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07285YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07286YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07287YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08963YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07470YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06186YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08964YNoneexplicitvkCmdDrawMeshTasksNVIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawMeshTasksNVInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawMeshTasksNV-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawMeshTasksNVInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08716YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09370YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09371YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07935YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06187YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08965YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09238YNoneexplicitvkCmdDrawMeshTasksNVIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksNVThe 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-04552YNoneexplicitvkCmdDrawMeshTasksNVIf 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-08642YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06709YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07481YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06708YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07471YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07474YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07489NNoneexplicitvkCmdDrawMeshTasksNVIf 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-07494NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09367YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09236YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMeshTasksNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawMeshTasksNVIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09213NNoneexplicitvkCmdDrawMeshTasksNVAny 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-02684YNoneexplicitvkCmdDrawMeshTasksNVThe 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-06198YNoneexplicitvkCmdDrawMeshTasksNVIf 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-renderpassYNoneimplicitvkCmdDrawMeshTasksNVThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07484YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07485YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07486YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07487YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07936YNoneexplicitvkCmdDrawMeshTasksNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawMeshTasksNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawMeshTasksNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMeshTasksNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawMeshTasksNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07473YNoneexplicitvkCmdDrawMeshTasksNVIf 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-03418YNoneexplicitvkCmdDrawMeshTasksNVIf 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-09214NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09233YNoneexplicitvkCmdDrawMeshTasksNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234YNoneexplicitvkCmdDrawMeshTasksNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04475NNoneexplicitvkCmdDrawMeshTasksNVIf 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.DrawCmdsNVexplicitvkCmdDrawMeshTasksNVThe 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-07073YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07495YNoneexplicitvkCmdDrawMeshTasksNVIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07496YNoneexplicitvkCmdDrawMeshTasksNVIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07497YNoneexplicitvkCmdDrawMeshTasksNVIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07498YNoneexplicitvkCmdDrawMeshTasksNVIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksNV-storageBuffers-06936YNoneexplicitvkCmdDrawMeshTasksNVIf 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-02685YNoneexplicitvkCmdDrawMeshTasksNVThe 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-02119YNoneexplicitvkCmdDrawMeshTasksNVtaskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount
VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935YNoneexplicitvkCmdDrawMeshTasksNVIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawMeshTasksNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawMeshTasksNV-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawMeshTasksNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawMeshTasksNV-videocodingYNoneimplicitvkCmdDrawMeshTasksNVThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksNVIf 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-07752YNoneexplicitvkCmdDrawMeshTasksNVIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawMeshTasksNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksNVIf 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-03419YNoneexplicitvkCmdDrawMeshTasksNVIf 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-04137NNoneexplicitvkCmdDrawMeshTasksNVIf 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-04138YNoneexplicitvkCmdDrawMeshTasksNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksNVIf 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-07492NNoneexplicitvkCmdDrawMeshTasksNVIf 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-07493NNoneexplicitvkCmdDrawMeshTasksNVIf 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-09421YNoneexplicitvkCmdDrawMeshTasksNVIf 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-06551YNoneexplicitvkCmdDrawMultiEXTIf 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-07939YNoneexplicitvkCmdDrawMultiEXTIf 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-08734YNoneexplicitvkCmdDrawMultiEXTIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawMultiEXT-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawMultiEXTIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMultiEXT-None-02691YNoneexplicitvkCmdDrawMultiEXTIf 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-02692YNoneexplicitvkCmdDrawMultiEXTIf 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-02693YNoneexplicitvkCmdDrawMultiEXTIf 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-02721YNoneexplicitvkCmdDrawMultiEXTIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawMultiEXT-None-04007YNoneexplicitvkCmdDrawMultiEXTAll 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-04008YNoneexplicitvkCmdDrawMultiEXTIf 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-04875YNoneexplicitvkCmdDrawMultiEXTIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04876YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04877YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04879YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04914YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiEXT-None-04933YNegativeCommand.MultiDrawFeaturesexplicitvkCmdDrawMultiEXTThe multiDraw feature must be enabled
VUID-vkCmdDrawMultiEXT-None-06479YNoneexplicitvkCmdDrawMultiEXTIf 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-06537YNoneexplicitvkCmdDrawMultiEXTMemory 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-06539YNoneexplicitvkCmdDrawMultiEXTIf 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-06550YNoneexplicitvkCmdDrawMultiEXTIf 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-06666YNoneexplicitvkCmdDrawMultiEXTIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-06886YNoneexplicitvkCmdDrawMultiEXTIf 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-06887YNoneexplicitvkCmdDrawMultiEXTIf 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-07288NNoneexplicitvkCmdDrawMultiEXTAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMultiEXT-None-07469NNoneexplicitvkCmdDrawMultiEXTInput 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-07619YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07620YNoneexplicitvkCmdDrawMultiEXTIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07621YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07622YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07623YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07624YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07625YNoneexplicitvkCmdDrawMultiEXTIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07626YNoneexplicitvkCmdDrawMultiEXTIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07627YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07628YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07629YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07630YNoneexplicitvkCmdDrawMultiEXTIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07631YNoneexplicitvkCmdDrawMultiEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07632YNoneexplicitvkCmdDrawMultiEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07633YNoneexplicitvkCmdDrawMultiEXTIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07634YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07635YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07636YNoneexplicitvkCmdDrawMultiEXTIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07637YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07638YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07639YNoneexplicitvkCmdDrawMultiEXTIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07640YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07641YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07642YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07643YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07644YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07645YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07646YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07647YNoneexplicitvkCmdDrawMultiEXTIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07648YNoneexplicitvkCmdDrawMultiEXTIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07649YNoneexplicitvkCmdDrawMultiEXTIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07748NNoneexplicitvkCmdDrawMultiEXTIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMultiEXT-None-07749YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07751YNoneexplicitvkCmdDrawMultiEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMultiEXT-None-07831YNoneexplicitvkCmdDrawMultiEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07832YNoneexplicitvkCmdDrawMultiEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07833YNoneexplicitvkCmdDrawMultiEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07834YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07835YNoneexplicitvkCmdDrawMultiEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07836YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07837YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07838YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07839YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07840YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07841YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07842YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07843YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07844YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07845YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07846YNoneexplicitvkCmdDrawMultiEXTIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07847YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07848YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07849YNoneexplicitvkCmdDrawMultiEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07850YNoneexplicitvkCmdDrawMultiEXTIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07878YNoneexplicitvkCmdDrawMultiEXTIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07879YNoneexplicitvkCmdDrawMultiEXTIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07880YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07881YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07888YNoneexplicitvkCmdDrawMultiEXTIf 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-08114YNoneexplicitvkCmdDrawMultiEXTDescriptors 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-08115YNoneexplicitvkCmdDrawMultiEXTIf 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-08116NNoneexplicitvkCmdDrawMultiEXTDescriptors 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-08117YNoneexplicitvkCmdDrawMultiEXTIf 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-08119NNoneexplicitvkCmdDrawMultiEXTIf 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-08600YNoneexplicitvkCmdDrawMultiEXTFor 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-08601NNoneexplicitvkCmdDrawMultiEXTFor 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-08604NNoneexplicitvkCmdDrawMultiEXTDescriptors 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-08605NNoneexplicitvkCmdDrawMultiEXTIf 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.MultiDrawexplicitvkCmdDrawMultiEXTIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMultiEXT-None-08607YNoneexplicitvkCmdDrawMultiEXTIf 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-08608YNoneexplicitvkCmdDrawMultiEXTIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMultiEXT-None-08609YNoneexplicitvkCmdDrawMultiEXTIf 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-08610YNoneexplicitvkCmdDrawMultiEXTIf 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-08611YNoneexplicitvkCmdDrawMultiEXTIf 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-08612YNoneexplicitvkCmdDrawMultiEXTIf 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-08613YNoneexplicitvkCmdDrawMultiEXTIf 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-08617YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08618YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08619YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08621YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08635NNoneexplicitvkCmdDrawMultiEXTIf 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-08636YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawMultiEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawMultiEXTIf a shader object 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-08646YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08647YNoneexplicitvkCmdDrawMultiEXTIf 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-08648YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08649YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08657YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08658YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08659YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08664YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08666YNoneexplicitvkCmdDrawMultiEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08667YNoneexplicitvkCmdDrawMultiEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08668YNoneexplicitvkCmdDrawMultiEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08669YNoneexplicitvkCmdDrawMultiEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08670YNoneexplicitvkCmdDrawMultiEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08671YNoneexplicitvkCmdDrawMultiEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08672YNoneexplicitvkCmdDrawMultiEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08684YNoneexplicitvkCmdDrawMultiEXTIf 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-08685YNoneexplicitvkCmdDrawMultiEXTIf 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-08686YNoneexplicitvkCmdDrawMultiEXTIf 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-08687YNoneexplicitvkCmdDrawMultiEXTIf 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-08688YNoneexplicitvkCmdDrawMultiEXTIf 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-08689YNoneexplicitvkCmdDrawMultiEXTIf 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-08690YNoneexplicitvkCmdDrawMultiEXTIf 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-08693YNoneexplicitvkCmdDrawMultiEXTIf 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-08694YNoneexplicitvkCmdDrawMultiEXTIf 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-08695YNoneexplicitvkCmdDrawMultiEXTIf 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-08696YNoneexplicitvkCmdDrawMultiEXTIf 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-08698YNoneexplicitvkCmdDrawMultiEXTIf 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-08699YNoneexplicitvkCmdDrawMultiEXTIf 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-08876YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMultiEXT-None-08877YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08878YNoneexplicitvkCmdDrawMultiEXTAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMultiEXT-None-08879YNoneexplicitvkCmdDrawMultiEXTAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMultiEXT-None-08885YNoneexplicitvkCmdDrawMultiEXTThere 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-09000NNoneexplicitvkCmdDrawMultiEXTIf 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-09001NNoneexplicitvkCmdDrawMultiEXTIf 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-09002NNoneexplicitvkCmdDrawMultiEXTIf 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-09003YNoneexplicitvkCmdDrawMultiEXTIf 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-09116YNoneexplicitvkCmdDrawMultiEXTIf 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-09203YNoneexplicitvkCmdDrawMultiEXTIf 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-09211YNoneexplicitvkCmdDrawMultiEXTIf 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-09363YNoneexplicitvkCmdDrawMultiEXTIf 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-09364YNoneexplicitvkCmdDrawMultiEXTIf 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-09365YNoneexplicitvkCmdDrawMultiEXTIf 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-09366YNoneexplicitvkCmdDrawMultiEXTIf 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-09368YNoneexplicitvkCmdDrawMultiEXTIf 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-09369YNoneexplicitvkCmdDrawMultiEXTIf 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-09462YNoneexplicitvkCmdDrawMultiEXTIf 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-None-09548YNoneexplicitvkCmdDrawMultiEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMultiEXT-None-09549YNoneexplicitvkCmdDrawMultiEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMultiEXT-None-09600NNoneexplicitvkCmdDrawMultiEXTIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMultiEXT-None-09637YNoneexplicitvkCmdDrawMultiEXTIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDrawMultiEXT-None-09642YNoneexplicitvkCmdDrawMultiEXTIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawMultiEXT-None-09643YNoneexplicitvkCmdDrawMultiEXTIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawMultiEXT-None-09650YNoneexplicitvkCmdDrawMultiEXTIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-10068NNoneexplicitvkCmdDrawMultiEXTFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMultiEXTIf 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-06976NNoneexplicitvkCmdDrawMultiEXTIf 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-06974NNoneexplicitvkCmdDrawMultiEXTIf 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-09215NNoneexplicitvkCmdDrawMultiEXTIf 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-09216NNoneexplicitvkCmdDrawMultiEXTIf 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-09217NNoneexplicitvkCmdDrawMultiEXTIf 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-06973NNoneexplicitvkCmdDrawMultiEXTIf 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-06971NNoneexplicitvkCmdDrawMultiEXTIf 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-06972NNoneexplicitvkCmdDrawMultiEXTIf 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-06977NNoneexplicitvkCmdDrawMultiEXTIf 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-06978NNoneexplicitvkCmdDrawMultiEXTIf 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-04469YNoneexplicitvkCmdDrawMultiEXTIf 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-08795YNoneexplicitvkCmdDrawMultiEXTIf 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-08796YNoneexplicitvkCmdDrawMultiEXTIf 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-07027YNoneexplicitvkCmdDrawMultiEXTFor 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-07028YNoneexplicitvkCmdDrawMultiEXTFor 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-07029YNoneexplicitvkCmdDrawMultiEXTFor 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-07030YNoneexplicitvkCmdDrawMultiEXTAny 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-07468NNoneexplicitvkCmdDrawMultiEXTIf 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-04470YNoneexplicitvkCmdDrawMultiEXTIf 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-04471YNoneexplicitvkCmdDrawMultiEXTIf 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-04472YNoneexplicitvkCmdDrawMultiEXTIf 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-04473YNoneexplicitvkCmdDrawMultiEXTIf 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-04141NNoneexplicitvkCmdDrawMultiEXTIf 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-04142NNoneexplicitvkCmdDrawMultiEXTIf 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-07480YNoneexplicitvkCmdDrawMultiEXTIf 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-08919YNoneexplicitvkCmdDrawMultiEXTIf 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-08920YNoneexplicitvkCmdDrawMultiEXTIf 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-07750YNoneexplicitvkCmdDrawMultiEXTIf 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-04727YNoneexplicitvkCmdDrawMultiEXTIf 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-06179YNoneexplicitvkCmdDrawMultiEXTIf 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-06185YNoneexplicitvkCmdDrawMultiEXTIf 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-09362YNoneexplicitvkCmdDrawMultiEXTIf 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-09372YNoneexplicitvkCmdDrawMultiEXTIf 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-02707YNoneexplicitvkCmdDrawMultiEXTIf 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-02712YNoneexplicitvkCmdDrawMultiEXTIf 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-02713NNoneexplicitvkCmdDrawMultiEXTIf 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-04617YNoneexplicitvkCmdDrawMultiEXTIf 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-cmdpoolYNoneimplicitvkCmdDrawMultiEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMultiEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMultiEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMultiEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMultiEXTcommandBuffer must be in the recording state
VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMultiEXTIf 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-07488NNoneexplicitvkCmdDrawMultiEXTIf 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-07491NNoneexplicitvkCmdDrawMultiEXTIf 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-07490NNoneexplicitvkCmdDrawMultiEXTIf 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-09212NNoneexplicitvkCmdDrawMultiEXTIf 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.MultiDrawexplicitvkCmdDrawMultiEXTdrawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount
VUID-vkCmdDrawMultiEXT-drawCount-04935YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiEXTIf drawCount is greater than zero, pVertexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawInfoEXT structures
VUID-vkCmdDrawMultiEXT-drawCount-09628YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiEXTIf drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkMultiDrawInfoEXT)
VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawMultiEXTIf 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-08910YNoneexplicitvkCmdDrawMultiEXTIf 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 an 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-08911YNoneexplicitvkCmdDrawMultiEXTIf 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 an 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-08912YNoneexplicitvkCmdDrawMultiEXTIf 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 an 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-08913YNoneexplicitvkCmdDrawMultiEXTIf 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-08914YNoneexplicitvkCmdDrawMultiEXTIf 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-08915YNoneexplicitvkCmdDrawMultiEXTIf 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-08916YNoneexplicitvkCmdDrawMultiEXTIf 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-08917YNoneexplicitvkCmdDrawMultiEXTIf 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-08918YNoneexplicitvkCmdDrawMultiEXTIf 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-filterCubic-02694YNoneexplicitvkCmdDrawMultiEXTAny 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-02695YNoneexplicitvkCmdDrawMultiEXTAny 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-07476YNoneexplicitvkCmdDrawMultiEXTIf 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-07477YNoneexplicitvkCmdDrawMultiEXTIf 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-07478YNoneexplicitvkCmdDrawMultiEXTIf 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-07479YNoneexplicitvkCmdDrawMultiEXTIf 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-02696YNoneexplicitvkCmdDrawMultiEXTAny 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-07753YNoneexplicitvkCmdDrawMultiEXTIf 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-08936YNoneexplicitvkCmdDrawMultiEXTIf 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-08937YNoneexplicitvkCmdDrawMultiEXTIf 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-06172NNoneexplicitvkCmdDrawMultiEXTIf 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-06173NNoneexplicitvkCmdDrawMultiEXTIf 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-06174NNoneexplicitvkCmdDrawMultiEXTIf 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-06175NNoneexplicitvkCmdDrawMultiEXTIf 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-06176NNoneexplicitvkCmdDrawMultiEXTIf 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-06177NNoneexplicitvkCmdDrawMultiEXTIf 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-06183YNoneexplicitvkCmdDrawMultiEXTIf 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-06184YNoneexplicitvkCmdDrawMultiEXTIf 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-04878YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-magFilter-04553YNoneexplicitvkCmdDrawMultiEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawMultiEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMultiEXT-maintenance4-08602YNoneexplicitvkCmdDrawMultiEXTIf 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-09239YNoneexplicitvkCmdDrawMultiEXTIf 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-02688YNoneexplicitvkCmdDrawMultiEXTIf 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-04770YNoneexplicitvkCmdDrawMultiEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawMultiEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMultiEXTIf 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-07285YNoneexplicitvkCmdDrawMultiEXTIf 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-07286YNoneexplicitvkCmdDrawMultiEXTIf 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-07287YNoneexplicitvkCmdDrawMultiEXTIf 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-08963YNoneexplicitvkCmdDrawMultiEXTIf 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-07470YNoneexplicitvkCmdDrawMultiEXTIf 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-06186YNoneexplicitvkCmdDrawMultiEXTIf 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-08964YNoneexplicitvkCmdDrawMultiEXTIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawMultiEXTInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawMultiEXT-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawMultiEXTInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawMultiEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMultiEXTIf 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-08716YNoneexplicitvkCmdDrawMultiEXTIf 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-09370YNoneexplicitvkCmdDrawMultiEXTIf 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-09371YNoneexplicitvkCmdDrawMultiEXTIf 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-07935YNoneexplicitvkCmdDrawMultiEXTIf 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-09461YNoneexplicitvkCmdDrawMultiEXTIf 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-06187YNoneexplicitvkCmdDrawMultiEXTIf 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-08965YNoneexplicitvkCmdDrawMultiEXTIf 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-04913YNoneexplicitvkCmdDrawMultiEXTIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDrawMultiEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMultiEXTIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMultiEXTIf 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-08642YNoneexplicitvkCmdDrawMultiEXTIf 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-06709YNoneexplicitvkCmdDrawMultiEXTIf 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-07481YNoneexplicitvkCmdDrawMultiEXTIf 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-06708YNoneexplicitvkCmdDrawMultiEXTIf 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-07471YNoneexplicitvkCmdDrawMultiEXTIf 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-07474YNoneexplicitvkCmdDrawMultiEXTIf 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-07489NNoneexplicitvkCmdDrawMultiEXTIf 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-07494NNoneexplicitvkCmdDrawMultiEXTIf 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-09367YNoneexplicitvkCmdDrawMultiEXTIf 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-09236YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMultiEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawMultiEXTIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawMultiEXTIf 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-09213NNoneexplicitvkCmdDrawMultiEXTAny 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-02684YNoneexplicitvkCmdDrawMultiEXTThe 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-06198YNoneexplicitvkCmdDrawMultiEXTIf 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.MultiDrawDrawOutsideRenderPassimplicitvkCmdDrawMultiEXTThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMultiEXTIf 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-07484YNoneexplicitvkCmdDrawMultiEXTIf 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-07485YNoneexplicitvkCmdDrawMultiEXTIf 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-07486YNoneexplicitvkCmdDrawMultiEXTIf 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-07487YNoneexplicitvkCmdDrawMultiEXTIf 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-07936YNoneexplicitvkCmdDrawMultiEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawMultiEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawMultiEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMultiEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawMultiEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawMultiEXTIf 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-07473YNoneexplicitvkCmdDrawMultiEXTIf 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-03418YNoneexplicitvkCmdDrawMultiEXTIf 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-09214NNoneexplicitvkCmdDrawMultiEXTIf 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-09233YNoneexplicitvkCmdDrawMultiEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMultiEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMultiEXTIf 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-04475NNoneexplicitvkCmdDrawMultiEXTIf 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-06481YNoneexplicitvkCmdDrawMultiEXTThe 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-07073YNoneexplicitvkCmdDrawMultiEXTIf 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-07495YNoneexplicitvkCmdDrawMultiEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMultiEXTIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMultiEXTIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMultiEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMultiEXT-storageBuffers-06936YNoneexplicitvkCmdDrawMultiEXTIf 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-subpass-02685YNoneexplicitvkCmdDrawMultiEXTThe 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-06935YNoneexplicitvkCmdDrawMultiEXTIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawMultiEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawMultiEXT-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawMultiEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawMultiEXT-videocodingYNoneimplicitvkCmdDrawMultiEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMultiEXT-viewMask-06178YNoneexplicitvkCmdDrawMultiEXTIf 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-07752YNoneexplicitvkCmdDrawMultiEXTIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawMultiEXT-viewportCount-03417YNoneexplicitvkCmdDrawMultiEXTIf 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-03419YNoneexplicitvkCmdDrawMultiEXTIf 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-04137NNoneexplicitvkCmdDrawMultiEXTIf 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-04138YNoneexplicitvkCmdDrawMultiEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-viewportCount-04139NNoneexplicitvkCmdDrawMultiEXTIf 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-07492NNoneexplicitvkCmdDrawMultiEXTIf 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-07493NNoneexplicitvkCmdDrawMultiEXTIf 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-09421YNoneexplicitvkCmdDrawMultiEXTIf 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-06551YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07939YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08734YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawMultiIndexedEXT-InputAttachmentIndex-09597NNoneexplicitvkCmdDrawMultiIndexedEXTIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMultiIndexedEXT-None-02691YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-02692YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-02693YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-02721YNoneexplicitvkCmdDrawMultiIndexedEXTIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawMultiIndexedEXT-None-04007YNoneexplicitvkCmdDrawMultiIndexedEXTAll 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-04008YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04875YNoneexplicitvkCmdDrawMultiIndexedEXTIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04876YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04877YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04879YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04914YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiIndexedEXT-None-04937YNegativeCommand.MultiDrawFeaturesexplicitvkCmdDrawMultiIndexedEXTThe multiDraw feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-None-06479YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06537YNoneexplicitvkCmdDrawMultiIndexedEXTMemory 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-06539YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06550YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06666YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-06886YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06887YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07288NNoneexplicitvkCmdDrawMultiIndexedEXTAny shader invocation executed by this command must terminate
VUID-vkCmdDrawMultiIndexedEXT-None-07312YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiIndexedEXTIf maintenance6 is not enabled, a valid index buffer must be bound
VUID-vkCmdDrawMultiIndexedEXT-None-07469NNoneexplicitvkCmdDrawMultiIndexedEXTInput 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-07619YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07620YNoneexplicitvkCmdDrawMultiIndexedEXTIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07621YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07622YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07623YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07624YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07625YNoneexplicitvkCmdDrawMultiIndexedEXTIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07626YNoneexplicitvkCmdDrawMultiIndexedEXTIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07627YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07628YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07629YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07630YNoneexplicitvkCmdDrawMultiIndexedEXTIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07631YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07632YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07633YNoneexplicitvkCmdDrawMultiIndexedEXTIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07634YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07635YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07636YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07637YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07638YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07639YNoneexplicitvkCmdDrawMultiIndexedEXTIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07640YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07641YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07642YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07643YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07644YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07645YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07646YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07647YNoneexplicitvkCmdDrawMultiIndexedEXTIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07648YNoneexplicitvkCmdDrawMultiIndexedEXTIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07649YNoneexplicitvkCmdDrawMultiIndexedEXTIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07748NNoneexplicitvkCmdDrawMultiIndexedEXTIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMultiIndexedEXT-None-07749YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07751YNoneexplicitvkCmdDrawMultiIndexedEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawMultiIndexedEXT-None-07831YNoneexplicitvkCmdDrawMultiIndexedEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07832YNoneexplicitvkCmdDrawMultiIndexedEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07833YNoneexplicitvkCmdDrawMultiIndexedEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07834YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07835YNoneexplicitvkCmdDrawMultiIndexedEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07836YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07837YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07838YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07839YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07840YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07841YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07842YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07843YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07844YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07845YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07846YNoneexplicitvkCmdDrawMultiIndexedEXTIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07847YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07848YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07849YNoneexplicitvkCmdDrawMultiIndexedEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07850YNoneexplicitvkCmdDrawMultiIndexedEXTIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07878YNoneexplicitvkCmdDrawMultiIndexedEXTIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07879YNoneexplicitvkCmdDrawMultiIndexedEXTIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07880YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07881YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07888YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08114YNoneexplicitvkCmdDrawMultiIndexedEXTDescriptors 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-08115YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08116NNoneexplicitvkCmdDrawMultiIndexedEXTDescriptors 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-08117YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08119NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08600YNoneexplicitvkCmdDrawMultiIndexedEXTFor 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-08601NNoneexplicitvkCmdDrawMultiIndexedEXTFor 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-08604NNoneexplicitvkCmdDrawMultiIndexedEXTDescriptors 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-08605NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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.MultiDrawexplicitvkCmdDrawMultiIndexedEXTIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMultiIndexedEXT-None-08607YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08608YNoneexplicitvkCmdDrawMultiIndexedEXTIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMultiIndexedEXT-None-08609YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08610YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08611YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08612YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08613YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08617YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08618YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08619YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08621YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08635NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08636YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637YNoneexplicitvkCmdDrawMultiIndexedEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to 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-08644YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object 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-08646YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08647YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08648YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08649YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08657YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08658YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08659YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08664YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08666YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08667YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08668YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08669YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08670YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08671YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08672YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08684YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08685YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08686YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08687YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08688YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08689YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08690YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08693YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08694YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08695YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08696YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08698YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08699YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08876YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMultiIndexedEXT-None-08877YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08878YNoneexplicitvkCmdDrawMultiIndexedEXTAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMultiIndexedEXT-None-08879YNoneexplicitvkCmdDrawMultiIndexedEXTAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMultiIndexedEXT-None-08885YNoneexplicitvkCmdDrawMultiIndexedEXTThere 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-09000NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09001NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09002NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09003YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09116YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09203YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09211YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09363YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09364YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09365YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09366YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09368YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09369YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09462YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-None-09548YNoneexplicitvkCmdDrawMultiIndexedEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMultiIndexedEXT-None-09549YNoneexplicitvkCmdDrawMultiIndexedEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMultiIndexedEXT-None-09600NNoneexplicitvkCmdDrawMultiIndexedEXTIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMultiIndexedEXT-None-09637YNoneexplicitvkCmdDrawMultiIndexedEXTIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdDrawMultiIndexedEXT-None-09642YNoneexplicitvkCmdDrawMultiIndexedEXTIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawMultiIndexedEXT-None-09643YNoneexplicitvkCmdDrawMultiIndexedEXTIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawMultiIndexedEXT-None-09650YNoneexplicitvkCmdDrawMultiIndexedEXTIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-10068NNoneexplicitvkCmdDrawMultiIndexedEXTFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06976NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06974NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09215NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09216NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09217NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06973NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06971NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06972NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06977NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06978NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04469YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08795YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08796YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07027YNoneexplicitvkCmdDrawMultiIndexedEXTFor 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-07028YNoneexplicitvkCmdDrawMultiIndexedEXTFor 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-07029YNoneexplicitvkCmdDrawMultiIndexedEXTFor 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-07030YNoneexplicitvkCmdDrawMultiIndexedEXTAny 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-07468NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04470YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04471YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04472YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04473YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04141NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04142NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07480YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08919YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08920YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07750YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04727YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06179YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06185YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09362YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09372YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-02707YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-02712YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-02713NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04617YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-cmdpoolYNoneimplicitvkCmdDrawMultiIndexedEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMultiIndexedEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMultiIndexedEXTcommandBuffer must be in the recording state
VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07488NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07491NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07490NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09212NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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.MultiDrawexplicitvkCmdDrawMultiIndexedEXTdrawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount
VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiIndexedEXTIf drawCount is greater than zero, pIndexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawIndexedInfoEXT structures
VUID-vkCmdDrawMultiIndexedEXT-drawCount-09629YNegativeCommand.MultiDrawexplicitvkCmdDrawMultiIndexedEXTIf drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkMultiDrawIndexedInfoEXT)
VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08910YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 an 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-08911YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 an 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-08912YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 an 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-08913YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08914YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08915YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08916YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08917YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08918YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-filterCubic-02694YNoneexplicitvkCmdDrawMultiIndexedEXTAny 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-02695YNoneexplicitvkCmdDrawMultiIndexedEXTAny 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-07476YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07477YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07478YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07479YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-02696YNoneexplicitvkCmdDrawMultiIndexedEXTAny 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-07753YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08936YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08937YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06172NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06173NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06174NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06175NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06176NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06177NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06183YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06184YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04878YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553YNoneexplicitvkCmdDrawMultiIndexedEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdDrawMultiIndexedEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09239YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-02688YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04770YNoneexplicitvkCmdDrawMultiIndexedEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdDrawMultiIndexedEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07285YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07286YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07287YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08963YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07470YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06186YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08964YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdDrawMultiIndexedEXTInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdDrawMultiIndexedEXT-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdDrawMultiIndexedEXTInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08716YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09370YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09371YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07935YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09461YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06187YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08965YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04913YNoneexplicitvkCmdDrawMultiIndexedEXTIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameterYNoneimplicitvkCmdDrawMultiIndexedEXTIf pVertexOffset is not NULL, pVertexOffset must be a valid pointer to a valid int32_t value
VUID-vkCmdDrawMultiIndexedEXT-pipelineFragmentShadingRate-09238YNoneexplicitvkCmdDrawMultiIndexedEXTIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-08642YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06709YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07481YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06708YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07471YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07474YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07489NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07494NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09367YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09236YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09416YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09417YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to 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-09418YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419YNoneexplicitvkCmdDrawMultiIndexedEXTIf a shader object is bound to 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-09420YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09213NNoneexplicitvkCmdDrawMultiIndexedEXTAny 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-02684YNoneexplicitvkCmdDrawMultiIndexedEXTThe 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-06198YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-renderpassYNoneimplicitvkCmdDrawMultiIndexedEXTThis command must only be called inside of a render pass instance
VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798YNegativeCommand.MultiDraw, NegativeCommand.MultiDrawMaintenance5, NegativeCommand.MultiDrawMaintenance5Mixed, NegativeCommand.MultiDrawWholeSizeMaintenance5explicitvkCmdDrawMultiIndexedEXTIf 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-02689YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07484YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07485YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07486YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07487YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07936YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07473YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-03418YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09214NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09233YNoneexplicitvkCmdDrawMultiIndexedEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234YNoneexplicitvkCmdDrawMultiIndexedEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04474YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04475NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-06481YNoneexplicitvkCmdDrawMultiIndexedEXTThe 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-07073YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07495YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-subpass-02685YNoneexplicitvkCmdDrawMultiIndexedEXTThe 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-06935YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdDrawMultiIndexedEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdDrawMultiIndexedEXT-unnormalizedCoordinates-09636NNoneexplicitvkCmdDrawMultiIndexedEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawMultiIndexedEXT-videocodingYNoneimplicitvkCmdDrawMultiIndexedEXTThis command must only be called outside of a video coding scope
VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07752YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-03419YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04137NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-04138YNoneexplicitvkCmdDrawMultiIndexedEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07492NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-07493NNoneexplicitvkCmdDrawMultiIndexedEXTIf 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-09421YNoneexplicitvkCmdDrawMultiIndexedEXTIf 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.EncodeSessionUninitializedexplicitvkCmdEncodeVideoKHRThe bound video session must not be in uninitialized state at the time the command is executed on the device
VUID-vkCmdEncodeVideoKHR-None-08250YNegativeVideo.EncodeSessionNotEncodeexplicitvkCmdEncodeVideoKHRThe bound video session must have been created with an encode operation
VUID-vkCmdEncodeVideoKHR-None-08318YNegativeVideo.EncodeParamsQualityLevelMismatchexplicitvkCmdEncodeVideoKHRThe 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.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeTooManyReferencesexplicitvkCmdEncodeVideoKHRactiveReferencePictureCount must be less than or equal to the VkVideoSessionCreateInfoKHR::maxActiveReferencePictures specified when the bound video session was created
VUID-vkCmdEncodeVideoKHR-bufferlevelYNoneimplicitvkCmdEncodeVideoKHRcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEncodeVideoKHR-codedOffset-08218YNegativeVideo.EncodeSetupAndRefCodedOffsetexplicitvkCmdEncodeVideoKHRThe 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.EncodeProtectedNoFaultBitstreamBufferexplicitvkCmdEncodeVideoKHRIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, then pEncodeInfo->dstBuffer must not be a protected buffer
VUID-vkCmdEncodeVideoKHR-commandBuffer-08203YNegativeVideo.EncodeProtectedNoFaultBitstreamBufferexplicitvkCmdEncodeVideoKHRIf commandBuffer is a protected command buffer and protectedNoFault is not supported, then pEncodeInfo->dstBuffer must be a protected buffer
VUID-vkCmdEncodeVideoKHR-commandBuffer-08211YNegativeVideo.EncodeProtectedNoFaultEncodeInputexplicitvkCmdEncodeVideoKHRIf 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.EncodeProtectedNoFaultEncodeInputexplicitvkCmdEncodeVideoKHRIf 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.EncodeSessionNotEncodeimplicitvkCmdEncodeVideoKHRThe VkCommandPool that commandBuffer was allocated from must support encode operations
VUID-vkCmdEncodeVideoKHR-commandBuffer-parameterYNoneimplicitvkCmdEncodeVideoKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEncodeVideoKHR-commandBuffer-recordingYNoneimplicitvkCmdEncodeVideoKHRcommandBuffer must be in the recording state
VUID-vkCmdEncodeVideoKHR-constantQp-08269YNegativeVideo.EncodeRateControlH264ConstantQpNonZeroexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH264ConstantQpPerSliceMismatchexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH264ConstantQpPerSliceMismatchexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH265ConstantQpNonZeroexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitvkCmdEncodeVideoKHRIf 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.EncodeDuplicateRefResourceexplicitvkCmdEncodeVideoKHRAll elements of dpbFrameUseCount must be less than or equal to 1
VUID-vkCmdEncodeVideoKHR-flags-08342YNegativeVideo.EncodeCapsH264BPicInRefList, NegativeVideo.EncodeCapsH264RefPicTypeexplicitvkCmdEncodeVideoKHRIf 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.EncodeCapsH264BPicInRefListexplicitvkCmdEncodeVideoKHRIf 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.EncodeCapsH265RefPicTypeexplicitvkCmdEncodeVideoKHRIf 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.EncodeCapsH265BPicInRefListexplicitvkCmdEncodeVideoKHRIf 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.EncodeCapsH264RefPicTypeexplicitvkCmdEncodeVideoKHRIf 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.EncodeCapsH265RefPicTypeexplicitvkCmdEncodeVideoKHRIf 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.EncodeCapsH264RefPicTypeexplicitvkCmdEncodeVideoKHRIf 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.EncodeCapsH265RefPicTypeexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH264ConstantQpPerSliceMismatchexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH264ConstantQpPerSliceMismatchexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitvkCmdEncodeVideoKHRIf 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.EncodeRateControlH265ConstantQpPerSliceSegmentMismatchexplicitvkCmdEncodeVideoKHRIf 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.EncodeQueryTooManyOperationsexplicitvkCmdEncodeVideoKHRFor 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.EncodeIncompatBufferProfileexplicitvkCmdEncodeVideoKHRpEncodeInfo->dstBuffer must be compatible with the video profile the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08204YNegativeVideo.EncodeBufferOffsetAlignmentexplicitvkCmdEncodeVideoKHRpEncodeInfo->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.EncodeBufferRangeAlignmentexplicitvkCmdEncodeVideoKHRpEncodeInfo->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.EncodeIncompatInputPicProfileexplicitvkCmdEncodeVideoKHRpEncodeInfo->srcPictureResource.imageViewBinding must be compatible with the video profile the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08207YNegativeVideo.EncodeInputFormatMismatchexplicitvkCmdEncodeVideoKHRThe format of pEncodeInfo->srcPictureResource.imageViewBinding must match the VkVideoSessionCreateInfoKHR::pictureFormat the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08208YNegativeVideo.EncodeInputCodedOffsetExtentexplicitvkCmdEncodeVideoKHRpEncodeInfo->srcPictureResource.codedOffset must be an integer multiple of codedOffsetGranularity
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08209YNegativeVideo.EncodeInputCodedOffsetExtentexplicitvkCmdEncodeVideoKHRpEncodeInfo->srcPictureResource.codedExtent must be between minCodedExtent and maxCodedExtent, inclusive, the bound video session was created with
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08210YNegativeVideo.EncodeInputMissingEncodeSrcUsageexplicitvkCmdEncodeVideoKHRpEncodeInfo->srcPictureResource.imageViewBinding must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08213YNegativeVideo.EncodeInvalidSetupSlotIndexexplicitvkCmdEncodeVideoKHRIf 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.EncodeSetupAndRefCodedOffsetexplicitvkCmdEncodeVideoKHRIf pEncodeInfo->pSetupReferenceSlot is not NULL, then pEncodeInfo->pSetupReferenceSlot->pPictureResource->codedOffset must be an integer multiple of codedOffsetGranularity
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08215YNegativeVideo.EncodeSetupAndRefCodedOffset, NegativeVideo.EncodeSetupResourceNotBoundexplicitvkCmdEncodeVideoKHRIf pEncodeInfo->pSetupReferenceSlot is not NULL, then pEncodeInfo->pSetupReferenceSlot->pPictureResource must match one of the bound reference picture resource
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08222YNegativeVideo.EncodeImageLayoutsexplicitvkCmdEncodeVideoKHRThe 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.EncodeImageLayoutsexplicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeSetupNullexplicitvkCmdEncodeVideoKHRpEncodeInfo->pSetupReferenceSlot must not be NULL unless the bound video session was created with VkVideoSessionCreateInfoKHR::maxDpbSlots equal to zero
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-parameterYNoneimplicitvkCmdEncodeVideoKHRpEncodeInfo must be a valid pointer to a valid VkVideoEncodeInfoKHR structure
VUID-vkCmdEncodeVideoKHR-pNext-08225YNegativeVideo.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH264explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeInvalidCodecInfoH265explicitvkCmdEncodeVideoKHRIf 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.EncodeInlineQueryOutOfBoundsexplicitvkCmdEncodeVideoKHRIf 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.EncodeInlineQueryUnavailableexplicitvkCmdEncodeVideoKHRIf 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.EncodeSetupAndRefCodedOffsetexplicitvkCmdEncodeVideoKHRThe 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.EncodeDuplicateRefResourceexplicitvkCmdEncodeVideoKHREach 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.EncodeImageLayoutsexplicitvkCmdEncodeVideoKHRThe 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.EncodeInlineQueryTypeexplicitvkCmdEncodeVideoKHRIf 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.EncodeInlineQueryTypeexplicitvkCmdEncodeVideoKHRIf 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.EncodeInlineQueryIncompatibleQueueFamilyexplicitvkCmdEncodeVideoKHRIf 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-renderpassYNoneimplicitvkCmdEncodeVideoKHRThis command must only be called outside of a render pass instance
VUID-vkCmdEncodeVideoKHR-slotIndex-08217YNegativeVideo.EncodeInvalidRefSlotIndexexplicitvkCmdEncodeVideoKHRThe 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-videocodingYNoneimplicitvkCmdEncodeVideoKHRThis command must only be called inside of a video coding scope
VUID-vkCmdEndConditionalRenderingEXT-None-01985YNegativeCommand.EndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXTConditional rendering must be active
VUID-vkCmdEndConditionalRenderingEXT-None-01986YNegativeCommand.EndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXTIf 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.EndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXTIf conditional rendering was made active within a subpass it must be ended in the same subpass
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndConditionalRenderingEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameterYNoneimplicitvkCmdEndConditionalRenderingEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recordingYNoneimplicitvkCmdEndConditionalRenderingEXTcommandBuffer must be in the recording state
VUID-vkCmdEndConditionalRenderingEXT-videocodingYNoneimplicitvkCmdEndConditionalRenderingEXTThis command must only be called outside of a video coding scope
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912YNegativeDebugExtensions.DebugLabelPrimaryCommandBuffer, NegativeDebugExtensions.DebugLabelPrimaryCommandBuffer2, NegativeDebugExtensions.DebugLabelPrimaryCommandBuffer3explicitvkCmdEndDebugUtilsLabelEXTThere must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913YNegativeDebugExtensions.DebugLabelSecondaryCommandBufferexplicitvkCmdEndDebugUtilsLabelEXTIf 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-cmdpoolYNoneimplicitvkCmdEndDebugUtilsLabelEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdEndDebugUtilsLabelEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdEndDebugUtilsLabelEXTcommandBuffer must be in the recording state
VUID-vkCmdEndDebugUtilsLabelEXT-videocodingYNoneimplicitvkCmdEndDebugUtilsLabelEXTThis command must only be called outside of a video coding scope
VUID-vkCmdEndQuery-None-01923YNegativeProtectedMemory.UnprotectedCommands, NegativeQuery.ActiveEndQueryexplicitvkCmdEndQueryAll queries used by the command must be active
VUID-vkCmdEndQuery-None-07007YNegativeQuery.InsideRenderPass, NegativeQuery.InsideRenderPassDynamicRenderingexplicitvkCmdEndQueryIf 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.UnprotectedCommandsexplicitvkCmdEndQuerycommandBuffer must not be a protected command buffer
VUID-vkCmdEndQuery-commandBuffer-cmdpoolYNoneimplicitvkCmdEndQueryThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdEndQuery-commandBuffer-parameterYNoneimplicitvkCmdEndQuerycommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndQuery-commandBuffer-recordingYNoneimplicitvkCmdEndQuerycommandBuffer must be in the recording state
VUID-vkCmdEndQuery-commonparentYNoneimplicitvkCmdEndQueryBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdEndQuery-query-00810YNegativeQuery.SizesexplicitvkCmdEndQueryquery must be less than the number of queries in queryPool
VUID-vkCmdEndQuery-query-00812YNoneexplicitvkCmdEndQueryIf 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.PerformanceCounterCommandbufferScopeexplicitvkCmdEndQueryIf 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-03228YNoneexplicitvkCmdEndQueryIf 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.CmdEndQueryWithoutQueryPoolimplicitvkCmdEndQueryqueryPool must be a valid VkQueryPool handle
VUID-vkCmdEndQueryIndexedEXT-None-02342YNegativeQuery.CmdEndQueryIndexedEXTIndexexplicitvkCmdEndQueryIndexedEXTAll queries used by the command must be active
VUID-vkCmdEndQueryIndexedEXT-None-07007YNoneexplicitvkCmdEndQueryIndexedEXTIf 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-02344YNoneexplicitvkCmdEndQueryIndexedEXTcommandBuffer must not be a protected command buffer
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndQueryIndexedEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdEndQueryIndexedEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdEndQueryIndexedEXTcommandBuffer must be in the recording state
VUID-vkCmdEndQueryIndexedEXT-commonparentYNoneimplicitvkCmdEndQueryIndexedEXTBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdEndQueryIndexedEXT-query-02343YNegativeQuery.CmdEndQueryIndexedEXTIndexexplicitvkCmdEndQueryIndexedEXTquery must be less than the number of queries in queryPool
VUID-vkCmdEndQueryIndexedEXT-query-02345YNoneexplicitvkCmdEndQueryIndexedEXTIf 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-parameterYNoneimplicitvkCmdEndQueryIndexedEXTqueryPool must be a valid VkQueryPool handle
VUID-vkCmdEndQueryIndexedEXT-queryType-06694YNegativeQuery.CmdEndQueryIndexedEXTIndex, NegativeQuery.CmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdEndQueryIndexedEXTIf 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.CmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdEndQueryIndexedEXTIf 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.PrimitivesGeneratedexplicitvkCmdEndQueryIndexedEXTIf 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-videocodingYNoneimplicitvkCmdEndQueryIndexedEXTThis command must only be called outside of a video coding scope
VUID-vkCmdEndRenderPass-None-00910YNegativeSubpass.RenderPassEndBeforeFinalSubpass, NegativeSyncVal.RenderPassAsyncHazardexplicitvkCmdEndRenderPassThe current subpass index must be equal to the number of subpasses in the render pass minus one
VUID-vkCmdEndRenderPass-None-02351YNegativeTransformFeedback.EndRenderPassexplicitvkCmdEndRenderPassThis command must not be recorded when transform feedback is active
VUID-vkCmdEndRenderPass-None-06170YNegativeDynamicRendering.EndRenderpassWithBeginRenderingRenderpassInstanceexplicitvkCmdEndRenderPassThe current render pass instance must not have been begun with vkCmdBeginRendering
VUID-vkCmdEndRenderPass-None-07004YNegativeQuery.OutsideRenderPassexplicitvkCmdEndRenderPassIf vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRenderPass-bufferlevelYNoneimplicitvkCmdEndRenderPasscommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndRenderPass-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRenderPassThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRenderPass-commandBuffer-parameterYNoneimplicitvkCmdEndRenderPasscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRenderPass-commandBuffer-recordingYNoneimplicitvkCmdEndRenderPasscommandBuffer must be in the recording state
VUID-vkCmdEndRenderPass-renderpassYNegativeRenderPass.EndWithoutRenderPassimplicitvkCmdEndRenderPassThis command must only be called inside of a render pass instance
VUID-vkCmdEndRenderPass-videocodingYNoneimplicitvkCmdEndRenderPassThis command must only be called outside of a video coding scope
VUID-vkCmdEndRenderPass2-None-02352YNoneexplicitvkCmdEndRenderPass2This command must not be recorded when transform feedback is active
VUID-vkCmdEndRenderPass2-None-03103YNegativeSubpass.RenderPassEndBeforeFinalSubpassexplicitvkCmdEndRenderPass2The current subpass index must be equal to the number of subpasses in the render pass minus one
VUID-vkCmdEndRenderPass2-None-06171YNegativeDynamicRendering.EndRenderpassWithBeginRenderingRenderpassInstanceexplicitvkCmdEndRenderPass2The current render pass instance must not have been begun with vkCmdBeginRendering
VUID-vkCmdEndRenderPass2-None-07005YNoneexplicitvkCmdEndRenderPass2If vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRenderPass2-bufferlevelYNoneimplicitvkCmdEndRenderPass2commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndRenderPass2-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRenderPass2The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRenderPass2-commandBuffer-parameterYNoneimplicitvkCmdEndRenderPass2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRenderPass2-commandBuffer-recordingYNoneimplicitvkCmdEndRenderPass2commandBuffer must be in the recording state
VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameterYNoneimplicitvkCmdEndRenderPass2pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure
VUID-vkCmdEndRenderPass2-renderpassYNoneimplicitvkCmdEndRenderPass2This command must only be called inside of a render pass instance
VUID-vkCmdEndRenderPass2-videocodingYNoneimplicitvkCmdEndRenderPass2This command must only be called outside of a video coding scope
VUID-vkCmdEndRendering-None-06161YNegativeDynamicRendering.BeginRenderingDisabled, NegativeDynamicRendering.EndRenderingWithIncorrectlyStartedRenderpassInstanceexplicitvkCmdEndRenderingThe current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdEndRendering-None-06781NNoneexplicitvkCmdEndRenderingThis command must not be recorded when transform feedback is active
VUID-vkCmdEndRendering-None-06999YNegativeQuery.OutsideRenderPassDynamicRenderingexplicitvkCmdEndRenderingIf vkCmdBeginQuery* was called within the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRendering-commandBuffer-06162YNegativeDynamicRendering.EndRenderingWithIncorrectlyStartedRenderpassInstanceexplicitvkCmdEndRenderingThe current render pass instance must have been begun in commandBuffer
VUID-vkCmdEndRendering-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRenderingThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRendering-commandBuffer-parameterYNoneimplicitvkCmdEndRenderingcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRendering-commandBuffer-recordingYNoneimplicitvkCmdEndRenderingcommandBuffer must be in the recording state
VUID-vkCmdEndRendering-renderpassYNegativeDynamicRendering.EndTwiceimplicitvkCmdEndRenderingThis command must only be called inside of a render pass instance
VUID-vkCmdEndRendering-videocodingYNoneimplicitvkCmdEndRenderingThis command must only be called outside of a video coding scope
VUID-vkCmdEndTransformFeedbackEXT-None-02375YNegativeTransformFeedback.CmdEndTransformFeedbackEXT, NegativeTransformFeedback.FeatureEnabledexplicitvkCmdEndTransformFeedbackEXTTransform feedback must be active
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndTransformFeedbackEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameterYNoneimplicitvkCmdEndTransformFeedbackEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recordingYNoneimplicitvkCmdEndTransformFeedbackEXTcommandBuffer must be in the recording state
VUID-vkCmdEndTransformFeedbackEXT-commonparentYNoneimplicitvkCmdEndTransformFeedbackEXTBoth 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-02608YNoneexplicitvkCmdEndTransformFeedbackEXTIf 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.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTfirstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377YNegativeTransformFeedback.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTThe sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379YNegativeTransformFeedback.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTIf pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL
VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378YNegativeTransformFeedback.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTFor 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-parameterYNoneimplicitvkCmdEndTransformFeedbackEXTIf 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.CmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXTFor 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-renderpassYNoneimplicitvkCmdEndTransformFeedbackEXTThis command must only be called inside of a render pass instance
VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374YNegativeTransformFeedback.FeatureEnabledexplicitvkCmdEndTransformFeedbackEXTVkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdEndTransformFeedbackEXT-videocodingYNoneimplicitvkCmdEndTransformFeedbackEXTThis command must only be called outside of a video coding scope
VUID-vkCmdEndVideoCodingKHR-None-07251YNegativeVideo.EndCodingActiveQueriesNotAllowedexplicitvkCmdEndVideoCodingKHRThere must be no active queries
VUID-vkCmdEndVideoCodingKHR-bufferlevelYNoneimplicitvkCmdEndVideoCodingKHRcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndVideoCodingKHR-commandBuffer-cmdpoolYNegativeVideo.DecodeInlineQueryIncompatibleQueueFamily, NegativeVideo.EncodeInlineQueryIncompatibleQueueFamilyimplicitvkCmdEndVideoCodingKHRThe VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdEndVideoCodingKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdEndVideoCodingKHRcommandBuffer must be in the recording state
VUID-vkCmdEndVideoCodingKHR-pEndCodingInfo-parameterYNoneimplicitvkCmdEndVideoCodingKHRpEndCodingInfo must be a valid pointer to a valid VkVideoEndCodingInfoKHR structure
VUID-vkCmdEndVideoCodingKHR-renderpassYNoneimplicitvkCmdEndVideoCodingKHRThis command must only be called outside of a render pass instance
VUID-vkCmdEndVideoCodingKHR-videocodingYNegativeVideo.VideoCodingScopeimplicitvkCmdEndVideoCodingKHRThis command must only be called inside of a video coding scope
VUID-vkCmdExecuteCommands-None-02286YNoneexplicitvkCmdExecuteCommandsThis command must not be recorded when transform feedback is active
VUID-vkCmdExecuteCommands-None-09681YNegativeSecondaryCommandBuffer.RenderPassContentsNotFirstSubpassexplicitvkCmdExecuteCommandsIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, and vkCmdNextSubpass has been called in the current render pass instance, the contents parameter of the last call to vkCmdNextSubpass must have been set to VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS , or VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR
VUID-vkCmdExecuteCommands-colorAttachmentCount-06027YNegativeDynamicRendering.ExecuteCommandsWithMismatchingColorAttachmentCountexplicitvkCmdExecuteCommandsIf 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-00101YNoneexplicitvkCmdExecuteCommandsIf the inheritedQueries feature is not enabled, commandBuffer must not have any queries active
VUID-vkCmdExecuteCommands-commandBuffer-00102YNegativeQuery.CommandBufferMissingOcclusionexplicitvkCmdExecuteCommandsIf 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.CommandBufferInheritanceFlagsexplicitvkCmdExecuteCommandsIf 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.PipelineStatisticsQueryWithSecondaryCmdBufferexplicitvkCmdExecuteCommandsIf 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-01820YNoneexplicitvkCmdExecuteCommandsIf commandBuffer is a protected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be a protected command buffer
VUID-vkCmdExecuteCommands-commandBuffer-01821YNoneexplicitvkCmdExecuteCommandsIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be an unprotected command buffer
VUID-vkCmdExecuteCommands-commandBuffer-06533NNoneexplicitvkCmdExecuteCommandsIf 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-06534NNoneexplicitvkCmdExecuteCommandsIf 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.CmdExecuteCommandsActiveQueriesexplicitvkCmdExecuteCommandscommandBuffer must not have any queries other than VK_QUERY_TYPE_OCCLUSION and VK_QUERY_TYPE_PIPELINE_STATISTICS active
VUID-vkCmdExecuteCommands-commandBuffer-09375YNegativeSecondaryCommandBuffer.ExecuteCommandsToexplicitvkCmdExecuteCommandscommandBuffer must not be a secondary command buffer unless the nestedCommandBuffer feature is enabled
VUID-vkCmdExecuteCommands-commandBuffer-cmdpoolYNoneimplicitvkCmdExecuteCommandsThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdExecuteCommands-commandBuffer-parameterYNoneimplicitvkCmdExecuteCommandscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdExecuteCommands-commandBuffer-recordingYNegativeSecondaryCommandBuffer.RerecordedExplicitReset, NegativeSecondaryCommandBuffer.RerecordedNoResetimplicitvkCmdExecuteCommandscommandBuffer must be in the recording state
VUID-vkCmdExecuteCommands-commandBufferCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkCmdExecuteCommandscommandBufferCount must be greater than 0
VUID-vkCmdExecuteCommands-commonparentYNoneimplicitvkCmdExecuteCommandsBoth of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdExecuteCommands-contents-09680YNegativeDynamicRendering.SecondaryCommandBufferContents, NegativeSecondaryCommandBuffer.RenderPassContentsFirstSubpassexplicitvkCmdExecuteCommandsIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, and vkCmdNextSubpass has not been called in the current render pass instance, the contents parameter of vkCmdBeginRenderPass 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.BadRenderPassContentsWhenCallingCmdExecuteCommandsexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingFlagsexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingColorImageViewFormatexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithNullImageViewexplicitvkCmdExecuteCommandsIf 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-09376YNegativeSecondaryCommandBuffer.MaxCommandBufferNestingLevelexplicitvkCmdExecuteCommandsIf the nestedCommandBuffer feature is enabled, the command buffer nesting level of each element of pCommandBuffers must be less than maxCommandBufferNestingLevel
VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377YNegativeSecondaryCommandBuffer.NestedCommandBufferRenderingexplicitvkCmdExecuteCommandsIf 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-09378YNegativeSecondaryCommandBuffer.NestedCommandBufferSimultaneousUseexplicitvkCmdExecuteCommandsIf 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-06020YNegativeDynamicRendering.SecondaryCommandBufferIncompatibleRenderPass, NegativeFragmentShadingRate.IncompatibleFragmentRateShadingAttachmentInExecuteCommands, NegativeSecondaryCommandBuffer.IncompatibleRenderPassesInExecuteCommandsexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithNonNullRenderPassexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsPrimaryCBexplicitvkCmdExecuteCommandsEach element of pCommandBuffers must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-vkCmdExecuteCommands-pCommandBuffers-00089YNegativeSecondaryCommandBuffer.ExecuteUnrecordedexplicitvkCmdExecuteCommandsEach element of pCommandBuffers must be in the pending or executable state
VUID-vkCmdExecuteCommands-pCommandBuffers-00091YNoneexplicitvkCmdExecuteCommandsIf 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-00092YNegativeSecondaryCommandBuffer.SimultaneousUseTwoExecutesexplicitvkCmdExecuteCommandsIf 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-00093YNegativeSecondaryCommandBuffer.SimultaneousUseSingleExecuteexplicitvkCmdExecuteCommandsIf 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-00094YNegativeSecondaryCommandBuffer.ExecuteDiffertQueueFlagsexplicitvkCmdExecuteCommandsEach 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-00096YNegativeSecondaryCommandBuffer.RenderPassScopeexplicitvkCmdExecuteCommandsIf 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.FramebufferIncompatibleexplicitvkCmdExecuteCommandsIf 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-00100YNegativeSecondaryCommandBuffer.RenderPassScopeexplicitvkCmdExecuteCommandsIf 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.CmdExecuteBeginActiveQueryexplicitvkCmdExecuteCommandsEach element of pCommandBuffers must not begin any query types that are active in commandBuffer
VUID-vkCmdExecuteCommands-pCommandBuffers-06019YNegativeDynamicRendering.SecondaryCommandBufferIncompatibleSubpass, NegativeSecondaryCommandBuffer.ExecuteCommandsSubpassIndicesexplicitvkCmdExecuteCommandsIf 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-06021NNoneexplicitvkCmdExecuteCommandsIf 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-06022NNoneexplicitvkCmdExecuteCommandsIf 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-06535NNoneexplicitvkCmdExecuteCommandsIf 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-06536NNoneexplicitvkCmdExecuteCommandsIf 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-09504YNegativeDynamicRenderingLocalRead.RenderingAttachmentLocationInfoMismatchexplicitvkCmdExecuteCommandsIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the color attachment mapping state specified by VkRenderingAttachmentLocationInfoKHR in the inheritance info of each element of pCommandBuffers and in the current state of commandBuffer must match
VUID-vkCmdExecuteCommands-pCommandBuffers-09505YNegativeDynamicRenderingLocalRead.RenderingInputAttachmentIndexInfoMismatchexplicitvkCmdExecuteCommandsIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the input attachment mapping state specified by VkRenderingInputAttachmentIndexInfoKHR in the inheritance info of each element of pCommandBuffers and in the current state of commandBuffer must match
VUID-vkCmdExecuteCommands-pCommandBuffers-parameterYNoneimplicitvkCmdExecuteCommandspCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles
VUID-vkCmdExecuteCommands-pDepthAttachment-06029YNegativeDynamicRendering.ExecuteCommandsWithMismatchingDepthStencilImageViewFormatexplicitvkCmdExecuteCommandsIf 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.NullDepthStencilExecuteCommandsexplicitvkCmdExecuteCommandsIf 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-02865NNoneexplicitvkCmdExecuteCommandsIf 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-02866NNoneexplicitvkCmdExecuteCommandsIf 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-02867NNoneexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommandsIf 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-09299NNoneexplicitvkCmdExecuteCommandsIf 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 an externalFormat matching that used to create the resolve attachment in the render pass
VUID-vkCmdExecuteCommands-pNext-09300NNoneexplicitvkCmdExecuteCommandsIf 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.ExecuteCommandsWithMismatchingDepthStencilImageViewFormatexplicitvkCmdExecuteCommandsIf 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.NullDepthStencilExecuteCommandsexplicitvkCmdExecuteCommandsIf 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-06023NNoneexplicitvkCmdExecuteCommandsIf 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-videocodingYNoneimplicitvkCmdExecuteCommandsThis command must only be called outside of a video coding scope
VUID-vkCmdExecuteCommands-viewMask-06031YNegativeDynamicRendering.ExecuteCommandsWithMismatchingViewMaskexplicitvkCmdExecuteCommandsIf 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-vkCmdExecuteGeneratedCommandsEXT-ConstOffset-06551NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-InputAttachmentIndex-09597NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdExecuteGeneratedCommandsEXT-None-02691NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-02692NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-02693NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-04876NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-04877NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-06479NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-06537NNoneexplicitvkCmdExecuteGeneratedCommandsEXTMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-06539NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdExecuteGeneratedCommandsEXT-None-06550NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-06666NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-06886NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-06887NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-07288NNoneexplicitvkCmdExecuteGeneratedCommandsEXTAny shader invocation executed by this command must terminate
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07469NNoneexplicitvkCmdExecuteGeneratedCommandsEXTInput 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-vkCmdExecuteGeneratedCommandsEXT-None-07619NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07620NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07621NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07622NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07623NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07624NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07625NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07626NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07627NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07628NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07629NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07630NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07631NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07632NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07633NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07634NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07635NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07636NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07637NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07638NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07639NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07640NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07641NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07642NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07643NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07644NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07645NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07646NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07647NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07648NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07649NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07748NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07749NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07751NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07831NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07832NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07833NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07834NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07835NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07836NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07837NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07838NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07839NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07840NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07841NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07843NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07844NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07845NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07846NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07847NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07848NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07849NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07850NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07878NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07879NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07880NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07881NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-07888NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08114YNoneexplicitvkCmdExecuteGeneratedCommandsEXTDescriptors 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-vkCmdExecuteGeneratedCommandsEXT-None-08115NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08116NNoneexplicitvkCmdExecuteGeneratedCommandsEXTDescriptors 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-vkCmdExecuteGeneratedCommandsEXT-None-08117NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08119NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08600NNoneexplicitvkCmdExecuteGeneratedCommandsEXTFor 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-vkCmdExecuteGeneratedCommandsEXT-None-08601NNoneexplicitvkCmdExecuteGeneratedCommandsEXTFor 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-vkCmdExecuteGeneratedCommandsEXT-None-08604NNoneexplicitvkCmdExecuteGeneratedCommandsEXTDescriptors 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-vkCmdExecuteGeneratedCommandsEXT-None-08605NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08606NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08607NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08608NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08609NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08610NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08611NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08612YNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08613YNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08617NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08618NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08619NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08621NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08635NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08636NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-vkCmdExecuteGeneratedCommandsEXT-None-08637NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-vkCmdExecuteGeneratedCommandsEXT-None-08643NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to 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-vkCmdExecuteGeneratedCommandsEXT-None-08644NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object 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-vkCmdExecuteGeneratedCommandsEXT-None-08646NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08647NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08648NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08649NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08657NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08658NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08659NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08664NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08666NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08667NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08668NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08669NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08670NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08671NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08672NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08684NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08685NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08686NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08687NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08688NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08689NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08690NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08693NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08694NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08695NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08696NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08698NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08699NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-08876NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08877NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08878NNoneexplicitvkCmdExecuteGeneratedCommandsEXTAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdExecuteGeneratedCommandsEXT-None-08879NNoneexplicitvkCmdExecuteGeneratedCommandsEXTAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdExecuteGeneratedCommandsEXT-None-09000NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09001NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09002NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09003NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-09116NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09211NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09363NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09364NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09365NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09366NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09368NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09369NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-None-09548NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdExecuteGeneratedCommandsEXT-None-09549NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdExecuteGeneratedCommandsEXT-None-09600NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdExecuteGeneratedCommandsEXT-None-09642NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsEXT-None-09643NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdExecuteGeneratedCommandsEXT-None-09650NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-10068NNoneexplicitvkCmdExecuteGeneratedCommandsEXTFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdExecuteGeneratedCommandsEXT-None-11062YNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a rendering pass is currently active, the view mask must be 0.
VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSADQCOM-06976NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchWindow-09215NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchWindow-09216NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchWindow-09217NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageWeightedSampleQCOM-06971NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageWeightedSampleQCOM-06972NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageWeightedSampleQCOM-06977NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageWeightedSampleQCOM-06978NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageWrite-04469NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageWrite-08795NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpImageWrite-08796NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07027NNoneexplicitvkCmdExecuteGeneratedCommandsEXTFor 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-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07028NNoneexplicitvkCmdExecuteGeneratedCommandsEXTFor 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-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07029NNoneexplicitvkCmdExecuteGeneratedCommandsEXTFor 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-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07030NNoneexplicitvkCmdExecuteGeneratedCommandsEXTAny 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-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07468NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdExecuteGeneratedCommandsEXT-SampledType-04470NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-SampledType-04471NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-SampledType-04472NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-SampledType-04473NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-VkPipelineVieportCreateInfo-04142NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-advancedBlendMaxColorAttachments-07480NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-alphaToCoverageEnable-08919NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-alphaToCoverageEnable-08920NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-attachmentCount-07750NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-blendEnable-04727NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-bufferlevelYNegativeDeviceGeneratedCommands.CmdExecuteGeneratedCommandsSecondaryimplicitvkCmdExecuteGeneratedCommandsEXTcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-06179NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-06185NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-09362NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-09372NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-02707NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource
VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-11045YNoneexplicitvkCmdExecuteGeneratedCommandsEXTcommandBuffer must not be a protected command buffer
VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-11143YNoneexplicitvkCmdExecuteGeneratedCommandsEXTcommandBuffer must not have been created with VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdExecuteGeneratedCommandsEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-parameterYNoneimplicitvkCmdExecuteGeneratedCommandsEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-recordingYNoneimplicitvkCmdExecuteGeneratedCommandsEXTcommandBuffer must be in the recording state
VUID-vkCmdExecuteGeneratedCommandsEXT-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-coverageReductionMode-07491NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-coverageToColorEnable-07490NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-cubicRangeClamp-09212NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-deviceGeneratedCommands-11059YNoneexplicitvkCmdExecuteGeneratedCommandsEXTThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT::deviceGeneratedCommands feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsEXT-deviceGeneratedCommandsTransformFeedback-11057YNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf deviceGeneratedCommandsTransformFeedback is not supported on device, transform feedback must not be active
VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08910NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 an 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-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08911NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 an 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-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08912NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 an 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-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08913NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08914NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08915NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08916NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08917NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08918NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-filterCubic-02694NNoneexplicitvkCmdExecuteGeneratedCommandsEXTAny 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-vkCmdExecuteGeneratedCommandsEXT-filterCubicMinmax-02695NNoneexplicitvkCmdExecuteGeneratedCommandsEXTAny 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-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07476NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07477NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07478NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07479NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-flags-02696NNoneexplicitvkCmdExecuteGeneratedCommandsEXTAny 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-vkCmdExecuteGeneratedCommandsEXT-format-07753NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-imageView-06172NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-imageView-06173NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-imageView-06174NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-imageView-06175NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-imageView-06176NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-imageView-06177NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-imageView-06183NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-imageView-06184NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11004NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf indirectCommandsLayout was created with a token sequence that contained the VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token and indirectExecutionSet was created using VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT, every executed VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token must bind all the shader stages set in the VkIndirectCommandsExecutionSetTokenEXT::shaderStages used to create indirectCommandsLayout
VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11053YNegativeDeviceGeneratedCommands.ExecuteNoBoundPipeline, NegativeDeviceGeneratedCommands.ExecuteNoBoundShaderObjectexplicitvkCmdExecuteGeneratedCommandsEXTIf the token sequence of the passed VkGeneratedCommandsInfoEXT::indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the initial shader state of VkGeneratedCommandsInfoEXT::indirectExecutionSet must be bound on commandBuffer
VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11056NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the indirectCommandsLayout member of pGeneratedCommandsInfo contains a draw token, then the active render pass must not have a specified fragment density map
VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11141YNegativeDeviceGeneratedCommands.ExecuteIsPreprocessedexplicitvkCmdExecuteGeneratedCommandsEXTIf the indirectCommandsLayout member of pGeneratedCommandsInfo was created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT bit set, then isPreprocessed must be VK_TRUE
VUID-vkCmdExecuteGeneratedCommandsEXT-indirectExecutionSet-11058YNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf transform feedback is active, VkGeneratedCommandsInfoEXT::indirectExecutionSet must be VK_NULL_HANDLE
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11046NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE and vkGetGeneratedCommandsMemoryRequirementsEXT did not return a required size of zero then vkCmdPreprocessGeneratedCommandsEXT must have already been executed on the device before this command executes, and the preprocessing command must have used the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoEXT::preprocessBuffer).
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11047YNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE then the indirectCommandsLayout member of pGeneratedCommandsInfo must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT bit set
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11048NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE then the bound descriptor sets and push constants must match identically with those bound during recording of the corresponding call to vkCmdPreprocessGeneratedCommandsEXT.
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11049NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE and the indirectCommandsLayout member of pGeneratedCommandsInfo contains a draw token, then the graphics state bound on commandBuffer must match identically with the graphics state bound on the stateCommandBuffer passed to vkCmdPreprocessGeneratedCommandsEXT
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11051NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE and the indirectCommandsLayout member of pGeneratedCommandsInfo contains a dispatch token, then the compute state bound on commandBuffer must match identically with the compute state bound on the stateCommandBuffer passed to vkCmdPreprocessGeneratedCommandsEXT
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11052NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE and the indirectCommandsLayout member of pGeneratedCommandsInfo contains a ray tracing token, then the ray tracing state bound on commandBuffer must match identically with the ray tracing state bound on the stateCommandBuffer passed to vkCmdPreprocessGeneratedCommandsEXT
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11055NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE and the token sequence of the passed VkGeneratedCommandsInfoEXT::indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the members of VkGeneratedCommandsInfoEXT::indirectExecutionSet accessed by this command must not have been modified since the preprocess buffer was generated
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11149NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE, then the queue family index of commandBuffer must be the same as the queue family index used to allocate the stateCommandBuffer passed to vkCmdPreprocessGeneratedCommandsEXT
VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11150NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf isPreprocessed is VK_TRUE and the indirectCommandsLayout member of pGeneratedCommandsInfo contains a ray tracing token, the queue family index commandBuffer was allocated from must be the same queue family index used to allocate the stateCommandBuffer passed to vkCmdPreprocessGeneratedCommandsEXT
VUID-vkCmdExecuteGeneratedCommandsEXT-logicOp-04878NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-magFilter-04553NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-vkCmdExecuteGeneratedCommandsEXT-magFilter-09598NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdExecuteGeneratedCommandsEXT-maintenance4-08602NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-maxFragmentDualSrcAttachments-09239NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-maxMultiviewInstanceIndex-02688NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-mipmapMode-04770NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-vkCmdExecuteGeneratedCommandsEXT-mipmapMode-09599NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07285NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07286NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07287NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pColorAttachments-08963NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pColorBlendEnables-07470NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pDepthAttachment-06186NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pDepthAttachment-08964NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdExecuteGeneratedCommandsEXTInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdExecuteGeneratedCommandsEXT-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdExecuteGeneratedCommandsEXTInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdExecuteGeneratedCommandsEXT-pDynamicStates-08715NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pDynamicStates-08716NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pFragmentSize-09370NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pFragmentSize-09371NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pGeneratedCommandsInfo-parameterYNoneimplicitvkCmdExecuteGeneratedCommandsEXTpGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoEXT structure
VUID-vkCmdExecuteGeneratedCommandsEXT-pNext-07935NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pStencilAttachment-06187NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pStencilAttachment-08965NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-pipelineFragmentShadingRate-09238NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-preprocessAddress-11142NNoneexplicitvkCmdExecuteGeneratedCommandsEXTThe contents of the preprocessAddress member of pGeneratedCommandsInfo must not have been previously used to record another vkCmdExecuteGeneratedCommandsEXT
VUID-vkCmdExecuteGeneratedCommandsEXT-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-primitiveFragmentShadingRateWithMultipleViewports-08642NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-primitivesGeneratedQueryWithNonZeroStreams-06709NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-primitivesGeneratedQueryWithNonZeroStreams-07481NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the primitivesGeneratedQueryWithRasterizerDiscard feature is not enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is active, rasterization discard must not be enabled
VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07471NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07474NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07489NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07494NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-09367NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09236NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09416NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09417NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to 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-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09418NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09419NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a shader object is bound to 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-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09420NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-reductionMode-09213NNoneexplicitvkCmdExecuteGeneratedCommandsEXTAny 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-vkCmdExecuteGeneratedCommandsEXT-renderPass-02684NNoneexplicitvkCmdExecuteGeneratedCommandsEXTThe 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-vkCmdExecuteGeneratedCommandsEXT-renderPass-06198NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-02689NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07484NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07485NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07486NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07487NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07936NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07937NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07938NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsPerPixel-07482NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsPerPixel-07483NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsEXT-samples-07472NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-samples-07473NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-scissorCount-03418NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-selectableCubicWeights-09214NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-shadingRateImage-09233NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-shadingRateImage-09234NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-sparseImageInt64Atomics-04474NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-sparseImageInt64Atomics-04475NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-stage-07073NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-stippledLineEnable-07495NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsEXT-stippledLineEnable-07496NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsEXT-stippledLineEnable-07497NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsEXT-stippledLineEnable-07498NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdExecuteGeneratedCommandsEXT-storageBuffers-06936YNegativeGpuAVOOB.DeviceGeneratedCommandsComputeexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-subpass-02685NNoneexplicitvkCmdExecuteGeneratedCommandsEXTThe 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-vkCmdExecuteGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11060YNoneexplicitvkCmdExecuteGeneratedCommandsEXTThe currently bound shader stages must be supported by VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStages
VUID-vkCmdExecuteGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11061YNoneexplicitvkCmdExecuteGeneratedCommandsEXTOnly stages specified in VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStages can be set in pGeneratedCommandsInfo->shaderStages
VUID-vkCmdExecuteGeneratedCommandsEXT-uniformBuffers-06935YNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-unnormalizedCoordinates-09635NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdExecuteGeneratedCommandsEXT-unnormalizedCoordinates-09636NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdExecuteGeneratedCommandsEXT-videocodingYNoneimplicitvkCmdExecuteGeneratedCommandsEXTThis command must only be called outside of a video coding scope
VUID-vkCmdExecuteGeneratedCommandsEXT-viewMask-06178NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-viewType-07752NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-03417NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-viewportCount-03419NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-viewportCount-04137NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-viewportCount-04138NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-04139NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-viewportCount-07492NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-viewportCount-07493NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsEXT-viewportCount-09421NNoneexplicitvkCmdExecuteGeneratedCommandsEXTIf 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-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07939NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08734NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 either legacyVertexAttributes is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdExecuteGeneratedCommandsNV-InputAttachmentIndex-09597NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf an input attachment view accessed in a dynamic render pass via a shader object has an InputAttachmentIndex, the InputAttachmentIndex must match an index in VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdExecuteGeneratedCommandsNV-None-02691NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02692NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02693NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02721NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf robustBufferAccess is not enabled, and that pipeline was created without enabling VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT for vertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdExecuteGeneratedCommandsNV-None-02910NNoneexplicitvkCmdExecuteGeneratedCommandsNVTransform feedback must not be active
VUID-vkCmdExecuteGeneratedCommandsNV-None-04007NNoneexplicitvkCmdExecuteGeneratedCommandsNVAll 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-04008NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04875NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04876NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, then vkCmdSetRasterizerDiscardEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04877NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBiasEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04879NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04914NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdExecuteGeneratedCommandsNV-None-06479NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06537NNoneexplicitvkCmdExecuteGeneratedCommandsNVMemory 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-06539NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06550NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06666NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_EXT_sample_locations extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of sampleLocationsEnable is VK_TRUE, then vkCmdSetSampleLocationsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-06886NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06887NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07288NNoneexplicitvkCmdExecuteGeneratedCommandsNVAny shader invocation executed by this command must terminate
VUID-vkCmdExecuteGeneratedCommandsNV-None-07469NNoneexplicitvkCmdExecuteGeneratedCommandsNVInput 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-07619NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled, then vkCmdSetTessellationDomainOriginEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07620NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the depthClamp feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthClampEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07621NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetPolygonModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07622NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRasterizationSamplesEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07623NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetSampleMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07624NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToCoverageEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07625NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the alphaToOne feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAlphaToOneEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07626NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the logicOp feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLogicOpEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07627NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07628NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07629NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07630NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the geometryStreams feature is enabled, and a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled, then vkCmdSetRasterizationStreamEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07631NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetConservativeRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07632NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_EXT_conservative_rasterization extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of conservativeRasterizationMode is VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07633NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the depthClipEnable feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then vkCmdSetDepthClipEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07634NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07635NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07636NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07637NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07638NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07639NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the depthClipControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07640NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then vkCmdSetViewportWScalingEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07641NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_viewport_swizzle extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then vkCmdSetViewportSwizzleNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07642NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageToColorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07643NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_fragment_coverage_to_color extension is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageToColorEnable is VK_TRUE, then vkCmdSetCoverageToColorLocationNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07644NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageModulationModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07645NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationMode is any value other than VK_COVERAGE_MODULATION_MODE_NONE_NV, then vkCmdSetCoverageModulationTableEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07646NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_framebuffer_mixed_samples extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of coverageModulationTableEnable is VK_TRUE, then vkCmdSetCoverageModulationTableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07647NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the shadingRateImage feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetShadingRateImageEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07648NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the representativeFragmentTest feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetRepresentativeFragmentTestEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07649NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the coverageReductionMode feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoverageReductionModeNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07748NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdExecuteGeneratedCommandsNV-None-07749NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07751NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdExecuteGeneratedCommandsNV-None-07831NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then vkCmdSetViewport must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07832NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then vkCmdSetScissor must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07833NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then vkCmdSetLineWidth must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07834NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBiasEnable is VK_TRUE, then vkCmdSetDepthBounds or vkCmdSetDepthBias2EXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07835NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then vkCmdSetBlendConstants must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07836NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthBoundsTestEnable is VK_TRUE, then vkCmdSetDepthBounds must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07837NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilCompareMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07838NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilWriteMask must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07839NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilReference must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07840NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCullMode must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07841NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFrontFace must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07842NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07843NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, vkCmdSetDepthTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07844NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthWriteEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07845NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of depthTestEnable is VK_TRUE, then vkCmdSetDepthCompareOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07846NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the depthBounds feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetDepthBoundsTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07847NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetStencilTestEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07848NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, the current value of stencilTestEnable is VK_TRUE, then vkCmdSetStencilOp must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07849NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then vkCmdSetLineStippleKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07850NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07878NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the exclusiveScissor feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled, then vkCmdSetExclusiveScissorEnableNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07879NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the exclusiveScissor feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07880NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07881NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07888NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08114NNoneexplicitvkCmdExecuteGeneratedCommandsNVDescriptors 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-08115NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08116NNoneexplicitvkCmdExecuteGeneratedCommandsNVDescriptors 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-08117NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08119NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08600NNoneexplicitvkCmdExecuteGeneratedCommandsNVFor 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-08601NNoneexplicitvkCmdExecuteGeneratedCommandsNVFor 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-08604NNoneexplicitvkCmdExecuteGeneratedCommandsNVDescriptors 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-08605NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08606NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08607NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08608NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdExecuteGeneratedCommandsNV-None-08609NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08610NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08611NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08612NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08613NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08617NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08618NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08619NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08621NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08635NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08636NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is 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-08637NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is 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-08643NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to 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-08644NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object 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-08646NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08647NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08648NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08649NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08657NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorBlendEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08658NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08659NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, then vkCmdSetColorWriteMaskEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08664NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08666NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08667NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08668NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08669NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08670NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_KHR_line_rasterization or 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08671NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object that outputs line primitives is bound to the 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08672NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_KHR_line_rasterization or VK_EXT_line_rasterization extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08684NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08685NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08686NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08687NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08688NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08689NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08690NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08693NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08694NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08695NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08696NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08698NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08699NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08876NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdExecuteGeneratedCommandsNV-None-08877NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08878NNoneexplicitvkCmdExecuteGeneratedCommandsNVAll bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdExecuteGeneratedCommandsNV-None-08879NNoneexplicitvkCmdExecuteGeneratedCommandsNVAll bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdExecuteGeneratedCommandsNV-None-08885NNoneexplicitvkCmdExecuteGeneratedCommandsNVThere 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-09000NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09001NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09002NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09003NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09116NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09203NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09211NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09363NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09364NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09365NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09366NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09368NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09369NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-None-09548NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element of VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations set by vkCmdSetRenderingAttachmentLocationsKHR must match the value set for the corresponding element in the currently bound pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-None-09549NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdExecuteGeneratedCommandsNV-None-09600NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdExecuteGeneratedCommandsNV-None-09637NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the primitiveTopologyListRestart feature is not enabled, the 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, 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 be VK_FALSE
VUID-vkCmdExecuteGeneratedCommandsNV-None-09642NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the current render pass was begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound graphics pipeline must have been created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdExecuteGeneratedCommandsNV-None-09643NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the bound graphics pipeline was created with VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun with vkCmdBeginRendering with the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdExecuteGeneratedCommandsNV-None-09650NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the depthClampControl feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of depthClampEnable is VK_TRUE, then vkCmdSetDepthClampRangeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-10068NNoneexplicitvkCmdExecuteGeneratedCommandsNVFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06976NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06974NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09215NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09216NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09217NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06973NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06971NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06972NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06977NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06978NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04469NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08795NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08796NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07027NNoneexplicitvkCmdExecuteGeneratedCommandsNVFor 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-07028NNoneexplicitvkCmdExecuteGeneratedCommandsNVFor 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-07029NNoneexplicitvkCmdExecuteGeneratedCommandsNVFor 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-07030NNoneexplicitvkCmdExecuteGeneratedCommandsNVAny 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-07468NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04470NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04471NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04472NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04473NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04141NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04142NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07480NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08919NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08920NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07750NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04727NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06179NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06185NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09362NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09372NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02707NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02970NNoneexplicitvkCmdExecuteGeneratedCommandsNVcommandBuffer must not be a protected command buffer
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpoolYNoneimplicitvkCmdExecuteGeneratedCommandsNVThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameterYNoneimplicitvkCmdExecuteGeneratedCommandsNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recordingYNoneimplicitvkCmdExecuteGeneratedCommandsNVcommandBuffer must be in the recording state
VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07488NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07491NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07490NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09212NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02911NNoneexplicitvkCmdExecuteGeneratedCommandsNVThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08910NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 an 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-08911NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 an 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-08912NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 an 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-08913NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08914NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08915NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08916NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08917NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08918NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-filterCubic-02694NNoneexplicitvkCmdExecuteGeneratedCommandsNVAny 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-02695NNoneexplicitvkCmdExecuteGeneratedCommandsNVAny 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-07476NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07477NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07478NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07479NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02696NNoneexplicitvkCmdExecuteGeneratedCommandsNVAny 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-07753NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08936NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08937NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06172NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06173NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06174NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06175NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06176NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06177NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06183NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06184NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02908NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04878NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of logicOpEnable is VK_TRUE, then vkCmdSetLogicOpEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09239NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02688NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04770NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07285NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07286NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07287NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08963NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07470NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06186NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08964NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-pDepthInputAttachmentIndex-09595NNoneexplicitvkCmdExecuteGeneratedCommandsNVInput attachment views accessed in a dynamic render pass with a InputAttachmentIndex referenced by VkRenderingInputAttachmentIndexInfoKHR, or no InputAttachmentIndex if VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex or VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are NULL, must be created with a VkImageView that is compatible with the corresponding color, depth, or stencil attachment in VkRenderingInfo
VUID-vkCmdExecuteGeneratedCommandsNV-pDepthInputAttachmentIndex-09596NNoneexplicitvkCmdExecuteGeneratedCommandsNVInput attachment views accessed in a dynamic render pass via a shader object must have an InputAttachmentIndex if both VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex and VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex are non-NULL
VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08716NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09370NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09371NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-parameterYNoneimplicitvkCmdExecuteGeneratedCommandsNVpGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure
VUID-vkCmdExecuteGeneratedCommandsNV-pNext-07935NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06187NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08965NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04913NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2 must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2 must not be NULL
VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909NNoneexplicitvkCmdExecuteGeneratedCommandsNVVkGeneratedCommandsInfoNV::pipeline must match the current bound pipeline at VkGeneratedCommandsInfoNV::pipelineBindPoint
VUID-vkCmdExecuteGeneratedCommandsNV-pipelineFragmentShadingRate-09238NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the pipelineFragmentShadingRate feature is enabled, a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetFragmentShadingRateKHR must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-08642NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06709NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07481NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06708NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07471NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07474NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07489NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07494NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09367NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09236NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09416NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09417NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to 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-09418NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and both the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE and there are color attachments bound, 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-09419NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a shader object is bound to 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-09420NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09213NNoneexplicitvkCmdExecuteGeneratedCommandsNVAny 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-02684NNoneexplicitvkCmdExecuteGeneratedCommandsNVThe 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-06198NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-renderpassYNoneimplicitvkCmdExecuteGeneratedCommandsNVThis command must only be called inside of a render pass instance
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07484NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07485NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07486NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07487NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07936NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07937NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07938NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, then sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07482NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07483NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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, and the current value of sampleLocationsEnable is VK_TRUE, 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-07472NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07473NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-03418NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09214NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09233NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetCoarseSampleOrderNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the shadingRateImage feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of shadingRateImageEnable is VK_TRUE, then vkCmdSetViewportShadingRatePaletteNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04474NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04475NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-06481NNoneexplicitvkCmdExecuteGeneratedCommandsNVThe 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-07073NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07495NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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_KHR, then the stippledRectangularLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07496NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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_KHR, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07497NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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_KHR, then the stippledSmoothLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07498NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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_KHR, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdExecuteGeneratedCommandsNV-storageBuffers-06936NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-02685NNoneexplicitvkCmdExecuteGeneratedCommandsNVThe 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-06935NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-unnormalizedCoordinates-09635NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdExecuteGeneratedCommandsNV-unnormalizedCoordinates-09636NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdExecuteGeneratedCommandsNV-videocodingYNoneimplicitvkCmdExecuteGeneratedCommandsNVThis command must only be called outside of a video coding scope
VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07752NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-03419NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04137NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-04138NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf the VK_NV_clip_space_w_scaling extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of viewportWScalingEnable is VK_TRUE, then vkCmdSetViewportWScalingNV must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07492NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-07493NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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-09421NNoneexplicitvkCmdExecuteGeneratedCommandsNVIf 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.FillBufferCmdPoolUnsupportedexplicitvkCmdFillBufferIf 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.MixingProtectedResourcesexplicitvkCmdFillBufferIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdFillBuffer-commandBuffer-01812YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdFillBufferIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdFillBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdFillBufferThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations
VUID-vkCmdFillBuffer-commandBuffer-parameterYNoneimplicitvkCmdFillBuffercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdFillBuffer-commandBuffer-recordingYNoneimplicitvkCmdFillBuffercommandBuffer must be in the recording state
VUID-vkCmdFillBuffer-commonparentYNegativeParent.FillBufferimplicitvkCmdFillBufferBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdFillBuffer-dstBuffer-00029YNoneexplicitvkCmdFillBufferdstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdFillBuffer-dstBuffer-00031YNoneexplicitvkCmdFillBufferIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdFillBuffer-dstBuffer-parameterYNoneimplicitvkCmdFillBufferdstBuffer must be a valid VkBuffer handle
VUID-vkCmdFillBuffer-dstOffset-00024YNegativeBuffer.FillBufferAlignmentAndSizeexplicitvkCmdFillBufferdstOffset must be less than the size of dstBuffer
VUID-vkCmdFillBuffer-dstOffset-00025YNoneexplicitvkCmdFillBufferdstOffset must be a multiple of 4
VUID-vkCmdFillBuffer-renderpassYNegativeBuffer.FillBufferWithinRenderPassimplicitvkCmdFillBufferThis command must only be called outside of a render pass instance
VUID-vkCmdFillBuffer-size-00026YNoneexplicitvkCmdFillBufferIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-vkCmdFillBuffer-size-00027YNegativeBuffer.FillBufferAlignmentAndSizeexplicitvkCmdFillBufferIf 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-00028YNoneexplicitvkCmdFillBufferIf size is not equal to VK_WHOLE_SIZE, size must be a multiple of 4
VUID-vkCmdFillBuffer-videocodingYNoneimplicitvkCmdFillBufferThis command must only be called outside of a video coding scope
VUID-vkCmdInitializeGraphScratchMemoryAMDX-bufferlevelYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-cmdpoolYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameterYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-recordingYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXcommandBuffer must be in the recording state
VUID-vkCmdInitializeGraphScratchMemoryAMDX-renderpassYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXThis command must only be called outside of a render pass instance
VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09143NNoneexplicitvkCmdInitializeGraphScratchMemoryAMDXscratch 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-09144NNoneexplicitvkCmdInitializeGraphScratchMemoryAMDXscratch must be a multiple of 64
VUID-vkCmdInitializeGraphScratchMemoryAMDX-videocodingYNoneimplicitvkCmdInitializeGraphScratchMemoryAMDXThis command must only be called outside of a video coding scope
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdInsertDebugUtilsLabelEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdInsertDebugUtilsLabelEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdInsertDebugUtilsLabelEXTcommandBuffer must be in the recording state
VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkCmdInsertDebugUtilsLabelEXTpLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkCmdInsertDebugUtilsLabelEXT-videocodingYNoneimplicitvkCmdInsertDebugUtilsLabelEXTThis command must only be called outside of a video coding scope
VUID-vkCmdNextSubpass-None-00909YNegativeSubpass.NextSubpassExcessiveexplicitvkCmdNextSubpassThe current subpass index must be less than the number of subpasses in the render pass minus one
VUID-vkCmdNextSubpass-None-02349YNegativeTransformFeedback.CmdNextSubpassexplicitvkCmdNextSubpassThis command must not be recorded when transform feedback is active
VUID-vkCmdNextSubpass-bufferlevelYNoneimplicitvkCmdNextSubpasscommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdNextSubpass-commandBuffer-cmdpoolYNoneimplicitvkCmdNextSubpassThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdNextSubpass-commandBuffer-parameterYNoneimplicitvkCmdNextSubpasscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdNextSubpass-commandBuffer-recordingYNoneimplicitvkCmdNextSubpasscommandBuffer must be in the recording state
VUID-vkCmdNextSubpass-contents-parameterYNoneimplicitvkCmdNextSubpasscontents must be a valid VkSubpassContents value
VUID-vkCmdNextSubpass-renderpassYNegativeSubpass.NextSubpassNoRenderPassimplicitvkCmdNextSubpassThis command must only be called inside of a render pass instance
VUID-vkCmdNextSubpass-videocodingYNoneimplicitvkCmdNextSubpassThis command must only be called outside of a video coding scope
VUID-vkCmdNextSubpass2-None-02350YNoneexplicitvkCmdNextSubpass2This command must not be recorded when transform feedback is active
VUID-vkCmdNextSubpass2-None-03102YNegativeSubpass.NextSubpassExcessiveexplicitvkCmdNextSubpass2The current subpass index must be less than the number of subpasses in the render pass minus one
VUID-vkCmdNextSubpass2-bufferlevelYNoneimplicitvkCmdNextSubpass2commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdNextSubpass2-commandBuffer-cmdpoolYNoneimplicitvkCmdNextSubpass2The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdNextSubpass2-commandBuffer-parameterYNoneimplicitvkCmdNextSubpass2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdNextSubpass2-commandBuffer-recordingYNoneimplicitvkCmdNextSubpass2commandBuffer must be in the recording state
VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameterYNoneimplicitvkCmdNextSubpass2pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure
VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameterYNoneimplicitvkCmdNextSubpass2pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure
VUID-vkCmdNextSubpass2-renderpassYNoneimplicitvkCmdNextSubpass2This command must only be called inside of a render pass instance
VUID-vkCmdNextSubpass2-videocodingYNoneimplicitvkCmdNextSubpass2This command must only be called outside of a video coding scope
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpoolYNoneimplicitvkCmdOpticalFlowExecuteNVThe VkCommandPool that commandBuffer was allocated from must support optical flow operations
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameterYNoneimplicitvkCmdOpticalFlowExecuteNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-recordingYNoneimplicitvkCmdOpticalFlowExecuteNVcommandBuffer must be in the recording state
VUID-vkCmdOpticalFlowExecuteNV-commonparentYNoneimplicitvkCmdOpticalFlowExecuteNVBoth of commandBuffer, and session must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameterYNoneimplicitvkCmdOpticalFlowExecuteNVpExecuteInfo must be a valid pointer to a valid VkOpticalFlowExecuteInfoNV structure
VUID-vkCmdOpticalFlowExecuteNV-renderpassYNoneimplicitvkCmdOpticalFlowExecuteNVThis command must only be called outside of a render pass instance
VUID-vkCmdOpticalFlowExecuteNV-session-parameterYNoneimplicitvkCmdOpticalFlowExecuteNVsession must be a valid VkOpticalFlowSessionNV handle
VUID-vkCmdOpticalFlowExecuteNV-videocodingYNoneimplicitvkCmdOpticalFlowExecuteNVThis command must only be called outside of a video coding scope
VUID-vkCmdPipelineBarrier-None-07889YNegativeSyncObject.ImageBarrierSubpassConflicts, NegativeSyncObject.RenderPassPipelineBarrierGraphicsStageexplicitvkCmdPipelineBarrierIf 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-07890NNoneexplicitvkCmdPipelineBarrierIf 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-07892YNegativeSyncObject.RenderPassPipelineBarrierGraphicsStageexplicitvkCmdPipelineBarrierIf 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-07893YNoneexplicitvkCmdPipelineBarrierIf 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-09553YNegativeDynamicRendering.BarrierShaderTileFeaturesNotEnabled, NegativeDynamicRendering.WithoutShaderTileImageAndBarrier, NegativeDynamicRenderingLocalRead.ImageBarrierRequireFeatureexplicitvkCmdPipelineBarrierIf none of the shaderTileImageColorReadAccess, shaderTileImageStencilReadAccess, or shaderTileImageDepthReadAccess features are enabled, and the dynamicRenderingLocalRead feature is not enabled, vkCmdPipelineBarrier must not be called within a render pass instance started with vkCmdBeginRendering
VUID-vkCmdPipelineBarrier-None-09554YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeDynamicRenderingLocalRead.ImageBarrier, NegativeDynamicRenderingLocalRead.ImageBarrierNoBufferOrImage, NegativeDynamicRenderingLocalRead.ImageBarrierOwnershipexplicitvkCmdPipelineBarrierIf the dynamicRenderingLocalRead feature is not enabled, and vkCmdPipelineBarrier is called within a render pass instance started with vkCmdBeginRendering, there must be no buffer or image memory barriers specified by this command
VUID-vkCmdPipelineBarrier-None-09586NNoneexplicitvkCmdPipelineBarrierIf the dynamicRenderingLocalRead feature is not enabled, and vkCmdPipelineBarrier is called within a render pass instance started with vkCmdBeginRendering, memory barriers specified by this command must only include VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, or VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT in their access masks
VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178YNegativeSyncObject.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarrierIf vkCmdPipelineBarrier is called within a render pass instance using a VkRenderPass object, it must not include any buffer memory barriers
VUID-vkCmdPipelineBarrier-commandBuffer-cmdpoolYNoneimplicitvkCmdPipelineBarrierThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdPipelineBarrier-commandBuffer-parameterYNoneimplicitvkCmdPipelineBarriercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPipelineBarrier-commandBuffer-recordingYNoneimplicitvkCmdPipelineBarriercommandBuffer must be in the recording state
VUID-vkCmdPipelineBarrier-dependencyFlags-01186YNoneexplicitvkCmdPipelineBarrierIf vkCmdPipelineBarrier is called outside of a render pass instance, the dependency flags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-vkCmdPipelineBarrier-dependencyFlags-07891YNegativeDynamicRendering.WithShaderTileImageAndBarrierexplicitvkCmdPipelineBarrierIf vkCmdPipelineBarrier is called within a render pass instance, 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-parameterYNoneimplicitvkCmdPipelineBarrierdependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-vkCmdPipelineBarrier-dstAccessMask-02816YNegativeDynamicRendering.WithShaderTileImageAndBarrierexplicitvkCmdPipelineBarrierThe 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.BarrierSync1AccessAccelerationStructureRayQueryDisabledexplicitvkCmdPipelineBarrierIf 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-03937YNoneexplicitvkCmdPipelineBarrierIf the synchronization2 feature is not enabled, dstStageMask must not be 0
VUID-vkCmdPipelineBarrier-dstStageMask-04090YNoneexplicitvkCmdPipelineBarrierIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdPipelineBarrier-dstStageMask-04091YNoneexplicitvkCmdPipelineBarrierIf 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-04092YNoneexplicitvkCmdPipelineBarrierIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04093YNoneexplicitvkCmdPipelineBarrierIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04094YNoneexplicitvkCmdPipelineBarrierIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdPipelineBarrierIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdPipelineBarrierIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-06462YNegativeSyncObject.PipelineStageConditionalRenderingWithWrongQueueexplicitvkCmdPipelineBarrierAny 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-07318YNoneexplicitvkCmdPipelineBarrierIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdPipelineBarrier-dstStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdPipelineBarrierIf 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-parameterYNoneimplicitvkCmdPipelineBarrierdstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdPipelineBarrier-image-04073YNegativeSecondaryCommandBuffer.Barrier, NegativeSubpass.ImageBarrierSubpassConflict, NegativeSyncObject.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarrierIf 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.PipelineBarrierUnusedexplicitvkCmdPipelineBarrierIf 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-09374YNoneexplicitvkCmdPipelineBarrierIf 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-image-09555YNegativeDynamicRenderingLocalRead.ImageBarrierInProperLayoutexplicitvkCmdPipelineBarrierIf vkCmdPipelineBarrier is called within a render pass instance started with vkCmdBeginRendering, and the image member of any image memory barrier is used as an attachment in the current render pass instance, it must be in the VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR or VK_IMAGE_LAYOUT_GENERAL layout
VUID-vkCmdPipelineBarrier-oldLayout-01181YNegativeSyncObject.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarrierIf 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-02817YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeSyncObject.BarriersexplicitvkCmdPipelineBarrierFor 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-02818YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeSyncObject.BarriersexplicitvkCmdPipelineBarrierFor 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-parameterYNoneimplicitvkCmdPipelineBarrierIf bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures
VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819YNoneexplicitvkCmdPipelineBarrierFor 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-02820YVkBestPracticesLayerTest.TransitionFromUndefinedToReadOnlyexplicitvkCmdPipelineBarrierFor 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-parameterYNoneimplicitvkCmdPipelineBarrierIf imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures
VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameterYNoneimplicitvkCmdPipelineBarrierIf memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures
VUID-vkCmdPipelineBarrier-srcAccessMask-02815YNegativeDynamicRendering.WithShaderTileImageAndBarrierexplicitvkCmdPipelineBarrierThe 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.BarrierSync1NoCrashexplicitvkCmdPipelineBarrierIf 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.ImageBarrierSubpassConflictsexplicitvkCmdPipelineBarrierIf 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-03937YNoneexplicitvkCmdPipelineBarrierIf the synchronization2 feature is not enabled, srcStageMask must not be 0
VUID-vkCmdPipelineBarrier-srcStageMask-04090YNoneexplicitvkCmdPipelineBarrierIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdPipelineBarrier-srcStageMask-04091YNoneexplicitvkCmdPipelineBarrierIf 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-04092YNoneexplicitvkCmdPipelineBarrierIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04093YNoneexplicitvkCmdPipelineBarrierIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04094YNoneexplicitvkCmdPipelineBarrierIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdPipelineBarrierIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdPipelineBarrierIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-06461YNegativeSyncObject.Barriers, NegativeSyncObject.PipelineStageConditionalRenderingWithWrongQueueexplicitvkCmdPipelineBarrierAny 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-07318YNoneexplicitvkCmdPipelineBarrierIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdPipelineBarrier-srcStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdPipelineBarrierIf 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-09556YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeDynamicRenderingLocalRead.ImageBarrierFramebufferStagesOnlyexplicitvkCmdPipelineBarrierIf vkCmdPipelineBarrier is called within a render pass instance started with vkCmdBeginRendering, this command must only specify framebuffer-space stages in srcStageMask and dstStageMask
VUID-vkCmdPipelineBarrier-srcStageMask-09633YNegativeSyncObject.ImageBarrierWithHostStageSync1explicitvkCmdPipelineBarrierIf either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_HOST_BIT, for any element of pImageMemoryBarriers, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-vkCmdPipelineBarrier-srcStageMask-09634YNegativeSyncObject.BufferBarrierWithHostStageSync1explicitvkCmdPipelineBarrierIf either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_HOST_BIT, for any element of pBufferMemoryBarriers, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-vkCmdPipelineBarrier-srcStageMask-parameterYNoneimplicitvkCmdPipelineBarriersrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdPipelineBarrier2-None-07889YNoneexplicitvkCmdPipelineBarrier2If 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-07890NNoneexplicitvkCmdPipelineBarrier2If 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-07892YNoneexplicitvkCmdPipelineBarrier2If 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-07893YNoneexplicitvkCmdPipelineBarrier2If 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-09553YNegativeDynamicRendering.BarrierShaderTileFeaturesNotEnabled, NegativeDynamicRendering.WithoutShaderTileImageAndBarrier, NegativeDynamicRenderingLocalRead.ImageBarrierRequireFeatureexplicitvkCmdPipelineBarrier2If none of the shaderTileImageColorReadAccess, shaderTileImageStencilReadAccess, or shaderTileImageDepthReadAccess features are enabled, and the dynamicRenderingLocalRead feature is not enabled, vkCmdPipelineBarrier2 must not be called within a render pass instance started with vkCmdBeginRendering
VUID-vkCmdPipelineBarrier2-None-09554YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeDynamicRenderingLocalRead.ImageBarrier, NegativeDynamicRenderingLocalRead.ImageBarrierNoBufferOrImage, NegativeDynamicRenderingLocalRead.ImageBarrierOwnershipexplicitvkCmdPipelineBarrier2If the dynamicRenderingLocalRead feature is not enabled, and vkCmdPipelineBarrier2 is called within a render pass instance started with vkCmdBeginRendering, there must be no buffer or image memory barriers specified by this command
VUID-vkCmdPipelineBarrier2-None-09586NNoneexplicitvkCmdPipelineBarrier2If the dynamicRenderingLocalRead feature is not enabled, and vkCmdPipelineBarrier2 is called within a render pass instance started with vkCmdBeginRendering, memory barriers specified by this command must only include VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, or VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT in their access masks
VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178YNoneexplicitvkCmdPipelineBarrier2If vkCmdPipelineBarrier2 is called within a render pass instance using a VkRenderPass object, it must not include any buffer memory barriers
VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpoolYNoneimplicitvkCmdPipelineBarrier2The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdPipelineBarrier2-commandBuffer-parameterYNoneimplicitvkCmdPipelineBarrier2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPipelineBarrier2-commandBuffer-recordingYNoneimplicitvkCmdPipelineBarrier2commandBuffer must be in the recording state
VUID-vkCmdPipelineBarrier2-dependencyFlags-01186YNegativeDynamicRenderingLocalRead.DependencyViewLocalOutsideRenderingexplicitvkCmdPipelineBarrier2If vkCmdPipelineBarrier2 is called outside of a render pass instance, the dependency flags must not include VK_DEPENDENCY_VIEW_LOCAL_BIT
VUID-vkCmdPipelineBarrier2-dependencyFlags-07891YNegativeDynamicRenderingLocalRead.DependencyViewLocalInsideRenderingexplicitvkCmdPipelineBarrier2If vkCmdPipelineBarrier2 is called within a render pass instance, 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-09674YNegativeSyncObject.MemoryBarrierStageNotSupportedByQueueexplicitvkCmdPipelineBarrier2The dstStageMask member of any element of the pMemoryBarriers member of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdPipelineBarrier2-dstStageMask-09676YNegativeSyncObject.BufferBarrierStageNotSupportedByQueue, NegativeSyncObject.ImageBarrierStageNotSupportedByQueueexplicitvkCmdPipelineBarrier2If a buffer or image memory barrier does not specify an release operation, the respective dstStageMask member of the element of the pBufferMemoryBarriers or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdPipelineBarrier2-image-04073YNoneexplicitvkCmdPipelineBarrier2If 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-09373YNoneexplicitvkCmdPipelineBarrier2If 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.PipelineBarrierexplicitvkCmdPipelineBarrier2If 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-image-09555YNegativeDynamicRenderingLocalRead.ImageBarrierInProperLayoutexplicitvkCmdPipelineBarrier2If vkCmdPipelineBarrier2 is called within a render pass instance started with vkCmdBeginRendering, and the image member of any image memory barrier is used as an attachment in the current render pass instance, it must be in the VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR or VK_IMAGE_LAYOUT_GENERAL layout
VUID-vkCmdPipelineBarrier2-oldLayout-01181YNoneexplicitvkCmdPipelineBarrier2If 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-parameterYNoneimplicitvkCmdPipelineBarrier2pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure
VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182YNoneexplicitvkCmdPipelineBarrier2If 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-09556YNegativeDynamicRendering.WithShaderTileImageAndBarrier, NegativeDynamicRenderingLocalRead.FramebufferSpaceStagesDst, NegativeDynamicRenderingLocalRead.ImageBarrierFramebufferStagesOnlyexplicitvkCmdPipelineBarrier2If vkCmdPipelineBarrier2 is called within a render pass instance started with vkCmdBeginRendering, this command must only specify framebuffer-space stages in srcStageMask and dstStageMask
VUID-vkCmdPipelineBarrier2-srcStageMask-09673YNegativeSyncObject.MemoryBarrierStageNotSupportedByQueueexplicitvkCmdPipelineBarrier2The srcStageMask member of any element of the pMemoryBarriers member of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdPipelineBarrier2-srcStageMask-09675YNegativeSyncObject.BufferBarrierStageNotSupportedByQueue, NegativeSyncObject.ImageBarrierStageNotSupportedByQueueexplicitvkCmdPipelineBarrier2If a buffer or image memory barrier does not specify an acquire operation, the respective srcStageMask member of the element of the pBufferMemoryBarriers or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdPipelineBarrier2-synchronization2-03848YNegativeSyncObject.Sync2LayoutFeature, NegativeSyncVal.Sync2FeatureDisabledexplicitvkCmdPipelineBarrier2The synchronization2 feature must be enabled
VUID-vkCmdPreprocessGeneratedCommandsEXT-bufferlevelYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTcommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-11081YNoneexplicitvkCmdPreprocessGeneratedCommandsEXTcommandBuffer must not be a protected command buffer
VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-recordingYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTcommandBuffer must be in the recording state
VUID-vkCmdPreprocessGeneratedCommandsEXT-commonparentYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTBoth of commandBuffer, and stateCommandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPreprocessGeneratedCommandsEXT-deviceGeneratedCommands-11087YNoneexplicitvkCmdPreprocessGeneratedCommandsEXTThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT::deviceGeneratedCommands feature must be enabled
VUID-vkCmdPreprocessGeneratedCommandsEXT-indirectCommandsLayout-11084YNegativeDeviceGeneratedCommands.PreprocessNoBoundPipelineexplicitvkCmdPreprocessGeneratedCommandsEXTIf the token sequence of the passed VkGeneratedCommandsInfoEXT::indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the initial shader state of VkGeneratedCommandsInfoEXT::indirectExecutionSet must be bound on stateCommandBuffer
VUID-vkCmdPreprocessGeneratedCommandsEXT-pGeneratedCommandsInfo-11082YNegativeDeviceGeneratedCommands.PreprocessCommandLayoutFlagexplicitvkCmdPreprocessGeneratedCommandsEXTpGeneratedCommandsInfo's indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT bit set
VUID-vkCmdPreprocessGeneratedCommandsEXT-pGeneratedCommandsInfo-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTpGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoEXT structure
VUID-vkCmdPreprocessGeneratedCommandsEXT-renderpassYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTThis command must only be called outside of a render pass instance
VUID-vkCmdPreprocessGeneratedCommandsEXT-stateCommandBuffer-11138YNegativeDeviceGeneratedCommands.PreprocessRecordingStateexplicitvkCmdPreprocessGeneratedCommandsEXTstateCommandBuffer must be in the recording state
VUID-vkCmdPreprocessGeneratedCommandsEXT-stateCommandBuffer-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTstateCommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPreprocessGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11088YNoneexplicitvkCmdPreprocessGeneratedCommandsEXTOnly stages specified in VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT::supportedIndirectCommandsShaderStages can be set in pGeneratedCommandsInfo->shaderStages
VUID-vkCmdPreprocessGeneratedCommandsEXT-videocodingYNoneimplicitvkCmdPreprocessGeneratedCommandsEXTThis command must only be called outside of a video coding scope
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974NNoneexplicitvkCmdPreprocessGeneratedCommandsNVcommandBuffer must not be a protected command buffer
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpoolYNoneimplicitvkCmdPreprocessGeneratedCommandsNVThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-recordingYNoneimplicitvkCmdPreprocessGeneratedCommandsNVcommandBuffer must be in the recording state
VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928NNoneexplicitvkCmdPreprocessGeneratedCommandsNVThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927NNoneexplicitvkCmdPreprocessGeneratedCommandsNVpGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set
VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsNVpGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure
VUID-vkCmdPreprocessGeneratedCommandsNV-renderpassYNoneimplicitvkCmdPreprocessGeneratedCommandsNVThis command must only be called outside of a render pass instance
VUID-vkCmdPreprocessGeneratedCommandsNV-videocodingYNoneimplicitvkCmdPreprocessGeneratedCommandsNVThis command must only be called outside of a video coding scope
VUID-vkCmdPushConstants-commandBuffer-cmdpoolYNoneimplicitvkCmdPushConstantsThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushConstants-commandBuffer-parameterYNoneimplicitvkCmdPushConstantscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushConstants-commandBuffer-recordingYNoneimplicitvkCmdPushConstantscommandBuffer must be in the recording state
VUID-vkCmdPushConstants-commonparentYNoneimplicitvkCmdPushConstantsBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushConstants-layout-parameterYNoneimplicitvkCmdPushConstantslayout must be a valid VkPipelineLayout handle
VUID-vkCmdPushConstants-offset-00368YNegativeShaderPushConstants.RangeexplicitvkCmdPushConstantsoffset must be a multiple of 4
VUID-vkCmdPushConstants-offset-00370YNegativeShaderPushConstants.RangeexplicitvkCmdPushConstantsoffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-vkCmdPushConstants-offset-01795YNegativeCommand.PushConstantsexplicitvkCmdPushConstantsFor 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.PushConstantsexplicitvkCmdPushConstantsFor 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-parameterYNoneimplicitvkCmdPushConstantspValues must be a valid pointer to an array of size bytes
VUID-vkCmdPushConstants-size-00369YNegativeShaderPushConstants.RangeexplicitvkCmdPushConstantssize must be a multiple of 4
VUID-vkCmdPushConstants-size-00371YNegativeShaderPushConstants.RangeexplicitvkCmdPushConstantssize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset
VUID-vkCmdPushConstants-size-arraylengthYNegativeShaderPushConstants.RangeimplicitvkCmdPushConstantssize must be greater than 0
VUID-vkCmdPushConstants-stageFlags-parameterYNoneimplicitvkCmdPushConstantsstageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-vkCmdPushConstants-stageFlags-requiredbitmaskYNegativeCommand.PushConstantsimplicitvkCmdPushConstantsstageFlags must not be 0
VUID-vkCmdPushConstants-videocodingYNoneimplicitvkCmdPushConstantsThis command must only be called outside of a video coding scope
VUID-vkCmdPushConstants2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdPushConstants2KHRThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushConstants2KHR-commandBuffer-parameterYNoneimplicitvkCmdPushConstants2KHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushConstants2KHR-commandBuffer-recordingYNoneimplicitvkCmdPushConstants2KHRcommandBuffer must be in the recording state
VUID-vkCmdPushConstants2KHR-pPushConstantsInfo-parameterYNoneimplicitvkCmdPushConstants2KHRpPushConstantsInfo must be a valid pointer to a valid VkPushConstantsInfoKHR structure
VUID-vkCmdPushConstants2KHR-videocodingYNoneimplicitvkCmdPushConstants2KHRThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdPushDescriptorSet2KHRThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSet2KHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-recordingYNoneimplicitvkCmdPushDescriptorSet2KHRcommandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSet2KHR-pPushDescriptorSetInfo-09468YNoneexplicitvkCmdPushDescriptorSet2KHREach bit in pPushDescriptorSetInfo->stageFlags must be a stage supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdPushDescriptorSet2KHR-pPushDescriptorSetInfo-parameterYNoneimplicitvkCmdPushDescriptorSet2KHRpPushDescriptorSetInfo must be a valid pointer to a valid VkPushDescriptorSetInfoKHR structure
VUID-vkCmdPushDescriptorSet2KHR-videocodingYNoneimplicitvkCmdPushDescriptorSet2KHRThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpoolYNegativePushDescriptor.SetCmdPushimplicitvkCmdPushDescriptorSetKHRThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSetKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recordingYNegativePushDescriptor.SetCmdPushimplicitvkCmdPushDescriptorSetKHRcommandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSetKHR-commonparentYNoneimplicitvkCmdPushDescriptorSetKHRBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylengthYNoneimplicitvkCmdPushDescriptorSetKHRdescriptorWriteCount must be greater than 0
VUID-vkCmdPushDescriptorSetKHR-layout-parameterYNegativePushDescriptor.DestoryLayoutimplicitvkCmdPushDescriptorSetKHRlayout must be a valid VkPipelineLayout handle
VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494YNegativeDescriptors.PushDescriptorWithoutInfo, NegativePushDescriptor.DescriptorWriteMissingImageInfoexplicitvkCmdPushDescriptorSetKHRFor 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-parameterYNoneimplicitvkCmdPushDescriptorSetKHRpDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures
VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363YNegativePushDescriptor.SetCmdPushexplicitvkCmdPushDescriptorSetKHRpipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameterYNoneimplicitvkCmdPushDescriptorSetKHRpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdPushDescriptorSetKHR-set-00364YNegativePushDescriptor.SetCmdPushexplicitvkCmdPushDescriptorSetKHRset must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdPushDescriptorSetKHR-set-00365YNegativePushDescriptor.SetCmdPushexplicitvkCmdPushDescriptorSetKHRset 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-videocodingYNoneimplicitvkCmdPushDescriptorSetKHRThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-recordingYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRcommandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-pPushDescriptorSetWithTemplateInfo-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRpPushDescriptorSetWithTemplateInfo must be a valid pointer to a valid VkPushDescriptorSetWithTemplateInfoKHR structure
VUID-vkCmdPushDescriptorSetWithTemplate2KHR-videocodingYNoneimplicitvkCmdPushDescriptorSetWithTemplate2KHRThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366YNegativePushDescriptor.UnsupportedDescriptorTemplateBindPointexplicitvkCmdPushDescriptorSetWithTemplateKHRThe 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-cmdpoolYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recordingYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRcommandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparentYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHREach of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-07994YNegativePushDescriptor.InvalidDescriptorUpdateTemplateTypeexplicitvkCmdPushDescriptorSetWithTemplateKHRdescriptorUpdateTemplate must have been created with a templateType of VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRdescriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993YNegativePushDescriptor.DescriptorTemplateIncompatibleLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRlayout must be compatible with the layout used to create descriptorUpdateTemplate
VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRlayout must be a valid VkPipelineLayout handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686YNegativePushDescriptor.TemplateDestroyDescriptorSetLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRpData 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.DescriptorTemplateIncompatibleLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRset must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07305YNegativePushDescriptor.DescriptorTemplateIncompatibleLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRset 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.DescriptorTemplateIncompatibleLayoutexplicitvkCmdPushDescriptorSetWithTemplateKHRset must be the same value used to create descriptorUpdateTemplate
VUID-vkCmdPushDescriptorSetWithTemplateKHR-videocodingYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHRThis command must only be called outside of a video coding scope
VUID-vkCmdResetEvent-commandBuffer-01157NNoneexplicitvkCmdResetEventcommandBuffer's current device mask must include exactly one physical device
VUID-vkCmdResetEvent-commandBuffer-cmdpoolYNoneimplicitvkCmdResetEventThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdResetEvent-commandBuffer-parameterYNoneimplicitvkCmdResetEventcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetEvent-commandBuffer-recordingYNoneimplicitvkCmdResetEventcommandBuffer must be in the recording state
VUID-vkCmdResetEvent-commonparentYNoneimplicitvkCmdResetEventBoth of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetEvent-event-03834YNegativeSyncVal.EventsCommandHazardsexplicitvkCmdResetEventThere must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkCmdResetEvent-event-03835YNoneexplicitvkCmdResetEventThere must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkCmdResetEvent-event-parameterYNoneimplicitvkCmdResetEventevent must be a valid VkEvent handle
VUID-vkCmdResetEvent-renderpassYNoneimplicitvkCmdResetEventThis command must only be called outside of a render pass instance
VUID-vkCmdResetEvent-stageMask-01153YNegativeSyncObject.StageMaskHostexplicitvkCmdResetEventstageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdResetEvent-stageMask-03937YNoneexplicitvkCmdResetEventIf the synchronization2 feature is not enabled, stageMask must not be 0
VUID-vkCmdResetEvent-stageMask-04090YNoneexplicitvkCmdResetEventIf the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdResetEvent-stageMask-04091YNoneexplicitvkCmdResetEventIf 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-04092YNoneexplicitvkCmdResetEventIf the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04093YNoneexplicitvkCmdResetEventIf the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04094YNoneexplicitvkCmdResetEventIf the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdResetEventIf the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdResetEventIf the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdResetEvent-stageMask-06458YNoneexplicitvkCmdResetEventAny 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-07318YNoneexplicitvkCmdResetEventIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdResetEvent-stageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdResetEventIf 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-parameterYNoneimplicitvkCmdResetEventstageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdResetEvent2-commandBuffer-03833NNoneexplicitvkCmdResetEvent2commandBuffer's current device mask must include exactly one physical device
VUID-vkCmdResetEvent2-commandBuffer-cmdpoolYNoneimplicitvkCmdResetEvent2The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdResetEvent2-commandBuffer-parameterYNoneimplicitvkCmdResetEvent2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetEvent2-commandBuffer-recordingYNoneimplicitvkCmdResetEvent2commandBuffer must be in the recording state
VUID-vkCmdResetEvent2-commonparentYNoneimplicitvkCmdResetEvent2Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetEvent2-event-03831YNoneexplicitvkCmdResetEvent2There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkCmdResetEvent2-event-03832YNoneexplicitvkCmdResetEvent2There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkCmdResetEvent2-event-parameterYNoneimplicitvkCmdResetEvent2event must be a valid VkEvent handle
VUID-vkCmdResetEvent2-renderpassYNoneimplicitvkCmdResetEvent2This command must only be called outside of a render pass instance
VUID-vkCmdResetEvent2-stageMask-03830YNoneexplicitvkCmdResetEvent2stageMask must not include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-vkCmdResetEvent2-stageMask-03929YNoneexplicitvkCmdResetEvent2If the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdResetEvent2-stageMask-03930YNoneexplicitvkCmdResetEvent2If 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-03931YNoneexplicitvkCmdResetEvent2If the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03932YNoneexplicitvkCmdResetEvent2If the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03933YNoneexplicitvkCmdResetEvent2If the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03934YNoneexplicitvkCmdResetEvent2If the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03935YNoneexplicitvkCmdResetEvent2If the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-04957YNoneexplicitvkCmdResetEvent2If the subpassShading feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-vkCmdResetEvent2-stageMask-04995YNoneexplicitvkCmdResetEvent2If the invocationMask feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdResetEvent2-stageMask-07316YNegativeFragmentShadingRate.StageUsage, NegativeFragmentShadingRate.StageUsageNVexplicitvkCmdResetEvent2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdResetEvent2-stageMask-07946YNoneexplicitvkCmdResetEvent2If 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-parameterYNoneimplicitvkCmdResetEvent2stageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdResetEvent2-synchronization2-03829YNegativeSyncVal.Sync2FeatureDisabledexplicitvkCmdResetEvent2The synchronization2 feature must be enabled
VUID-vkCmdResetQueryPool-None-02841YNegativeQuery.ActiveCmdResetQueryPoolexplicitvkCmdResetQueryPoolAll queries used by the command must not be active
VUID-vkCmdResetQueryPool-commandBuffer-cmdpoolYNoneimplicitvkCmdResetQueryPoolThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, encode, or optical flow operations
VUID-vkCmdResetQueryPool-commandBuffer-parameterYNoneimplicitvkCmdResetQueryPoolcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetQueryPool-commandBuffer-recordingYNoneimplicitvkCmdResetQueryPoolcommandBuffer must be in the recording state
VUID-vkCmdResetQueryPool-commonparentYNoneimplicitvkCmdResetQueryPoolBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetQueryPool-firstQuery-02862YNegativeQuery.PerformanceQueryResetexplicitvkCmdResetQueryPoolIf 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.SizesexplicitvkCmdResetQueryPoolfirstQuery must be less than the number of queries in queryPool
VUID-vkCmdResetQueryPool-firstQuery-09437YNegativeQuery.SizesexplicitvkCmdResetQueryPoolThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdResetQueryPool-queryPool-parameterYNegativeQuery.CmdResetQueryPoolWithoutQueryPoolimplicitvkCmdResetQueryPoolqueryPool must be a valid VkQueryPool handle
VUID-vkCmdResetQueryPool-renderpassYNoneimplicitvkCmdResetQueryPoolThis command must only be called outside of a render pass instance
VUID-vkCmdResetQueryPool-videocodingYNoneimplicitvkCmdResetQueryPoolThis command must only be called outside of a video coding scope
VUID-vkCmdResolveImage-commandBuffer-01837YNoneexplicitvkCmdResolveImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdResolveImage-commandBuffer-01838YNoneexplicitvkCmdResolveImageIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdResolveImage-commandBuffer-01839YNoneexplicitvkCmdResolveImageIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdResolveImage-commandBuffer-cmdpoolYNoneimplicitvkCmdResolveImageThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdResolveImage-commandBuffer-parameterYNoneimplicitvkCmdResolveImagecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResolveImage-commandBuffer-recordingYNoneimplicitvkCmdResolveImagecommandBuffer must be in the recording state
VUID-vkCmdResolveImage-commonparentYNoneimplicitvkCmdResolveImageEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResolveImage-dstImage-00258YNoneexplicitvkCmdResolveImageIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdResolveImage-dstImage-00259YNegativeCommand.ResolveImageHighSampleCountexplicitvkCmdResolveImagedstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdResolveImage-dstImage-00276YNegativeCommand.ResolveImageImageTypeexplicitvkCmdResolveImageIf 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.ResolveImageSizeExceededexplicitvkCmdResolveImageIf 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.ResolveDepthImageexplicitvkCmdResolveImageThe format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-vkCmdResolveImage-dstImage-02546YNoneexplicitvkCmdResolveImagedstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdResolveImage-dstImage-06764YNegativeCommand.ResolveUsageexplicitvkCmdResolveImagedstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdResolveImage-dstImage-06765YNegativeCommand.ResolveUsageexplicitvkCmdResolveImageThe format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdResolveImage-dstImage-parameterYNoneimplicitvkCmdResolveImagedstImage must be a valid VkImage handle
VUID-vkCmdResolveImage-dstImageLayout-00262YNegativeCommand.ResolveImageLayoutMismatchexplicitvkCmdResolveImagedstImageLayout 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-01401YNoneexplicitvkCmdResolveImagedstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdResolveImage-dstImageLayout-parameterYNoneimplicitvkCmdResolveImagedstImageLayout must be a valid VkImageLayout value
VUID-vkCmdResolveImage-dstOffset-00274YNegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImageFor 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.ResolveImageSizeExceededexplicitvkCmdResolveImageFor 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.ResolveImageSizeExceededexplicitvkCmdResolveImageFor 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.ResolveInvalidSubresourceexplicitvkCmdResolveImageThe 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.ResolveInvalidSubresourceexplicitvkCmdResolveImageIf 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-06519NNoneexplicitvkCmdResolveImageIf 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-00255NNoneexplicitvkCmdResolveImageThe 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-parameterYNoneimplicitvkCmdResolveImagepRegions must be a valid pointer to an array of regionCount valid VkImageResolve structures
VUID-vkCmdResolveImage-regionCount-arraylengthYNoneimplicitvkCmdResolveImageregionCount must be greater than 0
VUID-vkCmdResolveImage-renderpassYNoneimplicitvkCmdResolveImageThis command must only be called outside of a render pass instance
VUID-vkCmdResolveImage-srcImage-00256YNoneexplicitvkCmdResolveImageIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdResolveImage-srcImage-00257YNegativeCommand.ResolveImageLowSampleCountexplicitvkCmdResolveImagesrcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdResolveImage-srcImage-00271YNoneexplicitvkCmdResolveImageIf 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.ResolveImageSizeExceededexplicitvkCmdResolveImageIf 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.ResolveImageFormatMismatchexplicitvkCmdResolveImagesrcImage and dstImage must have been created with the same image format
VUID-vkCmdResolveImage-srcImage-04446YNegativeCommand.ResolveImageImageTypeexplicitvkCmdResolveImageIf dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.layerCount must be 1
VUID-vkCmdResolveImage-srcImage-04447YNoneexplicitvkCmdResolveImageIf 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.ResolveUsageexplicitvkCmdResolveImagesrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdResolveImage-srcImage-06763YNegativeCommand.ResolveUsageexplicitvkCmdResolveImageThe format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdResolveImage-srcImage-parameterYNoneimplicitvkCmdResolveImagesrcImage must be a valid VkImage handle
VUID-vkCmdResolveImage-srcImageLayout-00260YNegativeCommand.ResolveImageLayoutMismatchexplicitvkCmdResolveImagesrcImageLayout 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-01400YNoneexplicitvkCmdResolveImagesrcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdResolveImage-srcImageLayout-parameterYNoneimplicitvkCmdResolveImagesrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdResolveImage-srcOffset-00269YNegativeCommand.ResolveImageSizeExceededexplicitvkCmdResolveImageFor 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.ResolveImageSizeExceededexplicitvkCmdResolveImageFor 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.ResolveImageSizeExceededexplicitvkCmdResolveImageFor 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.ResolveInvalidSubresourceexplicitvkCmdResolveImageThe 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.ResolveInvalidSubresourceexplicitvkCmdResolveImageIf 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-videocodingYNoneimplicitvkCmdResolveImageThis command must only be called outside of a video coding scope
VUID-vkCmdResolveImage2-commandBuffer-01837YNoneexplicitvkCmdResolveImage2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdResolveImage2-commandBuffer-01838YNoneexplicitvkCmdResolveImage2If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdResolveImage2-commandBuffer-01839YNoneexplicitvkCmdResolveImage2If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdResolveImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdResolveImage2The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdResolveImage2-commandBuffer-parameterYNoneimplicitvkCmdResolveImage2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResolveImage2-commandBuffer-recordingYNoneimplicitvkCmdResolveImage2commandBuffer must be in the recording state
VUID-vkCmdResolveImage2-pResolveImageInfo-parameterYNoneimplicitvkCmdResolveImage2pResolveImageInfo must be a valid pointer to a valid VkResolveImageInfo2 structure
VUID-vkCmdResolveImage2-renderpassYNoneimplicitvkCmdResolveImage2This command must only be called outside of a render pass instance
VUID-vkCmdResolveImage2-videocodingYNoneimplicitvkCmdResolveImage2This command must only be called outside of a video coding scope
VUID-vkCmdSetAlphaToCoverageEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetAlphaToCoverageEnableEXTAt least one of the following must be true: The extendedDynamicState3AlphaToCoverageEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetAlphaToCoverageEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetAlphaToCoverageEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetAlphaToCoverageEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetAlphaToCoverageEnableEXT-videocodingYNoneimplicitvkCmdSetAlphaToCoverageEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetAlphaToOneEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetAlphaToOneEnableEXTAt least one of the following must be true: The extendedDynamicState3AlphaToOneEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetAlphaToOneEnableEXT-alphaToOne-07607YNegativeDynamicState.AlphaToOneFeatureexplicitvkCmdSetAlphaToOneEnableEXTIf the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetAlphaToOneEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetAlphaToOneEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetAlphaToOneEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetAlphaToOneEnableEXT-videocodingYNoneimplicitvkCmdSetAlphaToOneEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863YNegativeDynamicState.AttachmentFeedbackLoopEnableAspectMaskexplicitvkCmdSetAttachmentFeedbackLoopEnableEXTaspectMask 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-parameterYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862YNegativeDynamicState.AttachmentFeedbackLoopEnableFeaturesexplicitvkCmdSetAttachmentFeedbackLoopEnableEXTThe attachmentFeedbackLoopDynamicState feature must be enabled
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864YNegativeDynamicState.AttachmentFeedbackLoopEnableFeaturesexplicitvkCmdSetAttachmentFeedbackLoopEnableEXTIf the attachmentFeedbackLoopLayout feature is not enabled, aspectMask must be VK_IMAGE_ASPECT_NONE
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocodingYNoneimplicitvkCmdSetAttachmentFeedbackLoopEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetBlendConstants-commandBuffer-cmdpoolYNoneimplicitvkCmdSetBlendConstantsThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetBlendConstants-commandBuffer-parameterYNoneimplicitvkCmdSetBlendConstantscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetBlendConstants-commandBuffer-recordingYNoneimplicitvkCmdSetBlendConstantscommandBuffer must be in the recording state
VUID-vkCmdSetBlendConstants-videocodingYNoneimplicitvkCmdSetBlendConstantsThis command must only be called outside of a video coding scope
VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCheckpointNVThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetCheckpointNV-commandBuffer-parameterYNoneimplicitvkCmdSetCheckpointNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCheckpointNV-commandBuffer-recordingYNegativeTooling.ValidateNVDeviceDiagnosticCheckpointsimplicitvkCmdSetCheckpointNVcommandBuffer must be in the recording state
VUID-vkCmdSetCheckpointNV-videocodingYNoneimplicitvkCmdSetCheckpointNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoarseSampleOrderNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoarseSampleOrderNVcommandBuffer must be in the recording state
VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235NNoneexplicitvkCmdSetCoarseSampleOrderNVThe array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members
VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNVIf customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures
VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdSetCoarseSampleOrderNVIf sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0
VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNVsampleOrderType must be a valid VkCoarseSampleOrderTypeNV value
VUID-vkCmdSetCoarseSampleOrderNV-videocodingYNoneimplicitvkCmdSetCoarseSampleOrderNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendAdvancedEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetColorBlendAdvancedEXTAt least one of the following must be true: The extendedDynamicState3ColorBlendAdvanced feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetColorBlendAdvancedEXT-attachmentCount-arraylengthYNoneimplicitvkCmdSetColorBlendAdvancedEXTattachmentCount must be greater than 0
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendAdvancedEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendAdvancedEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendAdvancedEXTcommandBuffer must be in the recording state
VUID-vkCmdSetColorBlendAdvancedEXT-pColorBlendAdvanced-parameterYNoneimplicitvkCmdSetColorBlendAdvancedEXTpColorBlendAdvanced must be a valid pointer to an array of attachmentCount valid VkColorBlendAdvancedEXT structures
VUID-vkCmdSetColorBlendAdvancedEXT-videocodingYNoneimplicitvkCmdSetColorBlendAdvancedEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetColorBlendEnableEXTAt least one of the following must be true: The extendedDynamicState3ColorBlendEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetColorBlendEnableEXT-attachmentCount-arraylengthYNegativeDynamicState.SetColorBlendEnableArrayLengthimplicitvkCmdSetColorBlendEnableEXTattachmentCount must be greater than 0
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetColorBlendEnableEXT-pColorBlendEnables-parameterYNoneimplicitvkCmdSetColorBlendEnableEXTpColorBlendEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-vkCmdSetColorBlendEnableEXT-videocodingYNoneimplicitvkCmdSetColorBlendEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendEquationEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetColorBlendEquationEXTAt least one of the following must be true: The extendedDynamicState3ColorBlendEquation feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetColorBlendEquationEXT-attachmentCount-arraylengthYNoneimplicitvkCmdSetColorBlendEquationEXTattachmentCount must be greater than 0
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendEquationEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendEquationEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendEquationEXTcommandBuffer must be in the recording state
VUID-vkCmdSetColorBlendEquationEXT-pColorBlendEquations-parameterYNoneimplicitvkCmdSetColorBlendEquationEXTpColorBlendEquations must be a valid pointer to an array of attachmentCount valid VkColorBlendEquationEXT structures
VUID-vkCmdSetColorBlendEquationEXT-videocodingYNoneimplicitvkCmdSetColorBlendEquationEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorWriteEnableEXT-None-04803YNegativeDynamicState.ColorWriteEnableFeatureexplicitvkCmdSetColorWriteEnableEXTThe colorWriteEnable feature must be enabled
VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-06656YNegativeDynamicState.ColorWriteEnableAttachmentCountexplicitvkCmdSetColorWriteEnableEXTattachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits
VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylengthYNegativeDynamicState.ColorWriteEnableAttachmentCountimplicitvkCmdSetColorWriteEnableEXTattachmentCount must be greater than 0
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorWriteEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorWriteEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorWriteEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetColorWriteEnableEXT-pColorWriteEnables-parameterYNoneimplicitvkCmdSetColorWriteEnableEXTpColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-vkCmdSetColorWriteEnableEXT-videocodingYNoneimplicitvkCmdSetColorWriteEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetColorWriteMaskEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetColorWriteMaskEXTAt least one of the following must be true: The extendedDynamicState3ColorWriteMask feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetColorWriteMaskEXT-attachmentCount-arraylengthYNegativeDynamicState.SetColorBlendWriteMaskArrayLengthimplicitvkCmdSetColorWriteMaskEXTattachmentCount must be greater than 0
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorWriteMaskEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorWriteMaskEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorWriteMaskEXTcommandBuffer must be in the recording state
VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-parameterYNegativeDynamicState.DrawNotSetColorWriteMaskimplicitvkCmdSetColorWriteMaskEXTpColorWriteMasks must be a valid pointer to an array of attachmentCount valid combinations of VkColorComponentFlagBits values
VUID-vkCmdSetColorWriteMaskEXT-videocodingYNoneimplicitvkCmdSetColorWriteMaskEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetConservativeRasterizationModeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetConservativeRasterizationModeEXTAt least one of the following must be true: The extendedDynamicState3ConservativeRasterizationMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetConservativeRasterizationModeEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetConservativeRasterizationModeEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetConservativeRasterizationModeEXTcommandBuffer must be in the recording state
VUID-vkCmdSetConservativeRasterizationModeEXT-conservativeRasterizationMode-parameterYNoneimplicitvkCmdSetConservativeRasterizationModeEXTconservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value
VUID-vkCmdSetConservativeRasterizationModeEXT-videocodingYNoneimplicitvkCmdSetConservativeRasterizationModeEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationModeNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageModulationModeNVAt least one of the following must be true: The extendedDynamicState3CoverageModulationMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationModeNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationModeNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationModeNVcommandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationModeNV-coverageModulationMode-parameterYNoneimplicitvkCmdSetCoverageModulationModeNVcoverageModulationMode must be a valid VkCoverageModulationModeNV value
VUID-vkCmdSetCoverageModulationModeNV-videocodingYNoneimplicitvkCmdSetCoverageModulationModeNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationTableEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageModulationTableEnableNVAt least one of the following must be true: The extendedDynamicState3CoverageModulationTableEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationTableEnableNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationTableEnableNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationTableEnableNVcommandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationTableEnableNV-videocodingYNoneimplicitvkCmdSetCoverageModulationTableEnableNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationTableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageModulationTableNVAt least one of the following must be true: The extendedDynamicState3CoverageModulationTable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationTableNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationTableNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationTableNVcommandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationTableNV-coverageModulationTableCount-arraylengthYNoneimplicitvkCmdSetCoverageModulationTableNVcoverageModulationTableCount must be greater than 0
VUID-vkCmdSetCoverageModulationTableNV-pCoverageModulationTable-parameterYNoneimplicitvkCmdSetCoverageModulationTableNVpCoverageModulationTable must be a valid pointer to an array of coverageModulationTableCount float values
VUID-vkCmdSetCoverageModulationTableNV-videocodingYNoneimplicitvkCmdSetCoverageModulationTableNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageReductionModeNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageReductionModeNVAt least one of the following must be true: The extendedDynamicState3CoverageReductionMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageReductionModeNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageReductionModeNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageReductionModeNVcommandBuffer must be in the recording state
VUID-vkCmdSetCoverageReductionModeNV-coverageReductionMode-parameterYNoneimplicitvkCmdSetCoverageReductionModeNVcoverageReductionMode must be a valid VkCoverageReductionModeNV value
VUID-vkCmdSetCoverageReductionModeNV-videocodingYNoneimplicitvkCmdSetCoverageReductionModeNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageToColorEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageToColorEnableNVAt least one of the following must be true: The extendedDynamicState3CoverageToColorEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageToColorEnableNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageToColorEnableNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageToColorEnableNVcommandBuffer must be in the recording state
VUID-vkCmdSetCoverageToColorEnableNV-videocodingYNoneimplicitvkCmdSetCoverageToColorEnableNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageToColorLocationNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetCoverageToColorLocationNVAt least one of the following must be true: The extendedDynamicState3CoverageToColorLocation feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageToColorLocationNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageToColorLocationNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageToColorLocationNVcommandBuffer must be in the recording state
VUID-vkCmdSetCoverageToColorLocationNV-videocodingYNoneimplicitvkCmdSetCoverageToColorLocationNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetCullMode-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetCullModeAt 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-cmdpoolYNoneimplicitvkCmdSetCullModeThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCullMode-commandBuffer-parameterYNoneimplicitvkCmdSetCullModecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCullMode-commandBuffer-recordingYNoneimplicitvkCmdSetCullModecommandBuffer must be in the recording state
VUID-vkCmdSetCullMode-cullMode-parameterYNoneimplicitvkCmdSetCullModecullMode must be a valid combination of VkCullModeFlagBits values
VUID-vkCmdSetCullMode-videocodingYNoneimplicitvkCmdSetCullModeThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBias-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBiasThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBias-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBiascommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBias-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBiascommandBuffer must be in the recording state
VUID-vkCmdSetDepthBias-depthBiasClamp-00790YNegativeDynamicState.SetDepthBiasClampDisabledexplicitvkCmdSetDepthBiasIf the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0
VUID-vkCmdSetDepthBias-videocodingYNoneimplicitvkCmdSetDepthBiasThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBias2EXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBias2EXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBias2EXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBias2EXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBias2EXTcommandBuffer must be in the recording state
VUID-vkCmdSetDepthBias2EXT-pDepthBiasInfo-parameterYNoneimplicitvkCmdSetDepthBias2EXTpDepthBiasInfo must be a valid pointer to a valid VkDepthBiasInfoEXT structure
VUID-vkCmdSetDepthBias2EXT-videocodingYNoneimplicitvkCmdSetDepthBias2EXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBiasEnable-None-08970YNegativeDynamicState.ExtendedDynamicState2DisabledexplicitvkCmdSetDepthBiasEnableAt 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-cmdpoolYNoneimplicitvkCmdSetDepthBiasEnableThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBiasEnablecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBiasEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBiasEnablecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBiasEnable-videocodingYNoneimplicitvkCmdSetDepthBiasEnableThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBounds-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBoundsThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBounds-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBoundscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBounds-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBoundscommandBuffer must be in the recording state
VUID-vkCmdSetDepthBounds-maxDepthBounds-00601YNegativeDynamicState.DepthRangeUnrestrictedexplicitvkCmdSetDepthBoundsIf the VK_EXT_depth_range_unrestricted extension is not enabled maxDepthBounds must be between 0.0 and 1.0, inclusive
VUID-vkCmdSetDepthBounds-minDepthBounds-00600YNegativeDynamicState.DepthRangeUnrestrictedexplicitvkCmdSetDepthBoundsIf the VK_EXT_depth_range_unrestricted extension is not enabled minDepthBounds must be between 0.0 and 1.0, inclusive
VUID-vkCmdSetDepthBounds-videocodingYNoneimplicitvkCmdSetDepthBoundsThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBoundsTestEnable-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetDepthBoundsTestEnableAt 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-cmdpoolYNoneimplicitvkCmdSetDepthBoundsTestEnableThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBoundsTestEnablecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBoundsTestEnablecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBoundsTestEnable-depthBounds-10010YNegativeDynamicState.SetDepthBoundsTestEnableFeatureexplicitvkCmdSetDepthBoundsTestEnableIf the depthBounds feature is not enabled, depthBoundsTestEnable must be VK_FALSE
VUID-vkCmdSetDepthBoundsTestEnable-videocodingYNoneimplicitvkCmdSetDepthBoundsTestEnableThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClampEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClampEnableEXTAt least one of the following must be true: The extendedDynamicState3DepthClampEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClampEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClampEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClampEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449YNegativeDynamicState.SetDepthClampFeatureexplicitvkCmdSetDepthClampEnableEXTIf the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE
VUID-vkCmdSetDepthClampEnableEXT-videocodingYNoneimplicitvkCmdSetDepthClampEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClampRangeEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClampRangeEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClampRangeEXTcommandBuffer must be in the recording state
VUID-vkCmdSetDepthClampRangeEXT-depthClampMode-parameterYNoneimplicitvkCmdSetDepthClampRangeEXTdepthClampMode must be a valid VkDepthClampModeEXT value
VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-09647YNegativeDynamicState.DepthClampControlNullStructexplicitvkCmdSetDepthClampRangeEXTIf depthClampMode is set to VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, then pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure.
VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-parameterNNoneimplicitvkCmdSetDepthClampRangeEXTIf pDepthClampRange is not NULL, pDepthClampRange must be a valid pointer to a valid VkDepthClampRangeEXT structure
VUID-vkCmdSetDepthClampRangeEXT-videocodingYNoneimplicitvkCmdSetDepthClampRangeEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClipEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClipEnableEXTAt least one of the following must be true: The extendedDynamicState3DepthClipEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClipEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClipEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClipEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetDepthClipEnableEXT-depthClipEnable-07451YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClipEnableEXTThe depthClipEnable feature must be enabled
VUID-vkCmdSetDepthClipEnableEXT-videocodingYNoneimplicitvkCmdSetDepthClipEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClipNegativeOneToOneEXTAt least one of the following must be true: The extendedDynamicState3DepthClipNegativeOneToOne feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXTcommandBuffer must be in the recording state
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetDepthClipNegativeOneToOneEXTThe depthClipControl feature must be enabled
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-videocodingYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthCompareOp-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetDepthCompareOpAt 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-cmdpoolYNoneimplicitvkCmdSetDepthCompareOpThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthCompareOp-commandBuffer-parameterYNoneimplicitvkCmdSetDepthCompareOpcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthCompareOp-commandBuffer-recordingYNoneimplicitvkCmdSetDepthCompareOpcommandBuffer must be in the recording state
VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameterYNoneimplicitvkCmdSetDepthCompareOpdepthCompareOp must be a valid VkCompareOp value
VUID-vkCmdSetDepthCompareOp-videocodingYNoneimplicitvkCmdSetDepthCompareOpThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthTestEnable-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetDepthTestEnableAt 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-cmdpoolYNoneimplicitvkCmdSetDepthTestEnableThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthTestEnablecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthTestEnablecommandBuffer must be in the recording state
VUID-vkCmdSetDepthTestEnable-videocodingYNoneimplicitvkCmdSetDepthTestEnableThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthWriteEnable-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetDepthWriteEnableAt 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-cmdpoolYNoneimplicitvkCmdSetDepthWriteEnableThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthWriteEnablecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthWriteEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthWriteEnablecommandBuffer must be in the recording state
VUID-vkCmdSetDepthWriteEnable-videocodingYNoneimplicitvkCmdSetDepthWriteEnableThis command must only be called outside of a video coding scope
VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-recordingYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTcommandBuffer must be in the recording state
VUID-vkCmdSetDescriptorBufferOffsets2EXT-descriptorBuffer-09470YNoneexplicitvkCmdSetDescriptorBufferOffsets2EXTThe descriptorBuffer feature must be enabled
VUID-vkCmdSetDescriptorBufferOffsets2EXT-pSetDescriptorBufferOffsetsInfo-09471YNoneexplicitvkCmdSetDescriptorBufferOffsets2EXTEach bit in pSetDescriptorBufferOffsetsInfo->stageFlags must be a stage supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdSetDescriptorBufferOffsets2EXT-pSetDescriptorBufferOffsetsInfo-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTpSetDescriptorBufferOffsetsInfo must be a valid pointer to a valid VkSetDescriptorBufferOffsetsInfoEXT structure
VUID-vkCmdSetDescriptorBufferOffsets2EXT-videocodingYNoneimplicitvkCmdSetDescriptorBufferOffsets2EXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDescriptorBufferOffsetsEXT-None-08060YNoneexplicitvkCmdSetDescriptorBufferOffsetsEXTThe descriptorBuffer feature must be enabled
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTcommandBuffer must be in the recording state
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commonparentYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-08066YNegativeDescriptorBuffer.CmdSetDescriptorBufferOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTThe sum of firstSet and setCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-09006YNegativeDescriptorBuffer.CmdSetDescriptorBufferOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTThe 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-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTlayout must be a valid VkPipelineLayout handle
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08064YNegativeDescriptorBuffer.CmdSetDescriptorBufferOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTEach element of pBufferIndices must be less than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08065YNegativeDescriptorBuffer.CmdSetDescriptorBufferOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTEach element of pBufferIndices must reference a valid descriptor buffer binding set by a previous call to vkCmdBindDescriptorBuffersEXT in commandBuffer
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTpBufferIndices must be a valid pointer to an array of setCount uint32_t values
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08061YNegativeDescriptorBuffer.CmdSetDescriptorBufferOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTThe offsets in pOffsets must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063YNegativeDescriptorBuffer.BindingAndOffsets, NegativeDescriptorBuffer.CmdSetDescriptorBufferOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTThe 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-08126NNoneexplicitvkCmdSetDescriptorBufferOffsetsEXTThe 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-08127NNoneexplicitvkCmdSetDescriptorBufferOffsetsEXTThe 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-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTpOffsets must be a valid pointer to an array of setCount VkDeviceSize values
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-08067YNegativeDescriptorBuffer.CmdSetDescriptorBufferOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXTpipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdSetDescriptorBufferOffsetsEXT-setCount-arraylengthYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTsetCount must be greater than 0
VUID-vkCmdSetDescriptorBufferOffsetsEXT-videocodingYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDeviceMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDeviceMaskThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetDeviceMask-commandBuffer-parameterYNoneimplicitvkCmdSetDeviceMaskcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDeviceMask-commandBuffer-recordingYNoneimplicitvkCmdSetDeviceMaskcommandBuffer must be in the recording state
VUID-vkCmdSetDeviceMask-deviceMask-00108YNegativeWsi.DeviceMaskexplicitvkCmdSetDeviceMaskdeviceMask must be a valid device mask value
VUID-vkCmdSetDeviceMask-deviceMask-00109YNegativeWsi.DeviceMaskexplicitvkCmdSetDeviceMaskdeviceMask must not be zero
VUID-vkCmdSetDeviceMask-deviceMask-00110YNegativeWsi.DeviceMaskexplicitvkCmdSetDeviceMaskdeviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfo::deviceMask value when the command buffer began recording
VUID-vkCmdSetDeviceMask-deviceMask-00111YNegativeWsi.DeviceMaskexplicitvkCmdSetDeviceMaskIf 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-cmdpoolYNoneimplicitvkCmdSetDiscardRectangleEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDiscardRectangleEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDiscardRectangleEXTcommandBuffer must be in the recording state
VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylengthYNoneimplicitvkCmdSetDiscardRectangleEXTdiscardRectangleCount must be greater than 0
VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585YNegativeDynamicState.CmdSetDiscardRectangleEXTRectangleCountexplicitvkCmdSetDiscardRectangleEXTThe sum of firstDiscardRectangle and discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles
VUID-vkCmdSetDiscardRectangleEXT-offset-00588YNegativeDynamicState.CmdSetDiscardRectangleEXTRectangleCountOverflowexplicitvkCmdSetDiscardRectangleEXTEvaluation of (offset.x + extent.width) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow
VUID-vkCmdSetDiscardRectangleEXT-offset-00589YNegativeDynamicState.CmdSetDiscardRectangleEXTRectangleCountOverflowexplicitvkCmdSetDiscardRectangleEXTEvaluation of (offset.y + extent.height) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow
VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameterYNoneimplicitvkCmdSetDiscardRectangleEXTpDiscardRectangles must be a valid pointer to an array of discardRectangleCount VkRect2D structures
VUID-vkCmdSetDiscardRectangleEXT-videocodingYNoneimplicitvkCmdSetDiscardRectangleEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788YNoneexplicitvkCmdSetDiscardRectangleEXTIf this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called
VUID-vkCmdSetDiscardRectangleEXT-x-00587YNegativeDynamicState.CmdSetDiscardRectangleEXTOffsetsexplicitvkCmdSetDiscardRectangleEXTThe x and y member of offset in each VkRect2D element of pDiscardRectangles must be greater than or equal to 0
VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDiscardRectangleEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDiscardRectangleEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDiscardRectangleEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetDiscardRectangleEnableEXT-specVersion-07851YNegativeDynamicState.DiscardRectanglesVersionexplicitvkCmdSetDiscardRectangleEnableEXTThe VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension
VUID-vkCmdSetDiscardRectangleEnableEXT-videocodingYNoneimplicitvkCmdSetDiscardRectangleEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDiscardRectangleModeEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDiscardRectangleModeEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDiscardRectangleModeEXTcommandBuffer must be in the recording state
VUID-vkCmdSetDiscardRectangleModeEXT-discardRectangleMode-parameterYNoneimplicitvkCmdSetDiscardRectangleModeEXTdiscardRectangleMode must be a valid VkDiscardRectangleModeEXT value
VUID-vkCmdSetDiscardRectangleModeEXT-specVersion-07852YNoneexplicitvkCmdSetDiscardRectangleModeEXTThe VK_EXT_discard_rectangles extension must be enabled, and the implementation must support at least specVersion 2 of this extension
VUID-vkCmdSetDiscardRectangleModeEXT-videocodingYNoneimplicitvkCmdSetDiscardRectangleModeEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetEvent-commandBuffer-01152NNoneexplicitvkCmdSetEventThe current device mask of commandBuffer must include exactly one physical device
VUID-vkCmdSetEvent-commandBuffer-cmdpoolYNoneimplicitvkCmdSetEventThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdSetEvent-commandBuffer-parameterYNoneimplicitvkCmdSetEventcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetEvent-commandBuffer-recordingYNoneimplicitvkCmdSetEventcommandBuffer must be in the recording state
VUID-vkCmdSetEvent-commonparentYNoneimplicitvkCmdSetEventBoth of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetEvent-event-parameterYNoneimplicitvkCmdSetEventevent must be a valid VkEvent handle
VUID-vkCmdSetEvent-renderpassYNoneimplicitvkCmdSetEventThis command must only be called outside of a render pass instance
VUID-vkCmdSetEvent-stageMask-01149YNegativeSyncObject.StageMaskHostexplicitvkCmdSetEventstageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdSetEvent-stageMask-03937YNoneexplicitvkCmdSetEventIf the synchronization2 feature is not enabled, stageMask must not be 0
VUID-vkCmdSetEvent-stageMask-04090YNegativeGeometryTessellation.StageMaskGsTsEnabledexplicitvkCmdSetEventIf the geometryShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdSetEvent-stageMask-04091YNegativeGeometryTessellation.StageMaskGsTsEnabledexplicitvkCmdSetEventIf 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-04092YNoneexplicitvkCmdSetEventIf the conditionalRendering feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04093YNoneexplicitvkCmdSetEventIf the fragmentDensityMap feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04094YNoneexplicitvkCmdSetEventIf the transformFeedback feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdSetEventIf the meshShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdSetEventIf the taskShader feature is not enabled, stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdSetEvent-stageMask-06457YNoneexplicitvkCmdSetEventAny 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.StageUsageNVexplicitvkCmdSetEventIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdSetEvent-stageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdSetEventIf 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-parameterYNoneimplicitvkCmdSetEventstageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdSetEvent2-commandBuffer-03826NNoneexplicitvkCmdSetEvent2The current device mask of commandBuffer must include exactly one physical device
VUID-vkCmdSetEvent2-commandBuffer-cmdpoolYNoneimplicitvkCmdSetEvent2The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdSetEvent2-commandBuffer-parameterYNoneimplicitvkCmdSetEvent2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetEvent2-commandBuffer-recordingYNoneimplicitvkCmdSetEvent2commandBuffer must be in the recording state
VUID-vkCmdSetEvent2-commonparentYNoneimplicitvkCmdSetEvent2Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetEvent2-dependencyFlags-03825YNegativeSyncObject.SetEvent2DependencyFlagsexplicitvkCmdSetEvent2The dependencyFlags member of pDependencyInfo must be 0
VUID-vkCmdSetEvent2-dstStageMask-03828YNoneexplicitvkCmdSetEvent2The 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.SetEvent2HostStageexplicitvkCmdSetEvent2The 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-parameterYNoneimplicitvkCmdSetEvent2event must be a valid VkEvent handle
VUID-vkCmdSetEvent2-pDependencyInfo-parameterYNoneimplicitvkCmdSetEvent2pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure
VUID-vkCmdSetEvent2-renderpassYNoneimplicitvkCmdSetEvent2This command must only be called outside of a render pass instance
VUID-vkCmdSetEvent2-srcStageMask-03827YNoneexplicitvkCmdSetEvent2The 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.SetEvent2HostStageexplicitvkCmdSetEvent2The 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.Sync2FeatureDisabledexplicitvkCmdSetEvent2The synchronization2 feature must be enabled
VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetExclusiveScissorEnableNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetExclusiveScissorEnableNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetExclusiveScissorEnableNVcommandBuffer must be in the recording state
VUID-vkCmdSetExclusiveScissorEnableNV-exclusiveScissor-07853YNoneexplicitvkCmdSetExclusiveScissorEnableNVThe exclusiveScissor feature must be enabled, and the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extension
VUID-vkCmdSetExclusiveScissorEnableNV-exclusiveScissorCount-arraylengthYNoneimplicitvkCmdSetExclusiveScissorEnableNVexclusiveScissorCount must be greater than 0
VUID-vkCmdSetExclusiveScissorEnableNV-pExclusiveScissorEnables-parameterYNoneimplicitvkCmdSetExclusiveScissorEnableNVpExclusiveScissorEnables must be a valid pointer to an array of exclusiveScissorCount VkBool32 values
VUID-vkCmdSetExclusiveScissorEnableNV-videocodingYNoneimplicitvkCmdSetExclusiveScissorEnableNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetExclusiveScissorNV-None-02031YNoneexplicitvkCmdSetExclusiveScissorNVThe exclusiveScissor feature must be enabled
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetExclusiveScissorNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameterYNoneimplicitvkCmdSetExclusiveScissorNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recordingYNoneimplicitvkCmdSetExclusiveScissorNVcommandBuffer must be in the recording state
VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVIf the multiViewport feature is not enabled, exclusiveScissorCount must be 1
VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylengthYNegativeCommand.ExclusiveScissorNVimplicitvkCmdSetExclusiveScissorNVexclusiveScissorCount must be greater than 0
VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034YNoneexplicitvkCmdSetExclusiveScissorNVThe sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVIf the multiViewport feature is not enabled, firstExclusiveScissor must be 0
VUID-vkCmdSetExclusiveScissorNV-offset-02038YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVEvaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow
VUID-vkCmdSetExclusiveScissorNV-offset-02039YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVEvaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow
VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameterYNegativeCommand.ExclusiveScissorNVimplicitvkCmdSetExclusiveScissorNVpExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures
VUID-vkCmdSetExclusiveScissorNV-videocodingYNoneimplicitvkCmdSetExclusiveScissorNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetExclusiveScissorNV-x-02037YNegativeCommand.ExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNVThe x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTAt least one of the following must be true: The extendedDynamicState3ExtraPrimitiveOverestimationSize feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTcommandBuffer must be in the recording state
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428YNegativeDynamicState.DrawNotSetExtraPrimitiveOverestimationSizeexplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTextraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-videocodingYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582NNoneexplicitvkCmdSetFragmentShadingRateEnumNVIf the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameterYNoneimplicitvkCmdSetFragmentShadingRateEnumNVEach element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetFragmentShadingRateEnumNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameterYNoneimplicitvkCmdSetFragmentShadingRateEnumNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recordingYNoneimplicitvkCmdSetFragmentShadingRateEnumNVcommandBuffer must be in the recording state
VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579YNoneexplicitvkCmdSetFragmentShadingRateEnumNVThe fragmentShadingRateEnums feature must be enabled
VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583NNoneexplicitvkCmdSetFragmentShadingRateEnumNVIf 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-04578NNoneexplicitvkCmdSetFragmentShadingRateEnumNVIf noInvocationFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576NNoneexplicitvkCmdSetFragmentShadingRateEnumNVIf pipelineFragmentShadingRate is not enabled, shadingRate must be VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV
VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580NNoneexplicitvkCmdSetFragmentShadingRateEnumNVOne of the pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate features must be enabled
VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581NNoneexplicitvkCmdSetFragmentShadingRateEnumNVIf the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameterYNoneimplicitvkCmdSetFragmentShadingRateEnumNVshadingRate must be a valid VkFragmentShadingRateNV value
VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577NNoneexplicitvkCmdSetFragmentShadingRateEnumNVIf 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-videocodingYNoneimplicitvkCmdSetFragmentShadingRateEnumNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511YNegativeFragmentShadingRate.CombinerOpsNoFeaturesexplicitvkCmdSetFragmentShadingRateKHRIf the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameterYNoneimplicitvkCmdSetFragmentShadingRateKHREach element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetFragmentShadingRateKHRThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameterYNoneimplicitvkCmdSetFragmentShadingRateKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recordingYNoneimplicitvkCmdSetFragmentShadingRateKHRcommandBuffer must be in the recording state
VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512YNegativeFragmentShadingRate.CombinerOpsLimitexplicitvkCmdSetFragmentShadingRateKHRIf 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.ValuesexplicitvkCmdSetFragmentShadingRateKHRpFragmentSize->width must be greater than or equal to 1
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRpFragmentSize->height must be greater than or equal to 1
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRpFragmentSize->width must be a power-of-two value
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRpFragmentSize->height must be a power-of-two value
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRpFragmentSize->width must be less than or equal to 4
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518YNegativeFragmentShadingRate.ValuesexplicitvkCmdSetFragmentShadingRateKHRpFragmentSize->height must be less than or equal to 4
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameterYNoneimplicitvkCmdSetFragmentShadingRateKHRpFragmentSize must be a valid pointer to a valid VkExtent2D structure
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507YNegativeFragmentShadingRate.CombinerOpsNoPipelineRateexplicitvkCmdSetFragmentShadingRateKHRIf pipelineFragmentShadingRate is not enabled, pFragmentSize->width must be 1
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508YNegativeFragmentShadingRate.CombinerOpsNoPipelineRateexplicitvkCmdSetFragmentShadingRateKHRIf pipelineFragmentShadingRate is not enabled, pFragmentSize->height must be 1
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509YNegativeFragmentShadingRate.ValuesNoFeaturesexplicitvkCmdSetFragmentShadingRateKHROne of pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate must be enabled
VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510YNegativeFragmentShadingRate.CombinerOpsNoFeaturesexplicitvkCmdSetFragmentShadingRateKHRIf the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateKHR-videocodingYNoneimplicitvkCmdSetFragmentShadingRateKHRThis command must only be called outside of a video coding scope
VUID-vkCmdSetFrontFace-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetFrontFaceAt 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-cmdpoolYNoneimplicitvkCmdSetFrontFaceThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFrontFace-commandBuffer-parameterYNoneimplicitvkCmdSetFrontFacecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFrontFace-commandBuffer-recordingYNoneimplicitvkCmdSetFrontFacecommandBuffer must be in the recording state
VUID-vkCmdSetFrontFace-frontFace-parameterYNoneimplicitvkCmdSetFrontFacefrontFace must be a valid VkFrontFace value
VUID-vkCmdSetFrontFace-videocodingYNoneimplicitvkCmdSetFrontFaceThis command must only be called outside of a video coding scope
VUID-vkCmdSetLineRasterizationModeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetLineRasterizationModeEXTAt least one of the following must be true: The extendedDynamicState3LineRasterizationMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineRasterizationModeEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLineRasterizationModeEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLineRasterizationModeEXTcommandBuffer must be in the recording state
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418YNegativeDynamicState.DrawNotSetLineRasterizationModeexplicitvkCmdSetLineRasterizationModeEXTIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR, then the rectangularLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07419YNegativeDynamicState.DrawNotSetLineRasterizationModeexplicitvkCmdSetLineRasterizationModeEXTIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR, then the bresenhamLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07420YNegativeDynamicState.DrawNotSetLineRasterizationModeexplicitvkCmdSetLineRasterizationModeEXTIf lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR, then the smoothLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-parameterNNoneimplicitvkCmdSetLineRasterizationModeEXTlineRasterizationMode must be a valid VkLineRasterizationModeEXT value
VUID-vkCmdSetLineRasterizationModeEXT-videocodingYNoneimplicitvkCmdSetLineRasterizationModeEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetLineStippleEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetLineStippleEnableEXTAt least one of the following must be true: The extendedDynamicState3LineStippleEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineStippleEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLineStippleEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLineStippleEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetLineStippleEnableEXT-videocodingYNoneimplicitvkCmdSetLineStippleEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetLineStippleKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineStippleKHRThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineStippleKHR-commandBuffer-parameterYNoneimplicitvkCmdSetLineStippleKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineStippleKHR-commandBuffer-recordingYNoneimplicitvkCmdSetLineStippleKHRcommandBuffer must be in the recording state
VUID-vkCmdSetLineStippleKHR-lineStippleFactor-02776YNegativePipeline.LineRasterizationexplicitvkCmdSetLineStippleKHRlineStippleFactor must be in the range [1,256]
VUID-vkCmdSetLineStippleKHR-videocodingYNoneimplicitvkCmdSetLineStippleKHRThis command must only be called outside of a video coding scope
VUID-vkCmdSetLineWidth-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineWidthThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineWidth-commandBuffer-parameterYNoneimplicitvkCmdSetLineWidthcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineWidth-commandBuffer-recordingYNoneimplicitvkCmdSetLineWidthcommandBuffer must be in the recording state
VUID-vkCmdSetLineWidth-lineWidth-00788YNegativeDynamicState.LineWidthexplicitvkCmdSetLineWidthIf the wideLines feature is not enabled, lineWidth must be 1.0
VUID-vkCmdSetLineWidth-videocodingYNoneimplicitvkCmdSetLineWidthThis command must only be called outside of a video coding scope
VUID-vkCmdSetLogicOpEXT-None-09422YNegativeDynamicState.ExtendedDynamicState2LogicOpDisabledexplicitvkCmdSetLogicOpEXTAt least one of the following must be true: The extendedDynamicState2LogicOp feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetLogicOpEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLogicOpEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLogicOpEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLogicOpEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLogicOpEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLogicOpEXTcommandBuffer must be in the recording state
VUID-vkCmdSetLogicOpEXT-logicOp-parameterYNoneimplicitvkCmdSetLogicOpEXTlogicOp must be a valid VkLogicOp value
VUID-vkCmdSetLogicOpEXT-videocodingYNoneimplicitvkCmdSetLogicOpEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetLogicOpEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetLogicOpEnableEXTAt least one of the following must be true: The extendedDynamicState3LogicOpEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLogicOpEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLogicOpEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLogicOpEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366YNegativeDynamicState.SetLogicOpFeatureexplicitvkCmdSetLogicOpEnableEXTIf the logicOp feature is not enabled, logicOpEnable must be VK_FALSE
VUID-vkCmdSetLogicOpEnableEXT-videocodingYNoneimplicitvkCmdSetLogicOpEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetPatchControlPointsEXT-None-09422YNegativeDynamicState.ExtendedDynamicState2PatchControlPointsDisabledexplicitvkCmdSetPatchControlPointsEXTAt least one of the following must be true: The extendedDynamicState2PatchControlPoints feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPatchControlPointsEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetPatchControlPointsEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetPatchControlPointsEXTcommandBuffer must be in the recording state
VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874YNegativeDynamicState.ExtendedDynamicState2PatchControlPointsEnabledexplicitvkCmdSetPatchControlPointsEXTpatchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-vkCmdSetPatchControlPointsEXT-videocodingYNoneimplicitvkCmdSetPatchControlPointsEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceMarkerINTELThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceMarkerINTELcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceMarkerINTELcommandBuffer must be in the recording state
VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameterYNoneimplicitvkCmdSetPerformanceMarkerINTELpMarkerInfo must be a valid pointer to a valid VkPerformanceMarkerInfoINTEL structure
VUID-vkCmdSetPerformanceMarkerINTEL-videocodingYNoneimplicitvkCmdSetPerformanceMarkerINTELThis command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceOverrideINTELThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceOverrideINTELcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceOverrideINTELcommandBuffer must be in the recording state
VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736NNoneexplicitvkCmdSetPerformanceOverrideINTELpOverrideInfo must not be used with a VkPerformanceOverrideTypeINTEL that is not reported available by vkGetPerformanceParameterINTEL
VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameterYNoneimplicitvkCmdSetPerformanceOverrideINTELpOverrideInfo must be a valid pointer to a valid VkPerformanceOverrideInfoINTEL structure
VUID-vkCmdSetPerformanceOverrideINTEL-videocodingYNoneimplicitvkCmdSetPerformanceOverrideINTELThis command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELcommandBuffer must be in the recording state
VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameterYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELpMarkerInfo must be a valid pointer to a valid VkPerformanceStreamMarkerInfoINTEL structure
VUID-vkCmdSetPerformanceStreamMarkerINTEL-videocodingYNoneimplicitvkCmdSetPerformanceStreamMarkerINTELThis command must only be called outside of a video coding scope
VUID-vkCmdSetPolygonModeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetPolygonModeEXTAt least one of the following must be true: The extendedDynamicState3PolygonMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPolygonModeEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetPolygonModeEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPolygonModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetPolygonModeEXTcommandBuffer must be in the recording state
VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424YNegativeDynamicState.DrawNotSetPolygonModeexplicitvkCmdSetPolygonModeEXTIf the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-vkCmdSetPolygonModeEXT-polygonMode-07425YNoneexplicitvkCmdSetPolygonModeEXTIf the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-vkCmdSetPolygonModeEXT-polygonMode-parameterYNegativeDynamicState.DrawNotSetPolygonModeimplicitvkCmdSetPolygonModeEXTpolygonMode must be a valid VkPolygonMode value
VUID-vkCmdSetPolygonModeEXT-videocodingYNoneimplicitvkCmdSetPolygonModeEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetPrimitiveRestartEnable-None-08970YNegativeDynamicState.ExtendedDynamicState2DisabledexplicitvkCmdSetPrimitiveRestartEnableAt 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-cmdpoolYNoneimplicitvkCmdSetPrimitiveRestartEnableThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameterYNoneimplicitvkCmdSetPrimitiveRestartEnablecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-recordingYNoneimplicitvkCmdSetPrimitiveRestartEnablecommandBuffer must be in the recording state
VUID-vkCmdSetPrimitiveRestartEnable-videocodingYNoneimplicitvkCmdSetPrimitiveRestartEnableThis command must only be called outside of a video coding scope
VUID-vkCmdSetPrimitiveTopology-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetPrimitiveTopologyAt 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-cmdpoolYNoneimplicitvkCmdSetPrimitiveTopologyThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameterYNoneimplicitvkCmdSetPrimitiveTopologycommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPrimitiveTopology-commandBuffer-recordingYNoneimplicitvkCmdSetPrimitiveTopologycommandBuffer must be in the recording state
VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameterYNoneimplicitvkCmdSetPrimitiveTopologyprimitiveTopology must be a valid VkPrimitiveTopology value
VUID-vkCmdSetPrimitiveTopology-videocodingYNoneimplicitvkCmdSetPrimitiveTopologyThis command must only be called outside of a video coding scope
VUID-vkCmdSetProvokingVertexModeEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetProvokingVertexModeEXTAt least one of the following must be true: The extendedDynamicState3ProvokingVertexMode feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetProvokingVertexModeEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetProvokingVertexModeEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetProvokingVertexModeEXTcommandBuffer must be in the recording state
VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447YNegativeDynamicState.DrawNotSetProvokingVertexModeexplicitvkCmdSetProvokingVertexModeEXTIf provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled
VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-parameterYNoneimplicitvkCmdSetProvokingVertexModeEXTprovokingVertexMode must be a valid VkProvokingVertexModeEXT value
VUID-vkCmdSetProvokingVertexModeEXT-videocodingYNoneimplicitvkCmdSetProvokingVertexModeEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizationSamplesEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRasterizationSamplesEXTAt least one of the following must be true: The extendedDynamicState3RasterizationSamples feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRasterizationSamplesEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizationSamplesEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizationSamplesEXTcommandBuffer must be in the recording state
VUID-vkCmdSetRasterizationSamplesEXT-rasterizationSamples-parameterYNoneimplicitvkCmdSetRasterizationSamplesEXTrasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-vkCmdSetRasterizationSamplesEXT-videocodingYNoneimplicitvkCmdSetRasterizationSamplesEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizationStreamEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRasterizationStreamEXTAt least one of the following must be true: The extendedDynamicState3RasterizationStream feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRasterizationStreamEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizationStreamEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizationStreamEXTcommandBuffer must be in the recording state
VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07412YNegativeDynamicState.DrawNotSetRasterizationStream, NegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRasterizationStreamEXTrasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07413YNegativeDynamicState.DrawNotSetRasterizationStreamexplicitvkCmdSetRasterizationStreamEXTrasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE
VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRasterizationStreamEXTThe transformFeedback feature must be enabled
VUID-vkCmdSetRasterizationStreamEXT-videocodingYNoneimplicitvkCmdSetRasterizationStreamEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizerDiscardEnable-None-08970YNegativeDynamicState.ExtendedDynamicState2DisabledexplicitvkCmdSetRasterizerDiscardEnableAt 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-cmdpoolYNoneimplicitvkCmdSetRasterizerDiscardEnableThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizerDiscardEnablecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizerDiscardEnablecommandBuffer must be in the recording state
VUID-vkCmdSetRasterizerDiscardEnable-videocodingYNoneimplicitvkCmdSetRasterizerDiscardEnableThis command must only be called outside of a video coding scope
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameterYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-recordingYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRcommandBuffer must be in the recording state
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-pipelineStackSize-03610NNoneexplicitvkCmdSetRayTracingPipelineStackSizeKHRpipelineStackSize must be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpassYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRThis command must only be called outside of a render pass instance
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-videocodingYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHRThis command must only be called outside of a video coding scope
VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-09511YNegativeDynamicRenderingLocalRead.CmdSetRenderingAttachmentLocationsexplicitvkCmdSetRenderingAttachmentLocationsKHRThe current render pass instance must have been started or resumed by vkCmdBeginRendering in this commandBuffer
VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRenderingAttachmentLocationsKHRThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-parameterYNoneimplicitvkCmdSetRenderingAttachmentLocationsKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-recordingYNoneimplicitvkCmdSetRenderingAttachmentLocationsKHRcommandBuffer must be in the recording state
VUID-vkCmdSetRenderingAttachmentLocationsKHR-dynamicRenderingLocalRead-09509YNegativeDynamicRenderingLocalRead.AttachmentLocationsValidity, NegativeDynamicRenderingLocalRead.NewFunctionsReportErrorExtensionDisabledexplicitvkCmdSetRenderingAttachmentLocationsKHRdynamicRenderingLocalRead must be enabled
VUID-vkCmdSetRenderingAttachmentLocationsKHR-pLocationInfo-09510YNegativeDynamicRenderingLocalRead.AttachmentLocationsMax, NegativeDynamicRenderingLocalRead.CmdSetAttachmentLocationsColorAttachmentCountexplicitvkCmdSetRenderingAttachmentLocationsKHRpLocationInfo->colorAttachmentCount must be equal to the value of VkRenderingInfo::colorAttachmentCount used to begin the current render pass instance
VUID-vkCmdSetRenderingAttachmentLocationsKHR-pLocationInfo-parameterYNoneimplicitvkCmdSetRenderingAttachmentLocationsKHRpLocationInfo must be a valid pointer to a valid VkRenderingAttachmentLocationInfoKHR structure
VUID-vkCmdSetRenderingAttachmentLocationsKHR-renderpassYNoneimplicitvkCmdSetRenderingAttachmentLocationsKHRThis command must only be called inside of a render pass instance
VUID-vkCmdSetRenderingAttachmentLocationsKHR-videocodingYNoneimplicitvkCmdSetRenderingAttachmentLocationsKHRThis command must only be called outside of a video coding scope
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-09518YNegativeDynamicRenderingLocalRead.CmdSetAttachmentIndicesexplicitvkCmdSetRenderingInputAttachmentIndicesKHRThe current render pass instance must have been started or resumed by vkCmdBeginRendering in this commandBuffer
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRenderingInputAttachmentIndicesKHRThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-parameterYNoneimplicitvkCmdSetRenderingInputAttachmentIndicesKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-recordingYNoneimplicitvkCmdSetRenderingInputAttachmentIndicesKHRcommandBuffer must be in the recording state
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-dynamicRenderingLocalRead-09516YNegativeDynamicRenderingLocalRead.InputAttachmentIndexSetToUnused, NegativeDynamicRenderingLocalRead.NewFunctionsReportErrorExtensionDisabledexplicitvkCmdSetRenderingInputAttachmentIndicesKHRdynamicRenderingLocalRead must be enabled
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-pInputAttachmentIndexInfo-09517YNegativeDynamicRenderingLocalRead.CmdSetAttachmentIndicesColorAttachmentCountexplicitvkCmdSetRenderingInputAttachmentIndicesKHRpInputAttachmentIndexInfo->colorAttachmentCount must be equal to the value of VkRenderingInfo::colorAttachmentCount used to begin the current render pass instance
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-pInputAttachmentIndexInfo-parameterYNoneimplicitvkCmdSetRenderingInputAttachmentIndicesKHRpInputAttachmentIndexInfo must be a valid pointer to a valid VkRenderingInputAttachmentIndexInfoKHR structure
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-renderpassYNoneimplicitvkCmdSetRenderingInputAttachmentIndicesKHRThis command must only be called inside of a render pass instance
VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-videocodingYNoneimplicitvkCmdSetRenderingInputAttachmentIndicesKHRThis command must only be called outside of a video coding scope
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetRepresentativeFragmentTestEnableNVAt least one of the following must be true: The extendedDynamicState3RepresentativeFragmentTestEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNVcommandBuffer must be in the recording state
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-videocodingYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleLocationsEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleLocationsEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleLocationsEXTcommandBuffer must be in the recording state
VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameterYNoneimplicitvkCmdSetSampleLocationsEXTpSampleLocationsInfo must be a valid pointer to a valid VkSampleLocationsInfoEXT structure
VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530NNoneexplicitvkCmdSetSampleLocationsEXTIf 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-videocodingYNoneimplicitvkCmdSetSampleLocationsEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetSampleLocationsEnableEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetSampleLocationsEnableEXTAt least one of the following must be true: The extendedDynamicState3SampleLocationsEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleLocationsEnableEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleLocationsEnableEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleLocationsEnableEXTcommandBuffer must be in the recording state
VUID-vkCmdSetSampleLocationsEnableEXT-videocodingYNoneimplicitvkCmdSetSampleLocationsEnableEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetSampleMaskEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetSampleMaskEXTAt least one of the following must be true: The extendedDynamicState3SampleMask feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetSampleMaskEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleMaskEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleMaskEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleMaskEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleMaskEXTcommandBuffer must be in the recording state
VUID-vkCmdSetSampleMaskEXT-pSampleMask-parameterYNoneimplicitvkCmdSetSampleMaskEXTpSampleMask must be a valid pointer to an array of \(\lceil{\mathit{samples} \over 32}\rceil\) VkSampleMask values
VUID-vkCmdSetSampleMaskEXT-samples-parameterYNoneimplicitvkCmdSetSampleMaskEXTsamples must be a valid VkSampleCountFlagBits value
VUID-vkCmdSetSampleMaskEXT-videocodingYNoneimplicitvkCmdSetSampleMaskEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetScissor-commandBuffer-cmdpoolYNoneimplicitvkCmdSetScissorThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetScissor-commandBuffer-parameterYNoneimplicitvkCmdSetScissorcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetScissor-commandBuffer-recordingYNoneimplicitvkCmdSetScissorcommandBuffer must be in the recording state
VUID-vkCmdSetScissor-firstScissor-00592YNegativeDynamicState.SetScissorParamMultiviewportexplicitvkCmdSetScissorThe sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetScissor-firstScissor-00593YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorIf the multiViewport feature is not enabled, firstScissor must be 0
VUID-vkCmdSetScissor-offset-00596YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorEvaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissor-offset-00597YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorEvaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissor-pScissors-parameterYNegativeDynamicState.SetScissorParam, NegativeDynamicState.SetScissorParamMultiviewportimplicitvkCmdSetScissorpScissors must be a valid pointer to an array of scissorCount VkRect2D structures
VUID-vkCmdSetScissor-scissorCount-00594YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorIf the multiViewport feature is not enabled, scissorCount must be 1
VUID-vkCmdSetScissor-scissorCount-arraylengthYNegativeDynamicState.SetScissorParam, NegativeDynamicState.SetScissorParamMultiviewportimplicitvkCmdSetScissorscissorCount must be greater than 0
VUID-vkCmdSetScissor-videocodingYNoneimplicitvkCmdSetScissorThis command must only be called outside of a video coding scope
VUID-vkCmdSetScissor-viewportScissor2D-04789YNegativeViewportInheritance.BasicUsageexplicitvkCmdSetScissorIf this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called
VUID-vkCmdSetScissor-x-00595YNegativeDynamicState.SetScissorParamexplicitvkCmdSetScissorThe x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-vkCmdSetScissorWithCount-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetScissorWithCountAt 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-04820YNoneexplicitvkCmdSetScissorWithCountcommandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetScissorWithCount-commandBuffer-cmdpoolYNoneimplicitvkCmdSetScissorWithCountThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetScissorWithCount-commandBuffer-parameterYNoneimplicitvkCmdSetScissorWithCountcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetScissorWithCount-commandBuffer-recordingYNoneimplicitvkCmdSetScissorWithCountcommandBuffer must be in the recording state
VUID-vkCmdSetScissorWithCount-offset-03400YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetScissorWithCountEvaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissorWithCount-offset-03401YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetScissorWithCountEvaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissorWithCount-pScissors-parameterYNoneimplicitvkCmdSetScissorWithCountpScissors must be a valid pointer to an array of scissorCount VkRect2D structures
VUID-vkCmdSetScissorWithCount-scissorCount-03397YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetScissorWithCountscissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetScissorWithCount-scissorCount-03398YNegativeDynamicState.ExtendedDynamicStateEnabledNoMultiviewexplicitvkCmdSetScissorWithCountIf the multiViewport feature is not enabled, scissorCount must be 1
VUID-vkCmdSetScissorWithCount-scissorCount-arraylengthYNegativeDynamicState.ExtendedDynamicStateSetViewportScissorimplicitvkCmdSetScissorWithCountscissorCount must be greater than 0
VUID-vkCmdSetScissorWithCount-videocodingYNoneimplicitvkCmdSetScissorWithCountThis command must only be called outside of a video coding scope
VUID-vkCmdSetScissorWithCount-x-03399YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetScissorWithCountThe x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-vkCmdSetShadingRateImageEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetShadingRateImageEnableNVAt least one of the following must be true: The extendedDynamicState3ShadingRateImageEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetShadingRateImageEnableNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetShadingRateImageEnableNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetShadingRateImageEnableNVcommandBuffer must be in the recording state
VUID-vkCmdSetShadingRateImageEnableNV-videocodingYNoneimplicitvkCmdSetShadingRateImageEnableNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilCompareMaskThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilCompareMask-commandBuffer-parameterYNoneimplicitvkCmdSetStencilCompareMaskcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilCompareMask-commandBuffer-recordingYNoneimplicitvkCmdSetStencilCompareMaskcommandBuffer must be in the recording state
VUID-vkCmdSetStencilCompareMask-faceMask-parameterYNoneimplicitvkCmdSetStencilCompareMaskfaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilCompareMaskfaceMask must not be 0
VUID-vkCmdSetStencilCompareMask-videocodingYNoneimplicitvkCmdSetStencilCompareMaskThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilOp-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetStencilOpAt 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-cmdpoolYNoneimplicitvkCmdSetStencilOpThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilOp-commandBuffer-parameterYNoneimplicitvkCmdSetStencilOpcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilOp-commandBuffer-recordingYNoneimplicitvkCmdSetStencilOpcommandBuffer must be in the recording state
VUID-vkCmdSetStencilOp-compareOp-parameterYNoneimplicitvkCmdSetStencilOpcompareOp must be a valid VkCompareOp value
VUID-vkCmdSetStencilOp-depthFailOp-parameterYNoneimplicitvkCmdSetStencilOpdepthFailOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-faceMask-parameterYNoneimplicitvkCmdSetStencilOpfaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilOp-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilOpfaceMask must not be 0
VUID-vkCmdSetStencilOp-failOp-parameterYNoneimplicitvkCmdSetStencilOpfailOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-passOp-parameterYNoneimplicitvkCmdSetStencilOppassOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-videocodingYNoneimplicitvkCmdSetStencilOpThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilReference-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilReferenceThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilReference-commandBuffer-parameterYNoneimplicitvkCmdSetStencilReferencecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilReference-commandBuffer-recordingYNoneimplicitvkCmdSetStencilReferencecommandBuffer must be in the recording state
VUID-vkCmdSetStencilReference-faceMask-parameterYNoneimplicitvkCmdSetStencilReferencefaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilReference-faceMask-requiredbitmaskYVkLayerTest.RequiredParameterimplicitvkCmdSetStencilReferencefaceMask must not be 0
VUID-vkCmdSetStencilReference-videocodingYNoneimplicitvkCmdSetStencilReferenceThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilTestEnable-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetStencilTestEnableAt 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-cmdpoolYNoneimplicitvkCmdSetStencilTestEnableThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetStencilTestEnablecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetStencilTestEnablecommandBuffer must be in the recording state
VUID-vkCmdSetStencilTestEnable-videocodingYNoneimplicitvkCmdSetStencilTestEnableThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilWriteMaskThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilWriteMask-commandBuffer-parameterYNoneimplicitvkCmdSetStencilWriteMaskcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilWriteMask-commandBuffer-recordingYNoneimplicitvkCmdSetStencilWriteMaskcommandBuffer must be in the recording state
VUID-vkCmdSetStencilWriteMask-faceMask-parameterYNoneimplicitvkCmdSetStencilWriteMaskfaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilWriteMaskfaceMask must not be 0
VUID-vkCmdSetStencilWriteMask-videocodingYNoneimplicitvkCmdSetStencilWriteMaskThis command must only be called outside of a video coding scope
VUID-vkCmdSetTessellationDomainOriginEXT-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetTessellationDomainOriginEXTAt least one of the following must be true: The extendedDynamicState3TessellationDomainOrigin feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetTessellationDomainOriginEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameterYNoneimplicitvkCmdSetTessellationDomainOriginEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-recordingYNoneimplicitvkCmdSetTessellationDomainOriginEXTcommandBuffer must be in the recording state
VUID-vkCmdSetTessellationDomainOriginEXT-domainOrigin-parameterYNoneimplicitvkCmdSetTessellationDomainOriginEXTdomainOrigin must be a valid VkTessellationDomainOrigin value
VUID-vkCmdSetTessellationDomainOriginEXT-videocodingYNoneimplicitvkCmdSetTessellationDomainOriginEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetVertexInputEXT-None-08546YNegativeDynamicState.VertexInputDynamicStateDisabledexplicitvkCmdSetVertexInputEXTEither the vertexInputDynamicState feature or the shaderObject feature or both must be enabled
VUID-vkCmdSetVertexInputEXT-binding-04793YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTFor every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription2EXT must exist in pVertexBindingDescriptions with the same value of binding
VUID-vkCmdSetVertexInputEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetVertexInputEXTThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetVertexInputEXT-commandBuffer-parameterYNoneimplicitvkCmdSetVertexInputEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetVertexInputEXT-commandBuffer-recordingYNoneimplicitvkCmdSetVertexInputEXTcommandBuffer must be in the recording state
VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTAll elements of pVertexAttributeDescriptions must describe distinct attribute locations
VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameterYNoneimplicitvkCmdSetVertexInputEXTIf vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription2EXT structures
VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-04794YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTAll elements of pVertexBindingDescriptions must describe distinct binding numbers
VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameterYNoneimplicitvkCmdSetVertexInputEXTIf vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription2EXT structures
VUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTvertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791YNegativeDynamicState.VertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXTvertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdSetVertexInputEXT-videocodingYNoneimplicitvkCmdSetVertexInputEXTThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewport-commandBuffer-04821YNegativeViewportInheritance.BasicUsageexplicitvkCmdSetViewportcommandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetViewport-commandBuffer-cmdpoolYNegativeCommand.CommandQueueFlagsimplicitvkCmdSetViewportThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewport-commandBuffer-parameterYNoneimplicitvkCmdSetViewportcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewport-commandBuffer-recordingYNoneimplicitvkCmdSetViewportcommandBuffer must be in the recording state
VUID-vkCmdSetViewport-firstViewport-01223YNegativeDynamicState.SetViewportParamMultiviewportexplicitvkCmdSetViewportThe sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewport-firstViewport-01224YNegativeDynamicState.SetViewportParamexplicitvkCmdSetViewportIf the multiViewport feature is not enabled, firstViewport must be 0
VUID-vkCmdSetViewport-pViewports-parameterYNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMultiviewport, VkLayerTest.RequiredParameterimplicitvkCmdSetViewportpViewports must be a valid pointer to an array of viewportCount valid VkViewport structures
VUID-vkCmdSetViewport-videocodingYNoneimplicitvkCmdSetViewportThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewport-viewportCount-01225YNegativeDynamicState.SetViewportParamexplicitvkCmdSetViewportIf the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewport-viewportCount-arraylengthYNegativeDynamicState.SetViewportParam, NegativeDynamicState.SetViewportParamMultiviewport, VkLayerTest.RequiredParameterimplicitvkCmdSetViewportviewportCount must be greater than 0
VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064YNoneexplicitvkCmdSetViewportShadingRatePaletteNVThe shadingRateImage feature must be enabled
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportShadingRatePaletteNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportShadingRatePaletteNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportShadingRatePaletteNVcommandBuffer must be in the recording state
VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNVThe sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNVIf the multiViewport feature is not enabled, firstViewport must be 0
VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameterYNoneimplicitvkCmdSetViewportShadingRatePaletteNVpShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures
VUID-vkCmdSetViewportShadingRatePaletteNV-videocodingYNoneimplicitvkCmdSetViewportShadingRatePaletteNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069YNegativeFragmentShadingRate.ShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNVIf the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportShadingRatePaletteNVviewportCount must be greater than 0
VUID-vkCmdSetViewportSwizzleNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetViewportSwizzleNVAt least one of the following must be true: The extendedDynamicState3ViewportSwizzle feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportSwizzleNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportSwizzleNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportSwizzleNVcommandBuffer must be in the recording state
VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameterYNoneimplicitvkCmdSetViewportSwizzleNVpViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures
VUID-vkCmdSetViewportSwizzleNV-videocodingYNoneimplicitvkCmdSetViewportSwizzleNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportSwizzleNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportSwizzleNVviewportCount must be greater than 0
VUID-vkCmdSetViewportWScalingEnableNV-None-09423YNegativeDynamicState.ExtendedDynamicState3CmdSetFeatureDisabledexplicitvkCmdSetViewportWScalingEnableNVAt least one of the following must be true: The extendedDynamicState3ViewportWScalingEnable feature is enabled The shaderObject feature is enabled
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWScalingEnableNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWScalingEnableNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWScalingEnableNVcommandBuffer must be in the recording state
VUID-vkCmdSetViewportWScalingEnableNV-videocodingYNoneimplicitvkCmdSetViewportWScalingEnableNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWScalingNVThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWScalingNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWScalingNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWScalingNVcommandBuffer must be in the recording state
VUID-vkCmdSetViewportWScalingNV-firstViewport-01324YNegativeCommand.ViewportWScalingNVexplicitvkCmdSetViewportWScalingNVThe sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameterYNoneimplicitvkCmdSetViewportWScalingNVpViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures
VUID-vkCmdSetViewportWScalingNV-videocodingYNoneimplicitvkCmdSetViewportWScalingNVThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportWScalingNVviewportCount must be greater than 0
VUID-vkCmdSetViewportWithCount-None-08971YNegativeDynamicState.ExtendedDynamicStateDisabledexplicitvkCmdSetViewportWithCountAt 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-04819YNoneexplicitvkCmdSetViewportWithCountcommandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetViewportWithCount-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWithCountThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWithCount-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWithCountcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWithCount-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWithCountcommandBuffer must be in the recording state
VUID-vkCmdSetViewportWithCount-pViewports-parameterYNoneimplicitvkCmdSetViewportWithCountpViewports must be a valid pointer to an array of viewportCount valid VkViewport structures
VUID-vkCmdSetViewportWithCount-videocodingYNoneimplicitvkCmdSetViewportWithCountThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWithCount-viewportCount-03394YNegativeDynamicState.ExtendedDynamicStateSetViewportScissorexplicitvkCmdSetViewportWithCountviewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportWithCount-viewportCount-03395YNegativeDynamicState.ExtendedDynamicStateEnabledNoMultiviewexplicitvkCmdSetViewportWithCountIf the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewportWithCount-viewportCount-arraylengthYNegativeDynamicState.ExtendedDynamicStateSetViewportScissorimplicitvkCmdSetViewportWithCountviewportCount must be greater than 0
VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-02691NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-02692NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-02693NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04931NNoneexplicitvkCmdSubpassShadingHUAWEIThis 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-06479NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06550NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-07288NNoneexplicitvkCmdSubpassShadingHUAWEIAny shader invocation executed by this command must terminate
VUID-vkCmdSubpassShadingHUAWEI-None-07888NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08114NNoneexplicitvkCmdSubpassShadingHUAWEIDescriptors 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-08115NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08116NNoneexplicitvkCmdSubpassShadingHUAWEIDescriptors 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-08117NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08119NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08600NNoneexplicitvkCmdSubpassShadingHUAWEIFor 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-08601NNoneexplicitvkCmdSubpassShadingHUAWEIFor 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-08604NNoneexplicitvkCmdSubpassShadingHUAWEIDescriptors 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-08605NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08606NNoneexplicitvkCmdSubpassShadingHUAWEIIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdSubpassShadingHUAWEI-None-08607NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08608NNoneexplicitvkCmdSubpassShadingHUAWEIIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdSubpassShadingHUAWEI-None-08609NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08610NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08611NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08612NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08613NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-None-09600NNoneexplicitvkCmdSubpassShadingHUAWEIIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdSubpassShadingHUAWEI-None-10068NNoneexplicitvkCmdSubpassShadingHUAWEIFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06976NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06974NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-09215NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-09216NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-09217NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06973NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06971NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06972NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06977NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06978NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04469NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08795NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-08796NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-07027NNoneexplicitvkCmdSubpassShadingHUAWEIFor 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-07028NNoneexplicitvkCmdSubpassShadingHUAWEIFor 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-07029NNoneexplicitvkCmdSubpassShadingHUAWEIFor 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-07030NNoneexplicitvkCmdSubpassShadingHUAWEIAny 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-04470NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04471NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04472NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04473NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-02707NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-cmdpoolYNoneimplicitvkCmdSubpassShadingHUAWEIThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdSubpassShadingHUAWEIcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdSubpassShadingHUAWEIcommandBuffer must be in the recording state
VUID-vkCmdSubpassShadingHUAWEI-cubicRangeClamp-09212NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-02694NNoneexplicitvkCmdSubpassShadingHUAWEIAny 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-02695NNoneexplicitvkCmdSubpassShadingHUAWEIAny 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-02696NNoneexplicitvkCmdSubpassShadingHUAWEIAny 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-07753NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04553NNoneexplicitvkCmdSubpassShadingHUAWEIIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598NNoneexplicitvkCmdSubpassShadingHUAWEIIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04770NNoneexplicitvkCmdSubpassShadingHUAWEIIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599NNoneexplicitvkCmdSubpassShadingHUAWEIIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdSubpassShadingHUAWEI-reductionMode-09213NNoneexplicitvkCmdSubpassShadingHUAWEIAny 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-renderpassYNoneimplicitvkCmdSubpassShadingHUAWEIThis command must only be called inside of a render pass instance
VUID-vkCmdSubpassShadingHUAWEI-selectableCubicWeights-09214NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04474NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-04475NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06936NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-06935NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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-unnormalizedCoordinates-09635NNoneexplicitvkCmdSubpassShadingHUAWEIIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdSubpassShadingHUAWEI-unnormalizedCoordinates-09636NNoneexplicitvkCmdSubpassShadingHUAWEIIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdSubpassShadingHUAWEI-videocodingYNoneimplicitvkCmdSubpassShadingHUAWEIThis command must only be called outside of a video coding scope
VUID-vkCmdSubpassShadingHUAWEI-viewType-07752NNoneexplicitvkCmdSubpassShadingHUAWEIIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-02691YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-02692YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-02693YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-03429NNoneexplicitvkCmdTraceRaysIndirect2KHRAny shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysIndirect2KHR-None-06479YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06550YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-07288NNoneexplicitvkCmdTraceRaysIndirect2KHRAny shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysIndirect2KHR-None-07888YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08114YNoneexplicitvkCmdTraceRaysIndirect2KHRDescriptors 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-08115YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08116NNoneexplicitvkCmdTraceRaysIndirect2KHRDescriptors 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-08117YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08119NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08600YNoneexplicitvkCmdTraceRaysIndirect2KHRFor 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-08601NNoneexplicitvkCmdTraceRaysIndirect2KHRFor 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-08604NNoneexplicitvkCmdTraceRaysIndirect2KHRDescriptors 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-08605NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08606YNoneexplicitvkCmdTraceRaysIndirect2KHRIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirect2KHR-None-08607YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08608YNoneexplicitvkCmdTraceRaysIndirect2KHRIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysIndirect2KHR-None-08609YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08610YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08611YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08612YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08613YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-09458YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-None-09600NNoneexplicitvkCmdTraceRaysIndirect2KHRIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdTraceRaysIndirect2KHR-None-10068NNoneexplicitvkCmdTraceRaysIndirect2KHRFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06976NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06974NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-09215NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-09216NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-09217NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06973NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06971NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06972NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06977NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06978NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-04469YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08795YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-08796YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-07027YNoneexplicitvkCmdTraceRaysIndirect2KHRFor 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-07028YNoneexplicitvkCmdTraceRaysIndirect2KHRFor 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-07029YNoneexplicitvkCmdTraceRaysIndirect2KHRFor 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-07030YNoneexplicitvkCmdTraceRaysIndirect2KHRAny 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-04470YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-04471YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-04472YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-04473YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-02707YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-03635YNoneexplicitvkCmdTraceRaysIndirect2KHRcommandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysIndirect2KHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysIndirect2KHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysIndirect2KHRcommandBuffer must be in the recording state
VUID-vkCmdTraceRaysIndirect2KHR-cubicRangeClamp-09212NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-02694YNoneexplicitvkCmdTraceRaysIndirect2KHRAny 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-02695YNoneexplicitvkCmdTraceRaysIndirect2KHRAny 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-02696YNoneexplicitvkCmdTraceRaysIndirect2KHRAny 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-07753YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-03632YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-03633YNoneexplicitvkCmdTraceRaysIndirect2KHRThe buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634YNegativeRayTracing.CmdTraceRaysIndirect2KHRAddressexplicitvkCmdTraceRaysIndirect2KHRindirectDeviceAddress must be a multiple of 4
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636NNoneexplicitvkCmdTraceRaysIndirect2KHRAll device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(VkTraceRaysIndirectCommand2KHR) - 1 must be in the buffer device address range of the same buffer
VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553YNoneexplicitvkCmdTraceRaysIndirect2KHRIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdTraceRaysIndirect2KHRIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-03679NNoneexplicitvkCmdTraceRaysIndirect2KHRThis 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-04770YNoneexplicitvkCmdTraceRaysIndirect2KHRIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdTraceRaysIndirect2KHRIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdTraceRaysIndirect2KHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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.CmdTraceRaysIndirect2KHRFeatureDisabledexplicitvkCmdTraceRaysIndirect2KHRThe rayTracingPipelineTraceRaysIndirect2 feature must be enabled
VUID-vkCmdTraceRaysIndirect2KHR-reductionMode-09213NNoneexplicitvkCmdTraceRaysIndirect2KHRAny 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-renderpassYNoneimplicitvkCmdTraceRaysIndirect2KHRThis command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysIndirect2KHR-selectableCubicWeights-09214NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-04474YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-04475NNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06936YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-06935YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdTraceRaysIndirect2KHRIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdTraceRaysIndirect2KHR-unnormalizedCoordinates-09636NNoneexplicitvkCmdTraceRaysIndirect2KHRIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdTraceRaysIndirect2KHR-videocodingYNoneimplicitvkCmdTraceRaysIndirect2KHRThis command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752YNoneexplicitvkCmdTraceRaysIndirect2KHRIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-02691YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-02692YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-02693YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03429NNoneexplicitvkCmdTraceRaysIndirectKHRAny shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysIndirectKHR-None-06479YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06550YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-07288NNoneexplicitvkCmdTraceRaysIndirectKHRAny shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysIndirectKHR-None-07888YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08114YNoneexplicitvkCmdTraceRaysIndirectKHRDescriptors 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-08115YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08116NNoneexplicitvkCmdTraceRaysIndirectKHRDescriptors 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-08117YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08119NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08600YNoneexplicitvkCmdTraceRaysIndirectKHRFor 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-08601NNoneexplicitvkCmdTraceRaysIndirectKHRFor 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-08604NNoneexplicitvkCmdTraceRaysIndirectKHRDescriptors 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-08605NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08606YNoneexplicitvkCmdTraceRaysIndirectKHRIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirectKHR-None-08607YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08608YNoneexplicitvkCmdTraceRaysIndirectKHRIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysIndirectKHR-None-08609YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08610YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08611YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08612YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08613YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-09458YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-None-09600NNoneexplicitvkCmdTraceRaysIndirectKHRIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdTraceRaysIndirectKHR-None-10068NNoneexplicitvkCmdTraceRaysIndirectKHRFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06976NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06974NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-09215NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-09216NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-09217NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06973NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06971NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06972NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06977NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06978NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-04469YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08795YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-08796YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-07027YNoneexplicitvkCmdTraceRaysIndirectKHRFor 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-07028YNoneexplicitvkCmdTraceRaysIndirectKHRFor 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-07029YNoneexplicitvkCmdTraceRaysIndirectKHRFor 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-07030YNoneexplicitvkCmdTraceRaysIndirectKHRAny 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-04470YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-04471YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-04472YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-04473YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-02707YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03635YNoneexplicitvkCmdTraceRaysIndirectKHRcommandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysIndirectKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysIndirectKHRcommandBuffer must be in the recording state
VUID-vkCmdTraceRaysIndirectKHR-cubicRangeClamp-09212NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-02694YNoneexplicitvkCmdTraceRaysIndirectKHRAny 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-02695YNoneexplicitvkCmdTraceRaysIndirectKHRAny 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-02696YNoneexplicitvkCmdTraceRaysIndirectKHRAny 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-03511YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03512YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03513YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03514YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03696YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03697YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-07753YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03632YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03633YNoneexplicitvkCmdTraceRaysIndirectKHRThe buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634YNoneexplicitvkCmdTraceRaysIndirectKHRindirectDeviceAddress must be a multiple of 4
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636NNoneexplicitvkCmdTraceRaysIndirectKHRAll device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(VkTraceRaysIndirectCommandKHR) - 1 must be in the buffer device address range of the same buffer
VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553YNoneexplicitvkCmdTraceRaysIndirectKHRIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdTraceRaysIndirectKHRIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03679NNoneexplicitvkCmdTraceRaysIndirectKHRThis 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-04770YNoneexplicitvkCmdTraceRaysIndirectKHRIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdTraceRaysIndirectKHRIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03692YNoneexplicitvkCmdTraceRaysIndirectKHRThe 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-03693YNoneexplicitvkCmdTraceRaysIndirectKHRpCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRpCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03688YNoneexplicitvkCmdTraceRaysIndirectKHRThe 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-03689YNoneexplicitvkCmdTraceRaysIndirectKHRpHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735NNoneexplicitvkCmdTraceRaysIndirectKHRAny 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-04736NNoneexplicitvkCmdTraceRaysIndirectKHRAny 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-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRpHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03684YNoneexplicitvkCmdTraceRaysIndirectKHRThe 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-03685YNoneexplicitvkCmdTraceRaysIndirectKHRpMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRpMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03681YNoneexplicitvkCmdTraceRaysIndirectKHRThe 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-03682YNoneexplicitvkCmdTraceRaysIndirectKHRpRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHRpRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-03637YNoneexplicitvkCmdTraceRaysIndirectKHRThe rayTracingPipelineTraceRaysIndirect feature must be enabled
VUID-vkCmdTraceRaysIndirectKHR-reductionMode-09213NNoneexplicitvkCmdTraceRaysIndirectKHRAny 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-renderpassYNoneimplicitvkCmdTraceRaysIndirectKHRThis command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysIndirectKHR-selectableCubicWeights-09214NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-04023YNoneexplicitvkCmdTraceRaysIndirectKHRThe size member of pRayGenShaderBindingTable must be equal to its stride member
VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04474YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-04475NNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-06936YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRpMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-03690YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRpHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-03694YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRpCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-04029YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRpMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-stride-04035YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRpHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-stride-04041YNegativeRayTracing.CmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHRpCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdTraceRaysIndirectKHRIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdTraceRaysIndirectKHR-unnormalizedCoordinates-09636NNoneexplicitvkCmdTraceRaysIndirectKHRIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdTraceRaysIndirectKHR-videocodingYNoneimplicitvkCmdTraceRaysIndirectKHRThis command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysIndirectKHR-viewType-07752YNoneexplicitvkCmdTraceRaysIndirectKHRIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdTraceRaysKHR-ConstOffset-06551YNoneexplicitvkCmdTraceRaysKHRIf 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-02691YNoneexplicitvkCmdTraceRaysKHRIf 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-02692YNoneexplicitvkCmdTraceRaysKHRIf 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-02693YNoneexplicitvkCmdTraceRaysKHRIf 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-03429NNoneexplicitvkCmdTraceRaysKHRAny shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysKHR-None-06479YNoneexplicitvkCmdTraceRaysKHRIf 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-06550YNoneexplicitvkCmdTraceRaysKHRIf 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-07288NNoneexplicitvkCmdTraceRaysKHRAny shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysKHR-None-07888YNoneexplicitvkCmdTraceRaysKHRIf 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-08114YNoneexplicitvkCmdTraceRaysKHRDescriptors 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-08115YNoneexplicitvkCmdTraceRaysKHRIf 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-08116NNoneexplicitvkCmdTraceRaysKHRDescriptors 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-08117YNoneexplicitvkCmdTraceRaysKHRIf 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-08119NNoneexplicitvkCmdTraceRaysKHRIf 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-08600YNoneexplicitvkCmdTraceRaysKHRFor 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-08601NNoneexplicitvkCmdTraceRaysKHRFor 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-08604NNoneexplicitvkCmdTraceRaysKHRDescriptors 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-08605NNoneexplicitvkCmdTraceRaysKHRIf 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-08606YNoneexplicitvkCmdTraceRaysKHRIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysKHR-None-08607YNoneexplicitvkCmdTraceRaysKHRIf 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-08608YNoneexplicitvkCmdTraceRaysKHRIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysKHR-None-08609YNoneexplicitvkCmdTraceRaysKHRIf 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-08610YNoneexplicitvkCmdTraceRaysKHRIf 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-08611YNoneexplicitvkCmdTraceRaysKHRIf 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-08612YNoneexplicitvkCmdTraceRaysKHRIf 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-08613YNoneexplicitvkCmdTraceRaysKHRIf 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.DynamicRayTracingPipelineStackexplicitvkCmdTraceRaysKHRIf 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-None-09600NNoneexplicitvkCmdTraceRaysKHRIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdTraceRaysKHR-None-10068NNoneexplicitvkCmdTraceRaysKHRFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysKHRIf 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-06976NNoneexplicitvkCmdTraceRaysKHRIf 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-06974NNoneexplicitvkCmdTraceRaysKHRIf 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-09215NNoneexplicitvkCmdTraceRaysKHRIf 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-09216NNoneexplicitvkCmdTraceRaysKHRIf 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-09217NNoneexplicitvkCmdTraceRaysKHRIf 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-06973NNoneexplicitvkCmdTraceRaysKHRIf 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-06971NNoneexplicitvkCmdTraceRaysKHRIf 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-06972NNoneexplicitvkCmdTraceRaysKHRIf 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-06977NNoneexplicitvkCmdTraceRaysKHRIf 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-06978NNoneexplicitvkCmdTraceRaysKHRIf 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-04469YNoneexplicitvkCmdTraceRaysKHRIf 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-08795YNoneexplicitvkCmdTraceRaysKHRIf 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-08796YNoneexplicitvkCmdTraceRaysKHRIf 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-07027YNoneexplicitvkCmdTraceRaysKHRFor 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-07028YNoneexplicitvkCmdTraceRaysKHRFor 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-07029YNoneexplicitvkCmdTraceRaysKHRFor 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-07030YNoneexplicitvkCmdTraceRaysKHRAny 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-04470YNoneexplicitvkCmdTraceRaysKHRIf 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-04471YNoneexplicitvkCmdTraceRaysKHRIf 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-04472YNoneexplicitvkCmdTraceRaysKHRIf 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-04473YNoneexplicitvkCmdTraceRaysKHRIf 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-02707YNoneexplicitvkCmdTraceRaysKHRIf 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-03635YNoneexplicitvkCmdTraceRaysKHRcommandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysKHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysKHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysKHRcommandBuffer must be in the recording state
VUID-vkCmdTraceRaysKHR-cubicRangeClamp-09212NNoneexplicitvkCmdTraceRaysKHRIf 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-03640YNoneexplicitvkCmdTraceRaysKHRdepth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-vkCmdTraceRaysKHR-filterCubic-02694YNoneexplicitvkCmdTraceRaysKHRAny 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-02695YNoneexplicitvkCmdTraceRaysKHRAny 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-02696YNoneexplicitvkCmdTraceRaysKHRAny 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-03511YNegativeRayTracing.PipelineNullMissShaderexplicitvkCmdTraceRaysKHRIf 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-03512YNoneexplicitvkCmdTraceRaysKHRIf 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-03513YNoneexplicitvkCmdTraceRaysKHRIf 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-03514YNoneexplicitvkCmdTraceRaysKHRIf 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-03696YNoneexplicitvkCmdTraceRaysKHRIf 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-03697YNoneexplicitvkCmdTraceRaysKHRIf 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-07753YNoneexplicitvkCmdTraceRaysKHRIf 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-03639YNoneexplicitvkCmdTraceRaysKHRheight must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-vkCmdTraceRaysKHR-magFilter-04553YNoneexplicitvkCmdTraceRaysKHRIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdTraceRaysKHRIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdTraceRaysKHR-maintenance4-08602YNoneexplicitvkCmdTraceRaysKHRIf 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-03679NNoneexplicitvkCmdTraceRaysKHRThis 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-04770YNoneexplicitvkCmdTraceRaysKHRIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdTraceRaysKHRIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691YNoneexplicitvkCmdTraceRaysKHRIf 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-03692YNoneexplicitvkCmdTraceRaysKHRThe 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-03693YNoneexplicitvkCmdTraceRaysKHRpCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHRpCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687YNoneexplicitvkCmdTraceRaysKHRIf 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-03688YNoneexplicitvkCmdTraceRaysKHRThe 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-03689YNoneexplicitvkCmdTraceRaysKHRpHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735NNoneexplicitvkCmdTraceRaysKHRAny 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-04736NNoneexplicitvkCmdTraceRaysKHRAny 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-parameterYNoneimplicitvkCmdTraceRaysKHRpHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683YNoneexplicitvkCmdTraceRaysKHRIf 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-03684YNoneexplicitvkCmdTraceRaysKHRThe 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-03685YNoneexplicitvkCmdTraceRaysKHRpMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHRpMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680YNoneexplicitvkCmdTraceRaysKHRIf 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-03681YNoneexplicitvkCmdTraceRaysKHRThe 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-03682YNoneexplicitvkCmdTraceRaysKHRpRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHRpRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-reductionMode-09213NNoneexplicitvkCmdTraceRaysKHRAny 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-renderpassYNoneimplicitvkCmdTraceRaysKHRThis command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysKHR-selectableCubicWeights-09214NNoneexplicitvkCmdTraceRaysKHRIf 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-04023YNoneexplicitvkCmdTraceRaysKHRThe size member of pRayGenShaderBindingTable must be equal to its stride member
VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04474YNoneexplicitvkCmdTraceRaysKHRIf 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-04475NNoneexplicitvkCmdTraceRaysKHRIf 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-06936YNoneexplicitvkCmdTraceRaysKHRIf 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.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRpMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-03690YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRpHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-03694YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRpCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-04029YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRpMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-stride-04035YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRpHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-stride-04041YNegativeRayTracing.CmdTraceRaysKHRexplicitvkCmdTraceRaysKHRpCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-uniformBuffers-06935YNoneexplicitvkCmdTraceRaysKHRIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdTraceRaysKHRIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdTraceRaysKHR-unnormalizedCoordinates-09636NNoneexplicitvkCmdTraceRaysKHRIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdTraceRaysKHR-videocodingYNoneimplicitvkCmdTraceRaysKHRThis command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysKHR-viewType-07752YNoneexplicitvkCmdTraceRaysKHRIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdTraceRaysKHR-width-03638YNoneexplicitvkCmdTraceRaysKHRwidth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] × VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-vkCmdTraceRaysKHR-width-03641YNoneexplicitvkCmdTraceRaysKHRwidth × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-vkCmdTraceRaysNV-ConstOffset-06551YNoneexplicitvkCmdTraceRaysNVIf 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-02691YNoneexplicitvkCmdTraceRaysNVIf 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-02692YNoneexplicitvkCmdTraceRaysNVIf 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-02693YNoneexplicitvkCmdTraceRaysNVIf 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-03429NNoneexplicitvkCmdTraceRaysNVAny shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysNV-None-06479YNoneexplicitvkCmdTraceRaysNVIf 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-06550YNoneexplicitvkCmdTraceRaysNVIf 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-07288NNoneexplicitvkCmdTraceRaysNVAny shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysNV-None-07888YNoneexplicitvkCmdTraceRaysNVIf 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-08114YNoneexplicitvkCmdTraceRaysNVDescriptors 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-08115YNoneexplicitvkCmdTraceRaysNVIf 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-08116NNoneexplicitvkCmdTraceRaysNVDescriptors 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-08117YNoneexplicitvkCmdTraceRaysNVIf 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-08119NNoneexplicitvkCmdTraceRaysNVIf 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.SpecConstantSizeSetexplicitvkCmdTraceRaysNVFor 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-08601NNoneexplicitvkCmdTraceRaysNVFor 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-08604NNoneexplicitvkCmdTraceRaysNVDescriptors 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-08605NNoneexplicitvkCmdTraceRaysNVIf 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-08606YNoneexplicitvkCmdTraceRaysNVIf the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysNV-None-08607YNoneexplicitvkCmdTraceRaysNVIf 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-08608YNoneexplicitvkCmdTraceRaysNVIf a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysNV-None-08609YNoneexplicitvkCmdTraceRaysNVIf 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-08610YNoneexplicitvkCmdTraceRaysNVIf 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-08611YNoneexplicitvkCmdTraceRaysNVIf 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-08612YNoneexplicitvkCmdTraceRaysNVIf 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-08613YNoneexplicitvkCmdTraceRaysNVIf 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-09458YNoneexplicitvkCmdTraceRaysNVIf 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-None-09600NNoneexplicitvkCmdTraceRaysNVIf a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
VUID-vkCmdTraceRaysNV-None-10068NNoneexplicitvkCmdTraceRaysNVFor each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysNVIf 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-06976NNoneexplicitvkCmdTraceRaysNVIf 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-06974NNoneexplicitvkCmdTraceRaysNVIf 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-09215NNoneexplicitvkCmdTraceRaysNVIf 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-09216NNoneexplicitvkCmdTraceRaysNVIf 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-09217NNoneexplicitvkCmdTraceRaysNVIf 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-06973NNoneexplicitvkCmdTraceRaysNVIf 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-06971NNoneexplicitvkCmdTraceRaysNVIf 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-06972NNoneexplicitvkCmdTraceRaysNVIf 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-06977NNoneexplicitvkCmdTraceRaysNVIf 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-06978NNoneexplicitvkCmdTraceRaysNVIf 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-04469YNoneexplicitvkCmdTraceRaysNVIf 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-08795YNoneexplicitvkCmdTraceRaysNVIf 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-08796YNoneexplicitvkCmdTraceRaysNVIf 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-07027YNoneexplicitvkCmdTraceRaysNVFor 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-07028YNoneexplicitvkCmdTraceRaysNVFor 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-07029YNoneexplicitvkCmdTraceRaysNVFor 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-07030YNoneexplicitvkCmdTraceRaysNVAny 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-04470YNoneexplicitvkCmdTraceRaysNVIf 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-04471YNoneexplicitvkCmdTraceRaysNVIf 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-04472YNoneexplicitvkCmdTraceRaysNVIf 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-04473YNoneexplicitvkCmdTraceRaysNVIf 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-02461YNoneexplicitvkCmdTraceRaysNVcallableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcallableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcallableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVcallableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045NNoneexplicitvkCmdTraceRaysNVIf callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNVIf callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-commandBuffer-02707YNoneexplicitvkCmdTraceRaysNVIf 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-04624YNoneexplicitvkCmdTraceRaysNVcommandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysNV-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysNVThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysNV-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysNV-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysNVcommandBuffer must be in the recording state
VUID-vkCmdTraceRaysNV-commonparentYNoneimplicitvkCmdTraceRaysNVEach 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-09212NNoneexplicitvkCmdTraceRaysNVIf 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.SpecConstantSizeSetexplicitvkCmdTraceRaysNVdepth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdTraceRaysNV-filterCubic-02694YNoneexplicitvkCmdTraceRaysNVAny 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-02695YNoneexplicitvkCmdTraceRaysNVAny 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-02696YNoneexplicitvkCmdTraceRaysNVAny 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-07753YNoneexplicitvkCmdTraceRaysNVIf 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.SpecConstantSizeSetexplicitvkCmdTraceRaysNVheight must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459YNoneexplicitvkCmdTraceRaysNVhitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVhitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVhitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVhitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044NNoneexplicitvkCmdTraceRaysNVIf hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNVIf hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-magFilter-04553YNoneexplicitvkCmdTraceRaysNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-magFilter-09598YNoneexplicitvkCmdTraceRaysNVIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdTraceRaysNV-maintenance4-08602YNoneexplicitvkCmdTraceRaysNVIf 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-03625NNoneexplicitvkCmdTraceRaysNVThis 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-04770YNoneexplicitvkCmdTraceRaysNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, 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-mipmapMode-09599YNoneexplicitvkCmdTraceRaysNVIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX 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_MINMAX_BIT
VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457YNoneexplicitvkCmdTraceRaysNVmissShaderBindingOffset must be less than the size of missShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVmissShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVmissShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVmissShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043NNoneexplicitvkCmdTraceRaysNVIf missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNVIf missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455YNoneexplicitvkCmdTraceRaysNVraygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVraygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042NNoneexplicitvkCmdTraceRaysNVIf raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNVraygenShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-reductionMode-09213NNoneexplicitvkCmdTraceRaysNVAny 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-renderpassYNoneimplicitvkCmdTraceRaysNVThis command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214NNoneexplicitvkCmdTraceRaysNVIf 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-04474YNoneexplicitvkCmdTraceRaysNVIf 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-04475NNoneexplicitvkCmdTraceRaysNVIf 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-06936YNoneexplicitvkCmdTraceRaysNVIf 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-06935YNoneexplicitvkCmdTraceRaysNVIf 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-unnormalizedCoordinates-09635YNoneexplicitvkCmdTraceRaysNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's levelCount and layerCount must be 1
VUID-vkCmdTraceRaysNV-unnormalizedCoordinates-09636NNoneexplicitvkCmdTraceRaysNVIf a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view's viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdTraceRaysNV-videocodingYNoneimplicitvkCmdTraceRaysNVThis command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysNV-viewType-07752YNoneexplicitvkCmdTraceRaysNVIf 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 Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdTraceRaysNV-width-02469YPositiveShaderPushConstants.SpecConstantSizeSetexplicitvkCmdTraceRaysNVwidth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdUpdateBuffer-commandBuffer-01813YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdUpdateBufferIf commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdUpdateBuffer-commandBuffer-01814YNegativeProtectedMemory.MixingProtectedResourcesexplicitvkCmdUpdateBufferIf commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdUpdateBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdUpdateBufferThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdUpdateBuffer-commandBuffer-parameterYNoneimplicitvkCmdUpdateBuffercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdUpdateBuffer-commandBuffer-recordingYNoneimplicitvkCmdUpdateBuffercommandBuffer must be in the recording state
VUID-vkCmdUpdateBuffer-commonparentYNoneimplicitvkCmdUpdateBufferBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdUpdateBuffer-dataSize-00033YNegativeCommand.CmdUpdateBufferSizeexplicitvkCmdUpdateBufferdataSize must be less than or equal to the size of dstBuffer minus dstOffset
VUID-vkCmdUpdateBuffer-dataSize-00037YNoneexplicitvkCmdUpdateBufferdataSize must be less than or equal to 65536
VUID-vkCmdUpdateBuffer-dataSize-00038YNoneexplicitvkCmdUpdateBufferdataSize must be a multiple of 4
VUID-vkCmdUpdateBuffer-dataSize-arraylengthYNoneimplicitvkCmdUpdateBufferdataSize must be greater than 0
VUID-vkCmdUpdateBuffer-dstBuffer-00034YNoneexplicitvkCmdUpdateBufferdstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdUpdateBuffer-dstBuffer-00035YNoneexplicitvkCmdUpdateBufferIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdUpdateBuffer-dstBuffer-parameterYNoneimplicitvkCmdUpdateBufferdstBuffer must be a valid VkBuffer handle
VUID-vkCmdUpdateBuffer-dstOffset-00032YNegativeCommand.CmdUpdateBufferDstOffsetexplicitvkCmdUpdateBufferdstOffset must be less than the size of dstBuffer
VUID-vkCmdUpdateBuffer-dstOffset-00036YNoneexplicitvkCmdUpdateBufferdstOffset must be a multiple of 4
VUID-vkCmdUpdateBuffer-pData-parameterYNoneimplicitvkCmdUpdateBufferpData must be a valid pointer to an array of dataSize bytes
VUID-vkCmdUpdateBuffer-renderpassYNegativeBuffer.UpdateBufferWithinRenderPassimplicitvkCmdUpdateBufferThis command must only be called outside of a render pass instance
VUID-vkCmdUpdateBuffer-videocodingYNoneimplicitvkCmdUpdateBufferThis command must only be called outside of a video coding scope
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpoolYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameterYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-recordingYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVcommandBuffer must be in the recording state
VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparentYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVBoth of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdUpdatePipelineIndirectBufferNV-deviceGeneratedComputePipelines-09021NNoneexplicitvkCmdUpdatePipelineIndirectBufferNVThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019NNoneexplicitvkCmdUpdatePipelineIndirectBufferNVpipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV flag set
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020NNoneexplicitvkCmdUpdatePipelineIndirectBufferNVpipeline must have been created with VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameterYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVpipeline must be a valid VkPipeline handle
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018NNoneexplicitvkCmdUpdatePipelineIndirectBufferNVpipelineBindPoint must be VK_PIPELINE_BIND_POINT_COMPUTE
VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameterYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVpipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpassYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVThis command must only be called outside of a render pass instance
VUID-vkCmdUpdatePipelineIndirectBufferNV-videocodingYNoneimplicitvkCmdUpdatePipelineIndirectBufferNVThis command must only be called outside of a video coding scope
VUID-vkCmdWaitEvents-commandBuffer-01167NNoneexplicitvkCmdWaitEventscommandBuffer's current device mask must include exactly one physical device
VUID-vkCmdWaitEvents-commandBuffer-cmdpoolYNoneimplicitvkCmdWaitEventsThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdWaitEvents-commandBuffer-parameterYNoneimplicitvkCmdWaitEventscommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWaitEvents-commandBuffer-recordingYNoneimplicitvkCmdWaitEventscommandBuffer must be in the recording state
VUID-vkCmdWaitEvents-commonparentYNoneimplicitvkCmdWaitEventsBoth of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWaitEvents-dstAccessMask-02816YNoneexplicitvkCmdWaitEventsThe 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.EventSync1AccessAccelerationStructureRayQueryDisabledexplicitvkCmdWaitEventsIf 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-03937YNoneexplicitvkCmdWaitEventsIf the synchronization2 feature is not enabled, dstStageMask must not be 0
VUID-vkCmdWaitEvents-dstStageMask-04090YNoneexplicitvkCmdWaitEventsIf the geometryShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWaitEvents-dstStageMask-04091YNoneexplicitvkCmdWaitEventsIf 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-04092YNoneexplicitvkCmdWaitEventsIf the conditionalRendering feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04093YNoneexplicitvkCmdWaitEventsIf the fragmentDensityMap feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04094YNoneexplicitvkCmdWaitEventsIf the transformFeedback feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdWaitEventsIf the meshShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdWaitEventsIf the taskShader feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-06460YNoneexplicitvkCmdWaitEventsAny 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-07318YNoneexplicitvkCmdWaitEventsIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWaitEvents-dstStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdWaitEventsIf 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-parameterYNoneimplicitvkCmdWaitEventsdstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdWaitEvents-eventCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkCmdWaitEventseventCount must be greater than 0
VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817YNoneexplicitvkCmdWaitEventsFor 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-02818YNoneexplicitvkCmdWaitEventsFor 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-parameterYNoneimplicitvkCmdWaitEventsIf bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures
VUID-vkCmdWaitEvents-pEvents-03847NNoneexplicitvkCmdWaitEventsElements of pEvents must not have been signaled by vkCmdSetEvent2
VUID-vkCmdWaitEvents-pEvents-parameterYNegativeSyncObject.WaitOnNoEventimplicitvkCmdWaitEventspEvents must be a valid pointer to an array of eventCount valid VkEvent handles
VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819YNoneexplicitvkCmdWaitEventsFor 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-02820YNoneexplicitvkCmdWaitEventsFor 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-parameterYNoneimplicitvkCmdWaitEventsIf imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures
VUID-vkCmdWaitEvents-pMemoryBarriers-parameterYNoneimplicitvkCmdWaitEventsIf memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures
VUID-vkCmdWaitEvents-srcAccessMask-02815YNoneexplicitvkCmdWaitEventsThe 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.EventSync1AccessAccelerationStructureRayQueryDisabledexplicitvkCmdWaitEventsIf 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.WaitEventsDifferentQueueFamiliesexplicitvkCmdWaitEventsThe srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pBufferMemoryBarriers or pImageMemoryBarriers must be equal
VUID-vkCmdWaitEvents-srcStageMask-01158YNoneexplicitvkCmdWaitEventssrcStageMask 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-03937YNoneexplicitvkCmdWaitEventsIf the synchronization2 feature is not enabled, srcStageMask must not be 0
VUID-vkCmdWaitEvents-srcStageMask-04090YNoneexplicitvkCmdWaitEventsIf the geometryShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWaitEvents-srcStageMask-04091YNoneexplicitvkCmdWaitEventsIf 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-04092YNoneexplicitvkCmdWaitEventsIf the conditionalRendering feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04093YNoneexplicitvkCmdWaitEventsIf the fragmentDensityMap feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04094YNoneexplicitvkCmdWaitEventsIf the transformFeedback feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04095YNegativeMesh.ExtensionDisabledNVexplicitvkCmdWaitEventsIf the meshShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04096YNegativeMesh.ExtensionDisabledNVexplicitvkCmdWaitEventsIf the taskShader feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-06459YNegativeSyncObject.BarriersexplicitvkCmdWaitEventsAny 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.WaitEventRenderPassHostBitexplicitvkCmdWaitEventsIf vkCmdWaitEvents is being called inside a render pass instance, srcStageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdWaitEvents-srcStageMask-07318YNoneexplicitvkCmdWaitEventsIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWaitEvents-srcStageMask-07949YVkLayerTest.RayTracingStageFlagWithoutFeatureexplicitvkCmdWaitEventsIf 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.EventStageMaskTwoCommandBufferFailimplicitvkCmdWaitEventssrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdWaitEvents2-commandBuffer-03846NNoneexplicitvkCmdWaitEvents2commandBuffer's current device mask must include exactly one physical device
VUID-vkCmdWaitEvents2-commandBuffer-cmdpoolYNoneimplicitvkCmdWaitEvents2The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdWaitEvents2-commandBuffer-parameterYNoneimplicitvkCmdWaitEvents2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWaitEvents2-commandBuffer-recordingYNoneimplicitvkCmdWaitEvents2commandBuffer must be in the recording state
VUID-vkCmdWaitEvents2-commonparentYNoneimplicitvkCmdWaitEvents2Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWaitEvents2-dependencyFlags-03844YNoneexplicitvkCmdWaitEvents2If 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-03843YNoneexplicitvkCmdWaitEvents2The 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-arraylengthYNoneimplicitvkCmdWaitEvents2eventCount must be greater than 0
VUID-vkCmdWaitEvents2-pDependencyInfos-parameterYNoneimplicitvkCmdWaitEvents2pDependencyInfos must be a valid pointer to an array of eventCount valid VkDependencyInfo structures
VUID-vkCmdWaitEvents2-pEvents-03837YNoneexplicitvkCmdWaitEvents2Members of pEvents must not have been signaled by vkCmdSetEvent
VUID-vkCmdWaitEvents2-pEvents-03838YNoneexplicitvkCmdWaitEvents2For 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-03839NNoneexplicitvkCmdWaitEvents2For 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-03840NNoneexplicitvkCmdWaitEvents2For 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-03841NNoneexplicitvkCmdWaitEvents2For 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-parameterYNoneimplicitvkCmdWaitEvents2pEvents must be a valid pointer to an array of eventCount valid VkEvent handles
VUID-vkCmdWaitEvents2-srcStageMask-03842YNoneexplicitvkCmdWaitEvents2The srcStageMask 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-synchronization2-03836YNegativeSyncVal.CmdWaitEvents2KHRUsedButSynchronizaion2DisabledexplicitvkCmdWaitEvents2The synchronization2 feature must be enabled
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructure-08924YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylengthYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRaccelerationStructureCount must be greater than 0
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRAll 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-03736YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRThe buffer used to create each acceleration structure in pAccelerationStructures must be bound to device memory
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recordingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRcommandBuffer must be in the recording state
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparentYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHREach of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964YNegativeRayTracing.WriteAccelerationStructuresPropertiesDeviceBlasNotBuiltexplicitvkCmdWriteAccelerationStructuresPropertiesKHRAll acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRpAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRThe sum of firstQuery plus accelerationStructureCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRqueryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02494YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHRThe queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRqueryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-06742YNegativeRayTracing.WriteAccelerationStructuresPropertiesDevice, NegativeRayTracing.WriteAccelerationStructuresPropertiesMaintenance1DeviceexplicitvkCmdWriteAccelerationStructuresPropertiesKHRqueryType 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-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRqueryType must be a valid VkQueryType value
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpassYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRThis command must only be called outside of a render pass instance
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-videocodingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHRThis command must only be called outside of a video coding scope
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructure-03757NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVaccelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylengthYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVaccelerationStructureCount must be greater than 0
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recordingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVcommandBuffer must be in the recording state
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparentYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVEach of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-04958NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVAll acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-06215YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVAll 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-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVpAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureNV handles
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03755YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVqueryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03756NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVThe queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVqueryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-06216YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNVqueryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVqueryType must be a valid VkQueryType value
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-renderpassYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVThis command must only be called outside of a render pass instance
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-videocodingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNVThis command must only be called outside of a video coding scope
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteBufferMarker2AMDThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameterYNoneimplicitvkCmdWriteBufferMarker2AMDcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-recordingYNoneimplicitvkCmdWriteBufferMarker2AMDcommandBuffer must be in the recording state
VUID-vkCmdWriteBufferMarker2AMD-commonparentYNoneimplicitvkCmdWriteBufferMarker2AMDBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897NNoneexplicitvkCmdWriteBufferMarker2AMDdstBuffer must have been created with the VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898NNoneexplicitvkCmdWriteBufferMarker2AMDIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameterYNoneimplicitvkCmdWriteBufferMarker2AMDdstBuffer must be a valid VkBuffer handle
VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896NNoneexplicitvkCmdWriteBufferMarker2AMDdstOffset must be less than or equal to the size of dstBuffer minus 4
VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899NNoneexplicitvkCmdWriteBufferMarker2AMDdstOffset must be a multiple of 4
VUID-vkCmdWriteBufferMarker2AMD-stage-03894NNoneexplicitvkCmdWriteBufferMarker2AMDstage must include only a single pipeline stage
VUID-vkCmdWriteBufferMarker2AMD-stage-03895NNoneexplicitvkCmdWriteBufferMarker2AMDstage 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-03929YNoneexplicitvkCmdWriteBufferMarker2AMDIf the geometryShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteBufferMarker2AMD-stage-03930YNoneexplicitvkCmdWriteBufferMarker2AMDIf 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-03931YNoneexplicitvkCmdWriteBufferMarker2AMDIf the conditionalRendering feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03932YNoneexplicitvkCmdWriteBufferMarker2AMDIf the fragmentDensityMap feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03933YNoneexplicitvkCmdWriteBufferMarker2AMDIf the transformFeedback feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03934YNoneexplicitvkCmdWriteBufferMarker2AMDIf the meshShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03935YNoneexplicitvkCmdWriteBufferMarker2AMDIf the taskShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-04957YNoneexplicitvkCmdWriteBufferMarker2AMDIf the subpassShading feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-vkCmdWriteBufferMarker2AMD-stage-04995YNoneexplicitvkCmdWriteBufferMarker2AMDIf the invocationMask feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdWriteBufferMarker2AMD-stage-07316YNoneexplicitvkCmdWriteBufferMarker2AMDIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteBufferMarker2AMD-stage-07946YNoneexplicitvkCmdWriteBufferMarker2AMDIf 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-parameterYNoneimplicitvkCmdWriteBufferMarker2AMDstage must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893NNoneexplicitvkCmdWriteBufferMarker2AMDThe synchronization2 feature must be enabled
VUID-vkCmdWriteBufferMarker2AMD-videocodingYNoneimplicitvkCmdWriteBufferMarker2AMDThis command must only be called outside of a video coding scope
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteBufferMarkerAMDThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameterYNoneimplicitvkCmdWriteBufferMarkerAMDcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recordingYNoneimplicitvkCmdWriteBufferMarkerAMDcommandBuffer must be in the recording state
VUID-vkCmdWriteBufferMarkerAMD-commonparentYNoneimplicitvkCmdWriteBufferMarkerAMDBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799NNoneexplicitvkCmdWriteBufferMarkerAMDdstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800NNoneexplicitvkCmdWriteBufferMarkerAMDIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameterYNoneimplicitvkCmdWriteBufferMarkerAMDdstBuffer must be a valid VkBuffer handle
VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798NNoneexplicitvkCmdWriteBufferMarkerAMDdstOffset must be less than or equal to the size of dstBuffer minus 4
VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801NNoneexplicitvkCmdWriteBufferMarkerAMDdstOffset must be a multiple of 4
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074YNoneexplicitvkCmdWriteBufferMarkerAMDpipelineStage 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-04075YNoneexplicitvkCmdWriteBufferMarkerAMDIf the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076YNoneexplicitvkCmdWriteBufferMarkerAMDIf 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-04077YNoneexplicitvkCmdWriteBufferMarkerAMDIf the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078YNoneexplicitvkCmdWriteBufferMarkerAMDIf the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079YNoneexplicitvkCmdWriteBufferMarkerAMDIf the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080YNoneexplicitvkCmdWriteBufferMarkerAMDIf the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-07077YNoneexplicitvkCmdWriteBufferMarkerAMDIf the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameterYNoneimplicitvkCmdWriteBufferMarkerAMDIf pipelineStage is not 0, pipelineStage must be a valid VkPipelineStageFlagBits value
VUID-vkCmdWriteBufferMarkerAMD-rayTracingPipeline-07943NNoneexplicitvkCmdWriteBufferMarkerAMDIf 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-07314NNoneexplicitvkCmdWriteBufferMarkerAMDIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489NNoneexplicitvkCmdWriteBufferMarkerAMDIf the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE
VUID-vkCmdWriteBufferMarkerAMD-videocodingYNoneimplicitvkCmdWriteBufferMarkerAMDThis command must only be called outside of a video coding scope
VUID-vkCmdWriteMicromapsPropertiesEXT-buffer-07527NNoneexplicitvkCmdWriteMicromapsPropertiesEXTThe buffer used to create each micromap in pMicrmaps must be bound to device memory
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteMicromapsPropertiesEXTThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-recordingYNoneimplicitvkCmdWriteMicromapsPropertiesEXTcommandBuffer must be in the recording state
VUID-vkCmdWriteMicromapsPropertiesEXT-commonparentYNoneimplicitvkCmdWriteMicromapsPropertiesEXTEach of commandBuffer, queryPool, and the elements of pMicromaps must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteMicromapsPropertiesEXT-micromapCount-arraylengthYNoneimplicitvkCmdWriteMicromapsPropertiesEXTmicromapCount must be greater than 0
VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07501NNoneexplicitvkCmdWriteMicromapsPropertiesEXTAll micromaps in pMicromaps must have been constructed prior to the execution of this command
VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07502NNoneexplicitvkCmdWriteMicromapsPropertiesEXTAll 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-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXTpMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles
VUID-vkCmdWriteMicromapsPropertiesEXT-query-07528NNoneexplicitvkCmdWriteMicromapsPropertiesEXTThe sum of query plus micromapCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07525NNoneexplicitvkCmdWriteMicromapsPropertiesEXTqueryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07526NNoneexplicitvkCmdWriteMicromapsPropertiesEXTThe queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXTqueryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-07503NNoneexplicitvkCmdWriteMicromapsPropertiesEXTqueryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT
VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXTqueryType must be a valid VkQueryType value
VUID-vkCmdWriteMicromapsPropertiesEXT-renderpassYNoneimplicitvkCmdWriteMicromapsPropertiesEXTThis command must only be called outside of a render pass instance
VUID-vkCmdWriteMicromapsPropertiesEXT-videocodingYNoneimplicitvkCmdWriteMicromapsPropertiesEXTThis command must only be called outside of a video coding scope
VUID-vkCmdWriteTimestamp-None-00830YNoneexplicitvkCmdWriteTimestampAll queries used by the command must be unavailable
VUID-vkCmdWriteTimestamp-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteTimestampThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, encode, or optical flow operations
VUID-vkCmdWriteTimestamp-commandBuffer-parameterYNoneimplicitvkCmdWriteTimestampcommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteTimestamp-commandBuffer-recordingYNoneimplicitvkCmdWriteTimestampcommandBuffer must be in the recording state
VUID-vkCmdWriteTimestamp-commonparentYNoneimplicitvkCmdWriteTimestampBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteTimestamp-pipelineStage-04074YNoneexplicitvkCmdWriteTimestamppipelineStage 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-04075YNoneexplicitvkCmdWriteTimestampIf the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteTimestamp-pipelineStage-04076YNoneexplicitvkCmdWriteTimestampIf 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-04077YNoneexplicitvkCmdWriteTimestampIf the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04078YNoneexplicitvkCmdWriteTimestampIf the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04079YNoneexplicitvkCmdWriteTimestampIf the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04080YNoneexplicitvkCmdWriteTimestampIf the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-07077YNoneexplicitvkCmdWriteTimestampIf the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-parameterYNoneimplicitvkCmdWriteTimestamppipelineStage must be a valid VkPipelineStageFlagBits value
VUID-vkCmdWriteTimestamp-query-00831YNegativeQuery.WriteTimestampInsideRenderPassexplicitvkCmdWriteTimestampIf 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.WriteTimeStampexplicitvkCmdWriteTimestampquery must be less than the number of queries in queryPool
VUID-vkCmdWriteTimestamp-queryPool-01416YNegativeQuery.SizesexplicitvkCmdWriteTimestampqueryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdWriteTimestamp-queryPool-parameterYNegativeQuery.WriteTimestampWithoutQueryPoolimplicitvkCmdWriteTimestampqueryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943YNoneexplicitvkCmdWriteTimestampIf 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.StageUsageNVexplicitvkCmdWriteTimestampIf neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteTimestamp-synchronization2-06489YNoneexplicitvkCmdWriteTimestampIf the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE
VUID-vkCmdWriteTimestamp-timestampValidBits-00829YNegativeQuery.SizesexplicitvkCmdWriteTimestampThe command pool's queue family must support a non-zero timestampValidBits
VUID-vkCmdWriteTimestamp2-None-03864YNoneexplicitvkCmdWriteTimestamp2All queries used by the command must be unavailable
VUID-vkCmdWriteTimestamp2-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteTimestamp2The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdWriteTimestamp2-commandBuffer-parameterYNoneimplicitvkCmdWriteTimestamp2commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteTimestamp2-commandBuffer-recordingYNoneimplicitvkCmdWriteTimestamp2commandBuffer must be in the recording state
VUID-vkCmdWriteTimestamp2-commonparentYNoneimplicitvkCmdWriteTimestamp2Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteTimestamp2-query-03865YNoneexplicitvkCmdWriteTimestamp2If 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-04903YNoneexplicitvkCmdWriteTimestamp2query must be less than the number of queries in queryPool
VUID-vkCmdWriteTimestamp2-queryPool-03861YNoneexplicitvkCmdWriteTimestamp2queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdWriteTimestamp2-queryPool-parameterYNegativeQuery.WriteTimestampWithoutQueryPoolimplicitvkCmdWriteTimestamp2queryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteTimestamp2-stage-03859YNoneexplicitvkCmdWriteTimestamp2stage must only include a single pipeline stage
VUID-vkCmdWriteTimestamp2-stage-03860YNoneexplicitvkCmdWriteTimestamp2stage 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-03929YNoneexplicitvkCmdWriteTimestamp2If the geometryShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteTimestamp2-stage-03930YNoneexplicitvkCmdWriteTimestamp2If 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-03931YNoneexplicitvkCmdWriteTimestamp2If the conditionalRendering feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03932YNoneexplicitvkCmdWriteTimestamp2If the fragmentDensityMap feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03933YNoneexplicitvkCmdWriteTimestamp2If the transformFeedback feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03934YNoneexplicitvkCmdWriteTimestamp2If the meshShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03935YNoneexplicitvkCmdWriteTimestamp2If the taskShader feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-04957YNoneexplicitvkCmdWriteTimestamp2If the subpassShading feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
VUID-vkCmdWriteTimestamp2-stage-04995YNoneexplicitvkCmdWriteTimestamp2If the invocationMask feature is not enabled, stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdWriteTimestamp2-stage-07316YNoneexplicitvkCmdWriteTimestamp2If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteTimestamp2-stage-07946YNoneexplicitvkCmdWriteTimestamp2If 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-parameterYNoneimplicitvkCmdWriteTimestamp2stage must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdWriteTimestamp2-synchronization2-03858YNegativeSyncVal.Sync2FeatureDisabledexplicitvkCmdWriteTimestamp2The synchronization2 feature must be enabled
VUID-vkCmdWriteTimestamp2-timestampValidBits-03863YNoneexplicitvkCmdWriteTimestamp2The command pool's queue family must support a non-zero timestampValidBits
VUID-vkCompileDeferredNV-device-parameterYNoneimplicitvkCompileDeferredNVdevice must be a valid VkDevice handle
VUID-vkCompileDeferredNV-pipeline-02237NNoneexplicitvkCompileDeferredNVpipeline must have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV
VUID-vkCompileDeferredNV-pipeline-04621NNoneexplicitvkCompileDeferredNVpipeline must be a ray tracing pipeline
VUID-vkCompileDeferredNV-pipeline-parameterYNoneimplicitvkCompileDeferredNVpipeline must be a valid VkPipeline handle
VUID-vkCompileDeferredNV-pipeline-parentYNoneimplicitvkCompileDeferredNVpipeline must have been created, allocated, or retrieved from device
VUID-vkCompileDeferredNV-shader-02238NNoneexplicitvkCompileDeferredNVshader must not have been called as a deferred compile before
VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582YNoneexplicitvkCopyAccelerationStructureKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkCopyAccelerationStructureKHR-buffer-03727YNegativeRayTracing.CopyAccelerationStructureNoHostMemexplicitvkCopyAccelerationStructureKHRThe buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyAccelerationStructureKHR-buffer-03728YNegativeRayTracing.CopyAccelerationStructureNoHostMemexplicitvkCopyAccelerationStructureKHRThe buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyAccelerationStructureKHR-buffer-03780YNoneexplicitvkCopyAccelerationStructureKHRThe buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureKHR-buffer-03781YNoneexplicitvkCopyAccelerationStructureKHRThe buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureKHR-deferredOperation-03678YNoneexplicitvkCopyAccelerationStructureKHRAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameterYNoneimplicitvkCopyAccelerationStructureKHRIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyAccelerationStructureKHR-deferredOperation-parentYNoneimplicitvkCopyAccelerationStructureKHRIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyAccelerationStructureKHR-device-parameterYNoneimplicitvkCopyAccelerationStructureKHRdevice must be a valid VkDevice handle
VUID-vkCopyAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCopyAccelerationStructureKHRpInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure
VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584YNoneexplicitvkCopyAccelerationStructureToMemoryKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731YNegativeRayTracing.CopyAccelerationStructureToMemoryKHRexplicitvkCopyAccelerationStructureToMemoryKHRThe buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783YNoneexplicitvkCopyAccelerationStructureToMemoryKHRThe buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03678YNoneexplicitvkCopyAccelerationStructureToMemoryKHRAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHRIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parentYNoneimplicitvkCopyAccelerationStructureToMemoryKHRIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHRdevice must be a valid VkDevice handle
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732YNoneexplicitvkCopyAccelerationStructureToMemoryKHRpInfo->dst.hostAddress must be a valid host pointer
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751YNoneexplicitvkCopyAccelerationStructureToMemoryKHRpInfo->dst.hostAddress must be aligned to 16 bytes
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHRpInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure
VUID-vkCopyImageToImageEXT-device-parameterYNoneimplicitvkCopyImageToImageEXTdevice must be a valid VkDevice handle
VUID-vkCopyImageToImageEXT-hostImageCopy-09068YNegativeHostImageCopy.FeaturesexplicitvkCopyImageToImageEXTThe hostImageCopy feature must be enabled
VUID-vkCopyImageToImageEXT-pCopyImageToImageInfo-parameterYNoneimplicitvkCopyImageToImageEXTpCopyImageToImageInfo must be a valid pointer to a valid VkCopyImageToImageInfoEXT structure
VUID-vkCopyImageToMemoryEXT-device-parameterYNoneimplicitvkCopyImageToMemoryEXTdevice must be a valid VkDevice handle
VUID-vkCopyImageToMemoryEXT-hostImageCopy-09063YNegativeHostImageCopy.FeaturesexplicitvkCopyImageToMemoryEXTThe hostImageCopy feature must be enabled
VUID-vkCopyImageToMemoryEXT-pCopyImageToMemoryInfo-parameterYNoneimplicitvkCopyImageToMemoryEXTpCopyImageToMemoryInfo must be a valid pointer to a valid VkCopyImageToMemoryInfoEXT structure
VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583YNoneexplicitvkCopyMemoryToAccelerationStructureKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730YNegativeRayTracing.CopyMemoryToAsBufferexplicitvkCopyMemoryToAccelerationStructureKHRThe buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782YNoneexplicitvkCopyMemoryToAccelerationStructureKHRThe buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03678YNoneexplicitvkCopyMemoryToAccelerationStructureKHRAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHRIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parentYNoneimplicitvkCopyMemoryToAccelerationStructureKHRIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHRdevice must be a valid VkDevice handle
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729YNoneexplicitvkCopyMemoryToAccelerationStructureKHRpInfo->src.hostAddress must be a valid host pointer
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750YNegativeRayTracing.CopyMemoryToAccelerationStructureHostAddressexplicitvkCopyMemoryToAccelerationStructureKHRpInfo->src.hostAddress must be aligned to 16 bytes
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHRpInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure
VUID-vkCopyMemoryToImageEXT-device-parameterYNoneimplicitvkCopyMemoryToImageEXTdevice must be a valid VkDevice handle
VUID-vkCopyMemoryToImageEXT-hostImageCopy-09058YNegativeHostImageCopy.FeaturesexplicitvkCopyMemoryToImageEXTThe hostImageCopy feature must be enabled
VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameterYNoneimplicitvkCopyMemoryToImageEXTpCopyMemoryToImageInfo must be a valid pointer to a valid VkCopyMemoryToImageInfoEXT structure
VUID-vkCopyMemoryToMicromapEXT-buffer-07565NNoneexplicitvkCopyMemoryToMicromapEXTThe buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMemoryToMicromapEXT-buffer-07567NNoneexplicitvkCopyMemoryToMicromapEXTThe buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03678NNoneexplicitvkCopyMemoryToMicromapEXTAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parameterYNoneimplicitvkCopyMemoryToMicromapEXTIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parentYNoneimplicitvkCopyMemoryToMicromapEXTIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMemoryToMicromapEXT-device-parameterYNoneimplicitvkCopyMemoryToMicromapEXTdevice must be a valid VkDevice handle
VUID-vkCopyMemoryToMicromapEXT-micromapHostCommands-07566NNoneexplicitvkCopyMemoryToMicromapEXTThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMemoryToMicromapEXT-pInfo-07563NNoneexplicitvkCopyMemoryToMicromapEXTpInfo->src.hostAddress must be a valid host pointer
VUID-vkCopyMemoryToMicromapEXT-pInfo-07564NNoneexplicitvkCopyMemoryToMicromapEXTpInfo->src.hostAddress must be aligned to 16 bytes
VUID-vkCopyMemoryToMicromapEXT-pInfo-parameterYNoneimplicitvkCopyMemoryToMicromapEXTpInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure
VUID-vkCopyMicromapEXT-buffer-07558NNoneexplicitvkCopyMicromapEXTThe buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyMicromapEXT-buffer-07559NNoneexplicitvkCopyMicromapEXTThe buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMicromapEXT-buffer-07561NNoneexplicitvkCopyMicromapEXTThe buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapEXT-buffer-07562NNoneexplicitvkCopyMicromapEXTThe buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapEXT-deferredOperation-03678NNoneexplicitvkCopyMicromapEXTAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMicromapEXT-deferredOperation-parameterYNoneimplicitvkCopyMicromapEXTIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMicromapEXT-deferredOperation-parentYNoneimplicitvkCopyMicromapEXTIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMicromapEXT-device-parameterYNoneimplicitvkCopyMicromapEXTdevice must be a valid VkDevice handle
VUID-vkCopyMicromapEXT-micromapHostCommands-07560NNoneexplicitvkCopyMicromapEXTThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMicromapEXT-pInfo-parameterYNoneimplicitvkCopyMicromapEXTpInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure
VUID-vkCopyMicromapToMemoryEXT-buffer-07568NNoneexplicitvkCopyMicromapToMemoryEXTThe buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyMicromapToMemoryEXT-buffer-07572NNoneexplicitvkCopyMicromapToMemoryEXTThe buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03678NNoneexplicitvkCopyMicromapToMemoryEXTAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parameterYNoneimplicitvkCopyMicromapToMemoryEXTIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parentYNoneimplicitvkCopyMicromapToMemoryEXTIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMicromapToMemoryEXT-device-parameterYNoneimplicitvkCopyMicromapToMemoryEXTdevice must be a valid VkDevice handle
VUID-vkCopyMicromapToMemoryEXT-micromapHostCommands-07571NNoneexplicitvkCopyMicromapToMemoryEXTThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMicromapToMemoryEXT-pInfo-07569NNoneexplicitvkCopyMicromapToMemoryEXTpInfo->dst.hostAddress must be a valid host pointer
VUID-vkCopyMicromapToMemoryEXT-pInfo-07570NNoneexplicitvkCopyMicromapToMemoryEXTpInfo->dst.hostAddress must be aligned to 16 bytes
VUID-vkCopyMicromapToMemoryEXT-pInfo-parameterYNoneimplicitvkCopyMicromapToMemoryEXTpInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure
VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611YNegativeRayTracing.CreateAccelerationStructureFeatureexplicitvkCreateAccelerationStructureKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkCreateAccelerationStructureKHR-device-03489NNoneexplicitvkCreateAccelerationStructureKHRIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkCreateAccelerationStructureKHR-device-parameterYNoneimplicitvkCreateAccelerationStructureKHRdevice must be a valid VkDevice handle
VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488YNegativeRayTracing.CreateAccelerationStructureKHRReplayFeatureexplicitvkCreateAccelerationStructureKHRIf VkAccelerationStructureCreateInfoKHR::deviceAddress is not zero, the accelerationStructureCaptureReplay feature must be enabled
VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameterYNoneimplicitvkCreateAccelerationStructureKHRpAccelerationStructure must be a valid pointer to a VkAccelerationStructureKHR handle
VUID-vkCreateAccelerationStructureKHR-pAllocator-parameterYNoneimplicitvkCreateAccelerationStructureKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAccelerationStructureKHR-pCreateInfo-parameterYNoneimplicitvkCreateAccelerationStructureKHRpCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoKHR structure
VUID-vkCreateAccelerationStructureNV-device-parameterYNoneimplicitvkCreateAccelerationStructureNVdevice must be a valid VkDevice handle
VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameterYNoneimplicitvkCreateAccelerationStructureNVpAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle
VUID-vkCreateAccelerationStructureNV-pAllocator-parameterYNoneimplicitvkCreateAccelerationStructureNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameterYNoneimplicitvkCreateAccelerationStructureNVpCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure
VUID-vkCreateAndroidSurfaceKHR-instance-parameterYNoneimplicitvkCreateAndroidSurfaceKHRinstance must be a valid VkInstance handle
VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameterYNoneimplicitvkCreateAndroidSurfaceKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateAndroidSurfaceKHRpCreateInfo must be a valid pointer to a valid VkAndroidSurfaceCreateInfoKHR structure
VUID-vkCreateAndroidSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateAndroidSurfaceKHRpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateBuffer-device-09664YNoneexplicitvkCreateBufferdevice must support at least one queue family with one of the VK_QUEUE_VIDEO_ENCODE_BIT_KHR, VK_QUEUE_VIDEO_DECODE_BIT_KHR, VK_QUEUE_SPARSE_BINDING_BIT, VK_QUEUE_TRANSFER_BIT, VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateBuffer-device-parameterYNoneimplicitvkCreateBufferdevice must be a valid VkDevice handle
VUID-vkCreateBuffer-flags-00911YNoneexplicitvkCreateBufferIf 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-09383NNoneexplicitvkCreateBufferIf 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-09384NNoneexplicitvkCreateBufferIf 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-parameterYNoneimplicitvkCreateBufferIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBuffer-pBuffer-parameterYNoneimplicitvkCreateBufferpBuffer must be a valid pointer to a VkBuffer handle
VUID-vkCreateBuffer-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateBufferpCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure
VUID-vkCreateBuffer-pNext-06387NNoneexplicitvkCreateBufferIf 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-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIAdevice must be a valid VkDevice handle
VUID-vkCreateBufferCollectionFUCHSIA-pAllocator-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIAIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBufferCollectionFUCHSIA-pCollection-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIApCollection must be a valid pointer to a VkBufferCollectionFUCHSIA handle
VUID-vkCreateBufferCollectionFUCHSIA-pCreateInfo-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIApCreateInfo must be a valid pointer to a valid VkBufferCollectionCreateInfoFUCHSIA structure
VUID-vkCreateBufferView-device-09665YNoneexplicitvkCreateBufferViewdevice must support at least one queue family with one of the VK_QUEUE_COMPUTE_BIT or VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateBufferView-device-parameterYNoneimplicitvkCreateBufferViewdevice must be a valid VkDevice handle
VUID-vkCreateBufferView-pAllocator-parameterYNoneimplicitvkCreateBufferViewIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBufferView-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateBufferViewpCreateInfo must be a valid pointer to a valid VkBufferViewCreateInfo structure
VUID-vkCreateBufferView-pView-parameterYNoneimplicitvkCreateBufferViewpView must be a valid pointer to a VkBufferView handle
VUID-vkCreateCommandPool-device-parameterYNoneimplicitvkCreateCommandPooldevice must be a valid VkDevice handle
VUID-vkCreateCommandPool-pAllocator-parameterYNoneimplicitvkCreateCommandPoolIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCommandPool-pCommandPool-parameterYNoneimplicitvkCreateCommandPoolpCommandPool must be a valid pointer to a VkCommandPool handle
VUID-vkCreateCommandPool-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateCommandPoolpCreateInfo must be a valid pointer to a valid VkCommandPoolCreateInfo structure
VUID-vkCreateCommandPool-queueFamilyIndex-01937YNegativeDeviceQueue.CreateCommandPoolexplicitvkCreateCommandPoolpCreateInfo->queueFamilyIndex must be the index of a queue family available in the logical device device
VUID-vkCreateComputePipelines-binaryCount-09620YNegativePipelineBinary.ComputePipelineexplicitvkCreateComputePipelinesIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT must not be set in the flags of that element
VUID-vkCreateComputePipelines-binaryCount-09621YNegativePipelineBinary.ComputePipelineexplicitvkCreateComputePipelinesIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT must not be set in the flags of that element
VUID-vkCreateComputePipelines-binaryCount-09622YNegativePipelineBinary.ComputePipelineexplicitvkCreateComputePipelinesIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT must not be set in the flags of that element
VUID-vkCreateComputePipelines-createInfoCount-arraylengthYNoneimplicitvkCreateComputePipelinescreateInfoCount must be greater than 0
VUID-vkCreateComputePipelines-device-09661YNoneexplicitvkCreateComputePipelinesdevice must support at least one queue family with the VK_QUEUE_COMPUTE_BIT capability
VUID-vkCreateComputePipelines-device-parameterYNoneimplicitvkCreateComputePipelinesdevice must be a valid VkDevice handle
VUID-vkCreateComputePipelines-flags-00695YNegativePipeline.CreateComputePipelineWithDerivativesexplicitvkCreateComputePipelinesIf 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-00696YNegativePipeline.CreateComputePipelineWithDerivativesexplicitvkCreateComputePipelinesIf 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-parameterYNoneimplicitvkCreateComputePipelinesIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateComputePipelines-pCreateInfos-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateComputePipelinespCreateInfos must be a valid pointer to an array of createInfoCount valid VkComputePipelineCreateInfo structures
VUID-vkCreateComputePipelines-pNext-09616YNegativePipelineBinary.ComputePipelineexplicitvkCreateComputePipelinesIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateComputePipelines-pNext-09617YNegativePipelineBinary.ComputePipelineexplicitvkCreateComputePipelinesIf a VkPipelineCreateFlags2CreateInfoKHR structure with the VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag set is included in the pNext chain of any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateComputePipelines-pPipelines-parameterYNoneimplicitvkCreateComputePipelinespPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateComputePipelines-pipelineCache-02873NNoneexplicitvkCreateComputePipelinesIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateComputePipelines-pipelineCache-parameterYNoneimplicitvkCreateComputePipelinesIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateComputePipelines-pipelineCache-parentYNoneimplicitvkCreateComputePipelinesIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateCuFunctionNVX-device-parameterYNoneimplicitvkCreateCuFunctionNVXdevice must be a valid VkDevice handle
VUID-vkCreateCuFunctionNVX-pAllocator-parameterYNoneimplicitvkCreateCuFunctionNVXIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCuFunctionNVX-pCreateInfo-parameterYNoneimplicitvkCreateCuFunctionNVXpCreateInfo must be a valid pointer to a valid VkCuFunctionCreateInfoNVX structure
VUID-vkCreateCuFunctionNVX-pFunction-parameterYNoneimplicitvkCreateCuFunctionNVXpFunction must be a valid pointer to a VkCuFunctionNVX handle
VUID-vkCreateCuModuleNVX-device-parameterYNoneimplicitvkCreateCuModuleNVXdevice must be a valid VkDevice handle
VUID-vkCreateCuModuleNVX-pAllocator-parameterYNoneimplicitvkCreateCuModuleNVXIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCuModuleNVX-pCreateInfo-parameterYNoneimplicitvkCreateCuModuleNVXpCreateInfo must be a valid pointer to a valid VkCuModuleCreateInfoNVX structure
VUID-vkCreateCuModuleNVX-pModule-parameterYNoneimplicitvkCreateCuModuleNVXpModule must be a valid pointer to a VkCuModuleNVX handle
VUID-vkCreateCudaFunctionNV-device-parameterYNoneimplicitvkCreateCudaFunctionNVdevice must be a valid VkDevice handle
VUID-vkCreateCudaFunctionNV-pAllocator-parameterYNoneimplicitvkCreateCudaFunctionNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCudaFunctionNV-pCreateInfo-parameterYNoneimplicitvkCreateCudaFunctionNVpCreateInfo must be a valid pointer to a valid VkCudaFunctionCreateInfoNV structure
VUID-vkCreateCudaFunctionNV-pFunction-parameterYNoneimplicitvkCreateCudaFunctionNVpFunction must be a valid pointer to a VkCudaFunctionNV handle
VUID-vkCreateCudaModuleNV-device-parameterYNoneimplicitvkCreateCudaModuleNVdevice must be a valid VkDevice handle
VUID-vkCreateCudaModuleNV-pAllocator-parameterYNoneimplicitvkCreateCudaModuleNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCudaModuleNV-pCreateInfo-parameterYNoneimplicitvkCreateCudaModuleNVpCreateInfo must be a valid pointer to a valid VkCudaModuleCreateInfoNV structure
VUID-vkCreateCudaModuleNV-pModule-parameterYNoneimplicitvkCreateCudaModuleNVpModule must be a valid pointer to a VkCudaModuleNV handle
VUID-vkCreateDebugReportCallbackEXT-instance-parameterYNoneimplicitvkCreateDebugReportCallbackEXTinstance must be a valid VkInstance handle
VUID-vkCreateDebugReportCallbackEXT-pAllocator-parameterYNoneimplicitvkCreateDebugReportCallbackEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDebugReportCallbackEXT-pCallback-parameterYNoneimplicitvkCreateDebugReportCallbackEXTpCallback must be a valid pointer to a VkDebugReportCallbackEXT handle
VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameterYNoneimplicitvkCreateDebugReportCallbackEXTpCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure
VUID-vkCreateDebugUtilsMessengerEXT-instance-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXTinstance must be a valid VkInstance handle
VUID-vkCreateDebugUtilsMessengerEXT-pAllocator-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXTpCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure
VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXTpMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle
VUID-vkCreateDeferredOperationKHR-device-parameterYNoneimplicitvkCreateDeferredOperationKHRdevice must be a valid VkDevice handle
VUID-vkCreateDeferredOperationKHR-pAllocator-parameterYNoneimplicitvkCreateDeferredOperationKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameterYNoneimplicitvkCreateDeferredOperationKHRpDeferredOperation must be a valid pointer to a VkDeferredOperationKHR handle
VUID-vkCreateDescriptorPool-device-parameterYNoneimplicitvkCreateDescriptorPooldevice must be a valid VkDevice handle
VUID-vkCreateDescriptorPool-pAllocator-parameterYNoneimplicitvkCreateDescriptorPoolIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorPool-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateDescriptorPoolpCreateInfo must be a valid pointer to a valid VkDescriptorPoolCreateInfo structure
VUID-vkCreateDescriptorPool-pDescriptorPool-parameterYNoneimplicitvkCreateDescriptorPoolpDescriptorPool must be a valid pointer to a VkDescriptorPool handle
VUID-vkCreateDescriptorSetLayout-device-parameterYNoneimplicitvkCreateDescriptorSetLayoutdevice must be a valid VkDevice handle
VUID-vkCreateDescriptorSetLayout-pAllocator-parameterYNoneimplicitvkCreateDescriptorSetLayoutIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateDescriptorSetLayoutpCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure
VUID-vkCreateDescriptorSetLayout-pSetLayout-parameterYNoneimplicitvkCreateDescriptorSetLayoutpSetLayout must be a valid pointer to a VkDescriptorSetLayout handle
VUID-vkCreateDescriptorSetLayout-support-09582NNoneexplicitvkCreateDescriptorSetLayoutIf the descriptor layout exceeds the limits reported through the physical device limits, then vkGetDescriptorSetLayoutSupport must have returned VkDescriptorSetLayoutSupport with support equal to VK_TRUE for pCreateInfo
VUID-vkCreateDescriptorUpdateTemplate-device-parameterYNoneimplicitvkCreateDescriptorUpdateTemplatedevice must be a valid VkDevice handle
VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameterYNoneimplicitvkCreateDescriptorUpdateTemplateIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameterYNoneimplicitvkCreateDescriptorUpdateTemplatepCreateInfo must be a valid pointer to a valid VkDescriptorUpdateTemplateCreateInfo structure
VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameterYNoneimplicitvkCreateDescriptorUpdateTemplatepDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle
VUID-vkCreateDevice-pAllocator-parameterYNoneimplicitvkCreateDeviceIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDevice-pCreateInfo-parameterYNoneimplicitvkCreateDevicepCreateInfo must be a valid pointer to a valid VkDeviceCreateInfo structure
VUID-vkCreateDevice-pDevice-parameterYNoneimplicitvkCreateDevicepDevice must be a valid pointer to a VkDevice handle
VUID-vkCreateDevice-physicalDevice-parameterYNoneimplicitvkCreateDevicephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkCreateDevice-ppEnabledExtensionNames-01387YVkLayerTest.ExtensionXmlDependsLogic, VkLayerTest.ExtensionXmlDependsLogic2, VkLayerTest.ExtensionXmlDependsLogic3explicitvkCreateDeviceAll required device extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list
VUID-vkCreateDirectFBSurfaceEXT-instance-parameterYNoneimplicitvkCreateDirectFBSurfaceEXTinstance must be a valid VkInstance handle
VUID-vkCreateDirectFBSurfaceEXT-pAllocator-parameterYNoneimplicitvkCreateDirectFBSurfaceEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateDirectFBSurfaceEXTpCreateInfo must be a valid pointer to a valid VkDirectFBSurfaceCreateInfoEXT structure
VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateDirectFBSurfaceEXTpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateDisplayModeKHR-display-parameterYNoneimplicitvkCreateDisplayModeKHRdisplay must be a valid VkDisplayKHR handle
VUID-vkCreateDisplayModeKHR-display-parentYNoneimplicitvkCreateDisplayModeKHRdisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkCreateDisplayModeKHR-pAllocator-parameterYNoneimplicitvkCreateDisplayModeKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDisplayModeKHR-pCreateInfo-parameterYNoneimplicitvkCreateDisplayModeKHRpCreateInfo must be a valid pointer to a valid VkDisplayModeCreateInfoKHR structure
VUID-vkCreateDisplayModeKHR-pMode-parameterYNoneimplicitvkCreateDisplayModeKHRpMode must be a valid pointer to a VkDisplayModeKHR handle
VUID-vkCreateDisplayModeKHR-physicalDevice-parameterYNoneimplicitvkCreateDisplayModeKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHRinstance must be a valid VkInstance handle
VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHRpCreateInfo must be a valid pointer to a valid VkDisplaySurfaceCreateInfoKHR structure
VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHRpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateEvent-device-09672YNoneexplicitvkCreateEventdevice must support at least one queue family with one of the VK_QUEUE_VIDEO_ENCODE_BIT_KHR, VK_QUEUE_VIDEO_DECODE_BIT_KHR, VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateEvent-device-parameterYNoneimplicitvkCreateEventdevice must be a valid VkDevice handle
VUID-vkCreateEvent-events-04468YNegativePortabilitySubset.EventexplicitvkCreateEventIf 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-parameterYNoneimplicitvkCreateEventIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateEvent-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateEventpCreateInfo must be a valid pointer to a valid VkEventCreateInfo structure
VUID-vkCreateEvent-pEvent-parameterYNoneimplicitvkCreateEventpEvent must be a valid pointer to a VkEvent handle
VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09620YNoneexplicitvkCreateExecutionGraphPipelinesAMDXIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT must not be set in the flags of that element
VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09621YNoneexplicitvkCreateExecutionGraphPipelinesAMDXIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT must not be set in the flags of that element
VUID-vkCreateExecutionGraphPipelinesAMDX-binaryCount-09622YNoneexplicitvkCreateExecutionGraphPipelinesAMDXIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT must not be set in the flags of that element
VUID-vkCreateExecutionGraphPipelinesAMDX-createInfoCount-arraylengthYNoneimplicitvkCreateExecutionGraphPipelinesAMDXcreateInfoCount must be greater than 0
VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXdevice must be a valid VkDevice handle
VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09125NNoneexplicitvkCreateExecutionGraphPipelinesAMDXIf 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-09126NNoneexplicitvkCreateExecutionGraphPipelinesAMDXIf 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-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXpCreateInfos must be a valid pointer to an array of createInfoCount valid VkExecutionGraphPipelineCreateInfoAMDX structures
VUID-vkCreateExecutionGraphPipelinesAMDX-pNext-09616YNoneexplicitvkCreateExecutionGraphPipelinesAMDXIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateExecutionGraphPipelinesAMDX-pNext-09617YNoneexplicitvkCreateExecutionGraphPipelinesAMDXIf a VkPipelineCreateFlags2CreateInfoKHR structure with the VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag set is included in the pNext chain of any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateExecutionGraphPipelinesAMDX-pPipelines-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXpPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-09127NNoneexplicitvkCreateExecutionGraphPipelinesAMDXIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parameterYNoneimplicitvkCreateExecutionGraphPipelinesAMDXIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parentYNoneimplicitvkCreateExecutionGraphPipelinesAMDXIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateExecutionGraphPipelinesAMDX-shaderEnqueue-09124NNoneexplicitvkCreateExecutionGraphPipelinesAMDXThe shaderEnqueue feature must be enabled
VUID-vkCreateFence-device-parameterYNoneimplicitvkCreateFencedevice must be a valid VkDevice handle
VUID-vkCreateFence-pAllocator-parameterYNoneimplicitvkCreateFenceIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateFence-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateFencepCreateInfo must be a valid pointer to a valid VkFenceCreateInfo structure
VUID-vkCreateFence-pFence-parameterYNoneimplicitvkCreateFencepFence must be a valid pointer to a VkFence handle
VUID-vkCreateFramebuffer-device-10002YNoneexplicitvkCreateFramebufferdevice must support at least one queue family with the VK_QUEUE_GRAPHICS_BIT capability
VUID-vkCreateFramebuffer-device-parameterYNoneimplicitvkCreateFramebufferdevice must be a valid VkDevice handle
VUID-vkCreateFramebuffer-pAllocator-parameterYNoneimplicitvkCreateFramebufferIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateFramebuffer-pCreateInfo-02777NNoneexplicitvkCreateFramebufferIf 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-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateFramebufferpCreateInfo must be a valid pointer to a valid VkFramebufferCreateInfo structure
VUID-vkCreateFramebuffer-pFramebuffer-parameterYNoneimplicitvkCreateFramebufferpFramebuffer must be a valid pointer to a VkFramebuffer handle
VUID-vkCreateGraphicsPipelines-binaryCount-09620YNegativePipelineBinary.GraphicsPipelineexplicitvkCreateGraphicsPipelinesIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT must not be set in the flags of that element
VUID-vkCreateGraphicsPipelines-binaryCount-09621YNegativePipelineBinary.GraphicsPipelineexplicitvkCreateGraphicsPipelinesIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT must not be set in the flags of that element
VUID-vkCreateGraphicsPipelines-binaryCount-09622YNegativePipelineBinary.GraphicsPipelineexplicitvkCreateGraphicsPipelinesIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT must not be set in the flags of that element
VUID-vkCreateGraphicsPipelines-createInfoCount-arraylengthYNoneimplicitvkCreateGraphicsPipelinescreateInfoCount must be greater than 0
VUID-vkCreateGraphicsPipelines-device-09662YNoneexplicitvkCreateGraphicsPipelinesdevice must support at least one queue family with the VK_QUEUE_GRAPHICS_BIT capability
VUID-vkCreateGraphicsPipelines-device-parameterYNoneimplicitvkCreateGraphicsPipelinesdevice must be a valid VkDevice handle
VUID-vkCreateGraphicsPipelines-flags-00720YNoneexplicitvkCreateGraphicsPipelinesIf 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-00721YNoneexplicitvkCreateGraphicsPipelinesIf 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-parameterYNoneimplicitvkCreateGraphicsPipelinesIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateGraphicsPipelines-pCreateInfos-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateGraphicsPipelinespCreateInfos must be a valid pointer to an array of createInfoCount valid VkGraphicsPipelineCreateInfo structures
VUID-vkCreateGraphicsPipelines-pNext-09616YNegativePipelineBinary.GraphicsPipelineexplicitvkCreateGraphicsPipelinesIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateGraphicsPipelines-pNext-09617YNegativePipelineBinary.GraphicsPipelineexplicitvkCreateGraphicsPipelinesIf a VkPipelineCreateFlags2CreateInfoKHR structure with the VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag set is included in the pNext chain of any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateGraphicsPipelines-pPipelines-parameterYNoneimplicitvkCreateGraphicsPipelinespPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateGraphicsPipelines-pipelineCache-02876NNoneexplicitvkCreateGraphicsPipelinesIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateGraphicsPipelines-pipelineCache-parameterYNoneimplicitvkCreateGraphicsPipelinesIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateGraphicsPipelines-pipelineCache-parentYNoneimplicitvkCreateGraphicsPipelinesIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateHeadlessSurfaceEXT-instance-parameterYNoneimplicitvkCreateHeadlessSurfaceEXTinstance must be a valid VkInstance handle
VUID-vkCreateHeadlessSurfaceEXT-pAllocator-parameterYNoneimplicitvkCreateHeadlessSurfaceEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateHeadlessSurfaceEXTpCreateInfo must be a valid pointer to a valid VkHeadlessSurfaceCreateInfoEXT structure
VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateHeadlessSurfaceEXTpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateIOSSurfaceMVK-instance-parameterYNoneimplicitvkCreateIOSSurfaceMVKinstance must be a valid VkInstance handle
VUID-vkCreateIOSSurfaceMVK-pAllocator-parameterYNoneimplicitvkCreateIOSSurfaceMVKIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameterYNoneimplicitvkCreateIOSSurfaceMVKpCreateInfo must be a valid pointer to a valid VkIOSSurfaceCreateInfoMVK structure
VUID-vkCreateIOSSurfaceMVK-pSurface-parameterYNoneimplicitvkCreateIOSSurfaceMVKpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateImage-device-09666YNoneexplicitvkCreateImagedevice must support at least one queue family with one of the VK_QUEUE_VIDEO_ENCODE_BIT_KHR, VK_QUEUE_VIDEO_DECODE_BIT_KHR, VK_QUEUE_OPTICAL_FLOW_BIT_NV, VK_QUEUE_SPARSE_BINDING_BIT, VK_QUEUE_TRANSFER_BIT, VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateImage-device-parameterYNoneimplicitvkCreateImagedevice must be a valid VkDevice handle
VUID-vkCreateImage-flags-00939NNoneexplicitvkCreateImageIf 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-09385NNoneexplicitvkCreateImageIf 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-09386NNoneexplicitvkCreateImageIf 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-parameterYNoneimplicitvkCreateImageIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImage-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateImagepCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-vkCreateImage-pImage-parameterYNoneimplicitvkCreateImagepImage must be a valid pointer to a VkImage handle
VUID-vkCreateImage-pNext-06389NNoneexplicitvkCreateImageIf 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-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIAinstance must be a valid VkInstance handle
VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIAIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIApCreateInfo must be a valid pointer to a valid VkImagePipeSurfaceCreateInfoFUCHSIA structure
VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIApSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateImageView-device-09667YNoneexplicitvkCreateImageViewdevice must support at least one queue family with one of the VK_QUEUE_VIDEO_ENCODE_BIT_KHR, VK_QUEUE_VIDEO_DECODE_BIT_KHR, VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateImageView-device-parameterYNoneimplicitvkCreateImageViewdevice must be a valid VkDevice handle
VUID-vkCreateImageView-image-09179YNegativeParent.ImageViewexplicitvkCreateImageViewVkImageViewCreateInfo::image must have been created from device
VUID-vkCreateImageView-pAllocator-parameterYNoneimplicitvkCreateImageViewIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImageView-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateImageViewpCreateInfo must be a valid pointer to a valid VkImageViewCreateInfo structure
VUID-vkCreateImageView-pView-parameterYNoneimplicitvkCreateImageViewpView must be a valid pointer to a VkImageView handle
VUID-vkCreateIndirectCommandsLayoutEXT-device-parameterYNoneimplicitvkCreateIndirectCommandsLayoutEXTdevice must be a valid VkDevice handle
VUID-vkCreateIndirectCommandsLayoutEXT-deviceGeneratedCommands-11089YNegativeDeviceGeneratedCommands.MissingFeatureexplicitvkCreateIndirectCommandsLayoutEXTThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT::deviceGeneratedCommands feature must be enabled
VUID-vkCreateIndirectCommandsLayoutEXT-pAllocator-parameterNNoneimplicitvkCreateIndirectCommandsLayoutEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateIndirectCommandsLayoutEXT-pCreateInfo-parameterYNoneimplicitvkCreateIndirectCommandsLayoutEXTpCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoEXT structure
VUID-vkCreateIndirectCommandsLayoutEXT-pIndirectCommandsLayout-parameterYNoneimplicitvkCreateIndirectCommandsLayoutEXTpIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutEXT handle
VUID-vkCreateIndirectCommandsLayoutNV-device-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNVdevice must be a valid VkDevice handle
VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929NNoneexplicitvkCreateIndirectCommandsLayoutNVThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNVpCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoNV structure
VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNVpIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNV handle
VUID-vkCreateIndirectExecutionSetEXT-device-parameterNNoneimplicitvkCreateIndirectExecutionSetEXTdevice must be a valid VkDevice handle
VUID-vkCreateIndirectExecutionSetEXT-deviceGeneratedCommands-11013YNegativeDeviceGeneratedCommands.MissingFeatureexplicitvkCreateIndirectExecutionSetEXTThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT::deviceGeneratedCommands feature must be enabled
VUID-vkCreateIndirectExecutionSetEXT-pAllocator-parameterNNoneimplicitvkCreateIndirectExecutionSetEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateIndirectExecutionSetEXT-pCreateInfo-parameterYNoneimplicitvkCreateIndirectExecutionSetEXTpCreateInfo must be a valid pointer to a valid VkIndirectExecutionSetCreateInfoEXT structure
VUID-vkCreateIndirectExecutionSetEXT-pIndirectExecutionSet-parameterYNoneimplicitvkCreateIndirectExecutionSetEXTpIndirectExecutionSet must be a valid pointer to a VkIndirectExecutionSetEXT handle
VUID-vkCreateInstance-pAllocator-parameterYNoneimplicitvkCreateInstanceIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateInstance-pCreateInfo-parameterYNoneimplicitvkCreateInstancepCreateInfo must be a valid pointer to a valid VkInstanceCreateInfo structure
VUID-vkCreateInstance-pInstance-parameterYNoneimplicitvkCreateInstancepInstance must be a valid pointer to a VkInstance handle
VUID-vkCreateInstance-ppEnabledExtensionNames-01388YNegativeInstanceless.ExtensionNestedDependency, NegativeInstanceless.InstanceExtensionDependenciesexplicitvkCreateInstanceAll required extensions for each extension in the VkInstanceCreateInfo::ppEnabledExtensionNames list must also be present in that list
VUID-vkCreateMacOSSurfaceMVK-instance-parameterYNoneimplicitvkCreateMacOSSurfaceMVKinstance must be a valid VkInstance handle
VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameterYNoneimplicitvkCreateMacOSSurfaceMVKIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameterYNoneimplicitvkCreateMacOSSurfaceMVKpCreateInfo must be a valid pointer to a valid VkMacOSSurfaceCreateInfoMVK structure
VUID-vkCreateMacOSSurfaceMVK-pSurface-parameterYNoneimplicitvkCreateMacOSSurfaceMVKpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateMetalSurfaceEXT-instance-parameterYNoneimplicitvkCreateMetalSurfaceEXTinstance must be a valid VkInstance handle
VUID-vkCreateMetalSurfaceEXT-pAllocator-parameterYNoneimplicitvkCreateMetalSurfaceEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateMetalSurfaceEXTpCreateInfo must be a valid pointer to a valid VkMetalSurfaceCreateInfoEXT structure
VUID-vkCreateMetalSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateMetalSurfaceEXTpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateMicromapEXT-device-07432NNoneexplicitvkCreateMicromapEXTIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkCreateMicromapEXT-device-parameterYNoneimplicitvkCreateMicromapEXTdevice must be a valid VkDevice handle
VUID-vkCreateMicromapEXT-deviceAddress-07431NNoneexplicitvkCreateMicromapEXTIf VkMicromapCreateInfoEXT::deviceAddress is not zero, the micromapCaptureReplay feature must be enabled
VUID-vkCreateMicromapEXT-micromap-07430NNoneexplicitvkCreateMicromapEXTThe micromap feature must be enabled
VUID-vkCreateMicromapEXT-pAllocator-parameterYNoneimplicitvkCreateMicromapEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMicromapEXT-pCreateInfo-parameterYNoneimplicitvkCreateMicromapEXTpCreateInfo must be a valid pointer to a valid VkMicromapCreateInfoEXT structure
VUID-vkCreateMicromapEXT-pMicromap-parameterYNoneimplicitvkCreateMicromapEXTpMicromap must be a valid pointer to a VkMicromapEXT handle
VUID-vkCreateOpticalFlowSessionNV-device-parameterYNoneimplicitvkCreateOpticalFlowSessionNVdevice must be a valid VkDevice handle
VUID-vkCreateOpticalFlowSessionNV-pAllocator-parameterYNoneimplicitvkCreateOpticalFlowSessionNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateOpticalFlowSessionNV-pCreateInfo-parameterYNoneimplicitvkCreateOpticalFlowSessionNVpCreateInfo must be a valid pointer to a valid VkOpticalFlowSessionCreateInfoNV structure
VUID-vkCreateOpticalFlowSessionNV-pSession-parameterYNoneimplicitvkCreateOpticalFlowSessionNVpSession must be a valid pointer to a VkOpticalFlowSessionNV handle
VUID-vkCreatePipelineBinariesKHR-device-parameterYNoneimplicitvkCreatePipelineBinariesKHRdevice must be a valid VkDevice handle
VUID-vkCreatePipelineBinariesKHR-pAllocator-parameterNNoneimplicitvkCreatePipelineBinariesKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePipelineBinariesKHR-pBinaries-parameterYNoneimplicitvkCreatePipelineBinariesKHRpBinaries must be a valid pointer to a VkPipelineBinaryHandlesInfoKHR structure
VUID-vkCreatePipelineBinariesKHR-pCreateInfo-parameterYNoneimplicitvkCreatePipelineBinariesKHRpCreateInfo must be a valid pointer to a valid VkPipelineBinaryCreateInfoKHR structure
VUID-vkCreatePipelineCache-device-parameterYNoneimplicitvkCreatePipelineCachedevice must be a valid VkDevice handle
VUID-vkCreatePipelineCache-pAllocator-parameterYNoneimplicitvkCreatePipelineCacheIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePipelineCache-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreatePipelineCachepCreateInfo must be a valid pointer to a valid VkPipelineCacheCreateInfo structure
VUID-vkCreatePipelineCache-pPipelineCache-parameterYNoneimplicitvkCreatePipelineCachepPipelineCache must be a valid pointer to a VkPipelineCache handle
VUID-vkCreatePipelineLayout-device-parameterYNoneimplicitvkCreatePipelineLayoutdevice must be a valid VkDevice handle
VUID-vkCreatePipelineLayout-pAllocator-parameterYNoneimplicitvkCreatePipelineLayoutIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePipelineLayout-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreatePipelineLayoutpCreateInfo must be a valid pointer to a valid VkPipelineLayoutCreateInfo structure
VUID-vkCreatePipelineLayout-pPipelineLayout-parameterYNoneimplicitvkCreatePipelineLayoutpPipelineLayout must be a valid pointer to a VkPipelineLayout handle
VUID-vkCreatePrivateDataSlot-device-parameterYNoneimplicitvkCreatePrivateDataSlotdevice must be a valid VkDevice handle
VUID-vkCreatePrivateDataSlot-pAllocator-parameterYNoneimplicitvkCreatePrivateDataSlotIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePrivateDataSlot-pCreateInfo-parameterYNoneimplicitvkCreatePrivateDataSlotpCreateInfo must be a valid pointer to a valid VkPrivateDataSlotCreateInfo structure
VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameterYNoneimplicitvkCreatePrivateDataSlotpPrivateDataSlot must be a valid pointer to a VkPrivateDataSlot handle
VUID-vkCreatePrivateDataSlot-privateData-04564YNegativeTooling.PrivateDataFeatureexplicitvkCreatePrivateDataSlotThe privateData feature must be enabled
VUID-vkCreateQueryPool-device-09663YNoneexplicitvkCreateQueryPooldevice must support at least one queue family with one of the VK_QUEUE_VIDEO_ENCODE_BIT_KHR, VK_QUEUE_VIDEO_DECODE_BIT_KHR, VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateQueryPool-device-parameterYNoneimplicitvkCreateQueryPooldevice must be a valid VkDevice handle
VUID-vkCreateQueryPool-pAllocator-parameterYNoneimplicitvkCreateQueryPoolIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateQueryPool-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateQueryPoolpCreateInfo must be a valid pointer to a valid VkQueryPoolCreateInfo structure
VUID-vkCreateQueryPool-pQueryPool-parameterYNoneimplicitvkCreateQueryPoolpQueryPool must be a valid pointer to a VkQueryPool handle
VUID-vkCreateRayTracingPipelinesKHR-binaryCount-09620YNegativeRayTracingPipeline.PipelineBinaryRayTracingPipelineexplicitvkCreateRayTracingPipelinesKHRIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT must not be set in the flags of that element
VUID-vkCreateRayTracingPipelinesKHR-binaryCount-09621YNegativeRayTracingPipeline.PipelineBinaryRayTracingPipelineexplicitvkCreateRayTracingPipelinesKHRIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT must not be set in the flags of that element
VUID-vkCreateRayTracingPipelinesKHR-binaryCount-09622YNegativeRayTracingPipeline.PipelineBinaryRayTracingPipelineexplicitvkCreateRayTracingPipelinesKHRIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT must not be set in the flags of that element
VUID-vkCreateRayTracingPipelinesKHR-createInfoCount-arraylengthYNoneimplicitvkCreateRayTracingPipelinesKHRcreateInfoCount must be greater than 0
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587YNoneexplicitvkCreateRayTracingPipelinesKHRIf 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-03678YNoneexplicitvkCreateRayTracingPipelinesKHRAny previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRIf deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parentYNoneimplicitvkCreateRayTracingPipelinesKHRIf deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRayTracingPipelinesKHR-device-09677YNoneexplicitvkCreateRayTracingPipelinesKHRdevice must support at least one queue family with the VK_QUEUE_COMPUTE_BIT capability
VUID-vkCreateRayTracingPipelinesKHR-device-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRdevice must be a valid VkDevice handle
VUID-vkCreateRayTracingPipelinesKHR-flags-03415YNegativeRayTracingPipeline.BasicUsageexplicitvkCreateRayTracingPipelinesKHRIf 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-03416YNoneexplicitvkCreateRayTracingPipelinesKHRIf 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.BasicUsageexplicitvkCreateRayTracingPipelinesKHRflags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-vkCreateRayTracingPipelinesKHR-pAllocator-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRayTracingPipelinesKHR-pCreateInfos-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRpCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoKHR structures
VUID-vkCreateRayTracingPipelinesKHR-pNext-09616YNegativeRayTracingPipeline.PipelineBinaryRayTracingPipelineexplicitvkCreateRayTracingPipelinesKHRIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateRayTracingPipelinesKHR-pNext-09617YNegativeRayTracingPipeline.PipelineBinaryRayTracingPipelineexplicitvkCreateRayTracingPipelinesKHRIf a VkPipelineCreateFlags2CreateInfoKHR structure with the VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag set is included in the pNext chain of any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateRayTracingPipelinesKHR-pPipelines-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRpPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903NNoneexplicitvkCreateRayTracingPipelinesKHRIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parameterYNoneimplicitvkCreateRayTracingPipelinesKHRIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parentYNoneimplicitvkCreateRayTracingPipelinesKHRIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586YNoneexplicitvkCreateRayTracingPipelinesKHRThe rayTracingPipeline feature must be enabled
VUID-vkCreateRayTracingPipelinesNV-binaryCount-09620YNoneexplicitvkCreateRayTracingPipelinesNVIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT must not be set in the flags of that element
VUID-vkCreateRayTracingPipelinesNV-binaryCount-09621YNoneexplicitvkCreateRayTracingPipelinesNVIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT must not be set in the flags of that element
VUID-vkCreateRayTracingPipelinesNV-binaryCount-09622YNoneexplicitvkCreateRayTracingPipelinesNVIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT must not be set in the flags of that element
VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylengthYNegativeRayTracingPipelineNV.BasicUsageimplicitvkCreateRayTracingPipelinesNVcreateInfoCount must be greater than 0
VUID-vkCreateRayTracingPipelinesNV-device-09677YNoneexplicitvkCreateRayTracingPipelinesNVdevice must support at least one queue family with the VK_QUEUE_COMPUTE_BIT capability
VUID-vkCreateRayTracingPipelinesNV-device-parameterYNoneimplicitvkCreateRayTracingPipelinesNVdevice must be a valid VkDevice handle
VUID-vkCreateRayTracingPipelinesNV-flags-03415YNegativeRayTracingPipelineNV.BasicUsageexplicitvkCreateRayTracingPipelinesNVIf 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-03416YNoneexplicitvkCreateRayTracingPipelinesNVIf 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-03816YNoneexplicitvkCreateRayTracingPipelinesNVflags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameterYNoneimplicitvkCreateRayTracingPipelinesNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameterYNoneimplicitvkCreateRayTracingPipelinesNVpCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures
VUID-vkCreateRayTracingPipelinesNV-pNext-09616YNoneexplicitvkCreateRayTracingPipelinesNVIf VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateRayTracingPipelinesNV-pNext-09617YNoneexplicitvkCreateRayTracingPipelinesNVIf a VkPipelineCreateFlags2CreateInfoKHR structure with the VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag set is included in the pNext chain of any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE
VUID-vkCreateRayTracingPipelinesNV-pNext-10150NNoneexplicitvkCreateRayTracingPipelinesNVIf a VkPipelineCreateFlags2CreateInfoKHR structure is included in the pNext chain of any element of pCreateInfos, VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag must not be set
VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameterYNoneimplicitvkCreateRayTracingPipelinesNVpPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903NNoneexplicitvkCreateRayTracingPipelinesNVIf pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameterYNoneimplicitvkCreateRayTracingPipelinesNVIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parentYNoneimplicitvkCreateRayTracingPipelinesNVIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRenderPass-device-10000YNoneexplicitvkCreateRenderPassdevice must support at least one queue family with the VK_QUEUE_GRAPHICS_BIT capability
VUID-vkCreateRenderPass-device-parameterYNoneimplicitvkCreateRenderPassdevice must be a valid VkDevice handle
VUID-vkCreateRenderPass-pAllocator-parameterYNoneimplicitvkCreateRenderPassIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRenderPass-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateRenderPasspCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo structure
VUID-vkCreateRenderPass-pRenderPass-parameterYNoneimplicitvkCreateRenderPasspRenderPass must be a valid pointer to a VkRenderPass handle
VUID-vkCreateRenderPass2-device-10001YNoneexplicitvkCreateRenderPass2device must support at least one queue family with the VK_QUEUE_GRAPHICS_BIT capability
VUID-vkCreateRenderPass2-device-parameterYNoneimplicitvkCreateRenderPass2device must be a valid VkDevice handle
VUID-vkCreateRenderPass2-pAllocator-parameterYNoneimplicitvkCreateRenderPass2If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRenderPass2-pCreateInfo-parameterYNoneimplicitvkCreateRenderPass2pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2 structure
VUID-vkCreateRenderPass2-pRenderPass-parameterYNoneimplicitvkCreateRenderPass2pRenderPass must be a valid pointer to a VkRenderPass handle
VUID-vkCreateSampler-device-09668YNoneexplicitvkCreateSamplerdevice must support at least one queue family with one of the VK_QUEUE_COMPUTE_BIT or VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateSampler-device-parameterYNoneimplicitvkCreateSamplerdevice must be a valid VkDevice handle
VUID-vkCreateSampler-maxSamplerAllocationCount-04110YNegativeSampler.AllocationCount, NegativeSampler.CustomBorderColorexplicitvkCreateSamplerThere must be less than VkPhysicalDeviceLimits::maxSamplerAllocationCount VkSampler objects currently created on the device
VUID-vkCreateSampler-pAllocator-parameterYNoneimplicitvkCreateSamplerIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSampler-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateSamplerpCreateInfo must be a valid pointer to a valid VkSamplerCreateInfo structure
VUID-vkCreateSampler-pSampler-parameterYNoneimplicitvkCreateSamplerpSampler must be a valid pointer to a VkSampler handle
VUID-vkCreateSamplerYcbcrConversion-None-01648YNegativeYcbcr.SamplerYcbcrConversionEnable, VkLayerTest.ExtensionNotEnabledYCbCrexplicitvkCreateSamplerYcbcrConversionThe samplerYcbcrConversion feature must be enabled
VUID-vkCreateSamplerYcbcrConversion-device-parameterYNoneimplicitvkCreateSamplerYcbcrConversiondevice must be a valid VkDevice handle
VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameterYNoneimplicitvkCreateSamplerYcbcrConversionIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameterYNoneimplicitvkCreateSamplerYcbcrConversionpCreateInfo must be a valid pointer to a valid VkSamplerYcbcrConversionCreateInfo structure
VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameterYNoneimplicitvkCreateSamplerYcbcrConversionpYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle
VUID-vkCreateScreenSurfaceQNX-instance-parameterYNoneimplicitvkCreateScreenSurfaceQNXinstance must be a valid VkInstance handle
VUID-vkCreateScreenSurfaceQNX-pAllocator-parameterYNoneimplicitvkCreateScreenSurfaceQNXIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameterYNoneimplicitvkCreateScreenSurfaceQNXpCreateInfo must be a valid pointer to a valid VkScreenSurfaceCreateInfoQNX structure
VUID-vkCreateScreenSurfaceQNX-pSurface-parameterYNoneimplicitvkCreateScreenSurfaceQNXpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateSemaphore-device-parameterYNoneimplicitvkCreateSemaphoredevice must be a valid VkDevice handle
VUID-vkCreateSemaphore-pAllocator-parameterYNoneimplicitvkCreateSemaphoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSemaphore-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateSemaphorepCreateInfo must be a valid pointer to a valid VkSemaphoreCreateInfo structure
VUID-vkCreateSemaphore-pSemaphore-parameterYNoneimplicitvkCreateSemaphorepSemaphore must be a valid pointer to a VkSemaphore handle
VUID-vkCreateShaderModule-device-parameterYNoneimplicitvkCreateShaderModuledevice must be a valid VkDevice handle
VUID-vkCreateShaderModule-pAllocator-parameterYNoneimplicitvkCreateShaderModuleIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateShaderModule-pCreateInfo-06904NNoneexplicitvkCreateShaderModuleIf pCreateInfo is not NULL, pCreateInfo->pNext must be NULL or a pointer to a valid instance of VkShaderModuleValidationCacheCreateInfoEXT VkValidationFeaturesEXT
VUID-vkCreateShaderModule-pCreateInfo-parameterYVkLayerTest.MissingCreateInfoimplicitvkCreateShaderModulepCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure
VUID-vkCreateShaderModule-pShaderModule-parameterYNoneimplicitvkCreateShaderModulepShaderModule must be a valid pointer to a VkShaderModule handle
VUID-vkCreateShadersEXT-None-08400YNoneexplicitvkCreateShadersEXTThe shaderObject feature must be enabled
VUID-vkCreateShadersEXT-createInfoCount-arraylengthYNoneimplicitvkCreateShadersEXTcreateInfoCount must be greater than 0
VUID-vkCreateShadersEXT-device-09669YNoneexplicitvkCreateShadersEXTdevice must support at least one queue family with one of the VK_QUEUE_COMPUTE_BIT or VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateShadersEXT-device-parameterYNoneimplicitvkCreateShadersEXTdevice must be a valid VkDevice handle
VUID-vkCreateShadersEXT-pAllocator-parameterYNoneimplicitvkCreateShadersEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateShadersEXT-pCreateInfos-08402YNegativeShaderObject.MissingLinkStageBitexplicitvkCreateShadersEXTIf 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.MissingLinkStageBitMeshexplicitvkCreateShadersEXTIf 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.LinkedVertexAndMeshStagesexplicitvkCreateShadersEXTIf 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.LinkedTaskAndMeshNoTaskShadersexplicitvkCreateShadersEXTIf 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.MissingNextStageexplicitvkCreateShadersEXTFor 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.SameLinkedStageexplicitvkCreateShadersEXTThe 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.LinkedStagesWithDifferentCodeTypeexplicitvkCreateShadersEXTThe 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.MismatchedTessellationSubdivisionexplicitvkCreateShadersEXTIf 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.MismatchedTessellationOrientationexplicitvkCreateShadersEXTIf 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.MismatchedTessellationPointModeexplicitvkCreateShadersEXTIf 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.MismatchedTessellationSpacingexplicitvkCreateShadersEXTIf 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-08871NNoneexplicitvkCreateShadersEXTIf 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-09632YNegativeMesh.DrawIndexMeshShaderObjectexplicitvkCreateShadersEXTIf pCreateInfos contains a VK_SHADER_STAGE_MESH_BIT_EXT with codeType of VK_SHADER_CODE_TYPE_SPIRV_EXT and VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT is not set, then the mesh shader's entry point must not declare a variable with a DrawIndex BuiltIn decoration
VUID-vkCreateShadersEXT-pCreateInfos-parameterYNoneimplicitvkCreateShadersEXTpCreateInfos must be a valid pointer to an array of createInfoCount valid VkShaderCreateInfoEXT structures
VUID-vkCreateShadersEXT-pShaders-parameterYNoneimplicitvkCreateShadersEXTpShaders must be a valid pointer to an array of createInfoCount VkShaderEXT handles
VUID-vkCreateShadersEXT-stage-09670NNoneexplicitvkCreateShadersEXTIf the stage member of any element of pCreateInfos is VK_SHADER_STAGE_COMPUTE_BIT, device must support at least one queue family with the VK_QUEUE_COMPUTE_BIT capability
VUID-vkCreateShadersEXT-stage-09671NNoneexplicitvkCreateShadersEXTIf the stage member of any element of pCreateInfos is 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, device must support at least one queue family with the VK_QUEUE_GRAPHICS_BIT capability
VUID-vkCreateSharedSwapchainsKHR-device-parameterYNoneimplicitvkCreateSharedSwapchainsKHRdevice must be a valid VkDevice handle
VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameterYNoneimplicitvkCreateSharedSwapchainsKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameterYNoneimplicitvkCreateSharedSwapchainsKHRpCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures
VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameterYNoneimplicitvkCreateSharedSwapchainsKHRpSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles
VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylengthYNoneimplicitvkCreateSharedSwapchainsKHRswapchainCount must be greater than 0
VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGPinstance must be a valid VkInstance handle
VUID-vkCreateStreamDescriptorSurfaceGGP-pAllocator-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGPIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGPpCreateInfo must be a valid pointer to a valid VkStreamDescriptorSurfaceCreateInfoGGP structure
VUID-vkCreateStreamDescriptorSurfaceGGP-pSurface-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGPpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateSwapchainKHR-device-parameterYNoneimplicitvkCreateSwapchainKHRdevice must be a valid VkDevice handle
VUID-vkCreateSwapchainKHR-pAllocator-parameterYNoneimplicitvkCreateSwapchainKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSwapchainKHR-pCreateInfo-parameterYNoneimplicitvkCreateSwapchainKHRpCreateInfo must be a valid pointer to a valid VkSwapchainCreateInfoKHR structure
VUID-vkCreateSwapchainKHR-pSwapchain-parameterYNoneimplicitvkCreateSwapchainKHRpSwapchain must be a valid pointer to a VkSwapchainKHR handle
VUID-vkCreateValidationCacheEXT-device-parameterYNoneimplicitvkCreateValidationCacheEXTdevice must be a valid VkDevice handle
VUID-vkCreateValidationCacheEXT-pAllocator-parameterYNoneimplicitvkCreateValidationCacheEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateValidationCacheEXT-pCreateInfo-parameterYNoneimplicitvkCreateValidationCacheEXTpCreateInfo must be a valid pointer to a valid VkValidationCacheCreateInfoEXT structure
VUID-vkCreateValidationCacheEXT-pValidationCache-parameterYNoneimplicitvkCreateValidationCacheEXTpValidationCache must be a valid pointer to a VkValidationCacheEXT handle
VUID-vkCreateViSurfaceNN-instance-parameterYNoneimplicitvkCreateViSurfaceNNinstance must be a valid VkInstance handle
VUID-vkCreateViSurfaceNN-pAllocator-parameterYNoneimplicitvkCreateViSurfaceNNIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateViSurfaceNN-pCreateInfo-parameterYNoneimplicitvkCreateViSurfaceNNpCreateInfo must be a valid pointer to a valid VkViSurfaceCreateInfoNN structure
VUID-vkCreateViSurfaceNN-pSurface-parameterYNoneimplicitvkCreateViSurfaceNNpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateVideoSessionKHR-device-parameterYNoneimplicitvkCreateVideoSessionKHRdevice must be a valid VkDevice handle
VUID-vkCreateVideoSessionKHR-pAllocator-parameterYNoneimplicitvkCreateVideoSessionKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateVideoSessionKHR-pCreateInfo-parameterYNoneimplicitvkCreateVideoSessionKHRpCreateInfo must be a valid pointer to a valid VkVideoSessionCreateInfoKHR structure
VUID-vkCreateVideoSessionKHR-pVideoSession-parameterYNoneimplicitvkCreateVideoSessionKHRpVideoSession must be a valid pointer to a VkVideoSessionKHR handle
VUID-vkCreateVideoSessionParametersKHR-device-parameterYNoneimplicitvkCreateVideoSessionParametersKHRdevice must be a valid VkDevice handle
VUID-vkCreateVideoSessionParametersKHR-pAllocator-parameterYNoneimplicitvkCreateVideoSessionParametersKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateVideoSessionParametersKHR-pCreateInfo-parameterYNoneimplicitvkCreateVideoSessionParametersKHRpCreateInfo must be a valid pointer to a valid VkVideoSessionParametersCreateInfoKHR structure
VUID-vkCreateVideoSessionParametersKHR-pVideoSessionParameters-parameterYNoneimplicitvkCreateVideoSessionParametersKHRpVideoSessionParameters must be a valid pointer to a VkVideoSessionParametersKHR handle
VUID-vkCreateWaylandSurfaceKHR-instance-parameterYNoneimplicitvkCreateWaylandSurfaceKHRinstance must be a valid VkInstance handle
VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameterYNoneimplicitvkCreateWaylandSurfaceKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateWaylandSurfaceKHRpCreateInfo must be a valid pointer to a valid VkWaylandSurfaceCreateInfoKHR structure
VUID-vkCreateWaylandSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateWaylandSurfaceKHRpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateWin32SurfaceKHR-instance-parameterYNoneimplicitvkCreateWin32SurfaceKHRinstance must be a valid VkInstance handle
VUID-vkCreateWin32SurfaceKHR-pAllocator-parameterYNoneimplicitvkCreateWin32SurfaceKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateWin32SurfaceKHRpCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure
VUID-vkCreateWin32SurfaceKHR-pSurface-parameterYNoneimplicitvkCreateWin32SurfaceKHRpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateXcbSurfaceKHR-instance-parameterYNoneimplicitvkCreateXcbSurfaceKHRinstance must be a valid VkInstance handle
VUID-vkCreateXcbSurfaceKHR-pAllocator-parameterYNoneimplicitvkCreateXcbSurfaceKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateXcbSurfaceKHRpCreateInfo must be a valid pointer to a valid VkXcbSurfaceCreateInfoKHR structure
VUID-vkCreateXcbSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateXcbSurfaceKHRpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateXlibSurfaceKHR-instance-parameterYNoneimplicitvkCreateXlibSurfaceKHRinstance must be a valid VkInstance handle
VUID-vkCreateXlibSurfaceKHR-pAllocator-parameterYNoneimplicitvkCreateXlibSurfaceKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateXlibSurfaceKHRpCreateInfo must be a valid pointer to a valid VkXlibSurfaceCreateInfoKHR structure
VUID-vkCreateXlibSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateXlibSurfaceKHRpSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkDebugMarkerSetObjectNameEXT-device-parameterYNoneimplicitvkDebugMarkerSetObjectNameEXTdevice must be a valid VkDevice handle
VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameterYNoneimplicitvkDebugMarkerSetObjectNameEXTpNameInfo must be a valid pointer to a valid VkDebugMarkerObjectNameInfoEXT structure
VUID-vkDebugMarkerSetObjectTagEXT-device-parameterYNoneimplicitvkDebugMarkerSetObjectTagEXTdevice must be a valid VkDevice handle
VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameterYNoneimplicitvkDebugMarkerSetObjectTagEXTpTagInfo must be a valid pointer to a valid VkDebugMarkerObjectTagInfoEXT structure
VUID-vkDebugReportMessageEXT-flags-parameterYNoneimplicitvkDebugReportMessageEXTflags must be a valid combination of VkDebugReportFlagBitsEXT values
VUID-vkDebugReportMessageEXT-flags-requiredbitmaskYNoneimplicitvkDebugReportMessageEXTflags must not be 0
VUID-vkDebugReportMessageEXT-instance-parameterYNoneimplicitvkDebugReportMessageEXTinstance must be a valid VkInstance handle
VUID-vkDebugReportMessageEXT-object-01241NNoneexplicitvkDebugReportMessageEXTobject must be a Vulkan object or VK_NULL_HANDLE
VUID-vkDebugReportMessageEXT-objectType-01498NNoneexplicitvkDebugReportMessageEXTIf 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-parameterYNoneimplicitvkDebugReportMessageEXTobjectType must be a valid VkDebugReportObjectTypeEXT value
VUID-vkDebugReportMessageEXT-pLayerPrefix-parameterYNoneimplicitvkDebugReportMessageEXTpLayerPrefix must be a null-terminated UTF-8 string
VUID-vkDebugReportMessageEXT-pMessage-parameterYNoneimplicitvkDebugReportMessageEXTpMessage must be a null-terminated UTF-8 string
VUID-vkDeferredOperationJoinKHR-device-parameterYNoneimplicitvkDeferredOperationJoinKHRdevice must be a valid VkDevice handle
VUID-vkDeferredOperationJoinKHR-operation-parameterYNoneimplicitvkDeferredOperationJoinKHRoperation must be a valid VkDeferredOperationKHR handle
VUID-vkDeferredOperationJoinKHR-operation-parentYNoneimplicitvkDeferredOperationJoinKHRoperation must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442YNegativeRayTracing.ObjInUseCmdBuildAccelerationStructureKHRexplicitvkDestroyAccelerationStructureKHRAll submitted commands that refer to accelerationStructure must have completed execution
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443YNoneexplicitvkDestroyAccelerationStructureKHRIf VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444YNoneexplicitvkDestroyAccelerationStructureKHRIf no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-08934YNegativeRayTracing.CreateAccelerationStructureFeatureexplicitvkDestroyAccelerationStructureKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameterYNoneimplicitvkDestroyAccelerationStructureKHRIf accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parentYNoneimplicitvkDestroyAccelerationStructureKHRIf accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureKHR-device-parameterYNoneimplicitvkDestroyAccelerationStructureKHRdevice must be a valid VkDevice handle
VUID-vkDestroyAccelerationStructureKHR-pAllocator-parameterYNoneimplicitvkDestroyAccelerationStructureKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03752YNegativeRayTracingNV.ObjInUseCmdBuildAccelerationStructureexplicitvkDestroyAccelerationStructureNVAll submitted commands that refer to accelerationStructure must have completed execution
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753YNoneexplicitvkDestroyAccelerationStructureNVIf VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754YNoneexplicitvkDestroyAccelerationStructureNVIf no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameterYNoneimplicitvkDestroyAccelerationStructureNVIf accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parentYNoneimplicitvkDestroyAccelerationStructureNVIf accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureNV-device-parameterYNoneimplicitvkDestroyAccelerationStructureNVdevice must be a valid VkDevice handle
VUID-vkDestroyAccelerationStructureNV-pAllocator-parameterYNoneimplicitvkDestroyAccelerationStructureNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBuffer-buffer-00922YNegativeObjectLifetime.PushDescriptorUniformDestroySignaled, NegativeRayTracingNV.ObjInUseCmdBuildAccelerationStructureexplicitvkDestroyBufferAll submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution
VUID-vkDestroyBuffer-buffer-00923YNoneexplicitvkDestroyBufferIf VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here
VUID-vkDestroyBuffer-buffer-00924YNoneexplicitvkDestroyBufferIf no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL
VUID-vkDestroyBuffer-buffer-parameterYNegativeBuffer.DoubleDeleteimplicitvkDestroyBufferIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-vkDestroyBuffer-buffer-parentYNoneimplicitvkDestroyBufferIf buffer is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyBuffer-device-parameterYNoneimplicitvkDestroyBufferdevice must be a valid VkDevice handle
VUID-vkDestroyBuffer-pAllocator-parameterYNoneimplicitvkDestroyBufferIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBufferCollectionFUCHSIA-collection-06407NNoneexplicitvkDestroyBufferCollectionFUCHSIAVkImage 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-parameterYNoneimplicitvkDestroyBufferCollectionFUCHSIAcollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkDestroyBufferCollectionFUCHSIA-collection-parentYNoneimplicitvkDestroyBufferCollectionFUCHSIAcollection must have been created, allocated, or retrieved from device
VUID-vkDestroyBufferCollectionFUCHSIA-device-parameterYNoneimplicitvkDestroyBufferCollectionFUCHSIAdevice must be a valid VkDevice handle
VUID-vkDestroyBufferCollectionFUCHSIA-pAllocator-parameterYNoneimplicitvkDestroyBufferCollectionFUCHSIAIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBufferView-bufferView-00936YNegativeObjectLifetime.BufferViewInUseDestroyedSignaledexplicitvkDestroyBufferViewAll submitted commands that refer to bufferView must have completed execution
VUID-vkDestroyBufferView-bufferView-00937YNoneexplicitvkDestroyBufferViewIf VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here
VUID-vkDestroyBufferView-bufferView-00938YNoneexplicitvkDestroyBufferViewIf no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL
VUID-vkDestroyBufferView-bufferView-parameterYNoneimplicitvkDestroyBufferViewIf bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle
VUID-vkDestroyBufferView-bufferView-parentYNoneimplicitvkDestroyBufferViewIf bufferView is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyBufferView-device-parameterYNoneimplicitvkDestroyBufferViewdevice must be a valid VkDevice handle
VUID-vkDestroyBufferView-pAllocator-parameterYNoneimplicitvkDestroyBufferViewIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCommandPool-commandPool-00041YNoneexplicitvkDestroyCommandPoolAll VkCommandBuffer objects allocated from commandPool must not be in the pending state
VUID-vkDestroyCommandPool-commandPool-00042YNoneexplicitvkDestroyCommandPoolIf VkAllocationCallbacks were provided when commandPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyCommandPool-commandPool-00043YNoneexplicitvkDestroyCommandPoolIf no VkAllocationCallbacks were provided when commandPool was created, pAllocator must be NULL
VUID-vkDestroyCommandPool-commandPool-parameterYNoneimplicitvkDestroyCommandPoolIf commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle
VUID-vkDestroyCommandPool-commandPool-parentYNoneimplicitvkDestroyCommandPoolIf commandPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyCommandPool-device-parameterYNoneimplicitvkDestroyCommandPooldevice must be a valid VkDevice handle
VUID-vkDestroyCommandPool-pAllocator-parameterYNoneimplicitvkDestroyCommandPoolIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCuFunctionNVX-device-parameterYNoneimplicitvkDestroyCuFunctionNVXdevice must be a valid VkDevice handle
VUID-vkDestroyCuFunctionNVX-function-parameterYNoneimplicitvkDestroyCuFunctionNVXfunction must be a valid VkCuFunctionNVX handle
VUID-vkDestroyCuFunctionNVX-function-parentYNoneimplicitvkDestroyCuFunctionNVXfunction must have been created, allocated, or retrieved from device
VUID-vkDestroyCuFunctionNVX-pAllocator-parameterYNoneimplicitvkDestroyCuFunctionNVXIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCuModuleNVX-device-parameterYNoneimplicitvkDestroyCuModuleNVXdevice must be a valid VkDevice handle
VUID-vkDestroyCuModuleNVX-module-parameterYNoneimplicitvkDestroyCuModuleNVXmodule must be a valid VkCuModuleNVX handle
VUID-vkDestroyCuModuleNVX-module-parentYNoneimplicitvkDestroyCuModuleNVXmodule must have been created, allocated, or retrieved from device
VUID-vkDestroyCuModuleNVX-pAllocator-parameterYNoneimplicitvkDestroyCuModuleNVXIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCudaFunctionNV-device-parameterYNoneimplicitvkDestroyCudaFunctionNVdevice must be a valid VkDevice handle
VUID-vkDestroyCudaFunctionNV-function-parameterYNoneimplicitvkDestroyCudaFunctionNVfunction must be a valid VkCudaFunctionNV handle
VUID-vkDestroyCudaFunctionNV-function-parentYNoneimplicitvkDestroyCudaFunctionNVfunction must have been created, allocated, or retrieved from device
VUID-vkDestroyCudaFunctionNV-pAllocator-parameterYNoneimplicitvkDestroyCudaFunctionNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCudaModuleNV-device-parameterYNoneimplicitvkDestroyCudaModuleNVdevice must be a valid VkDevice handle
VUID-vkDestroyCudaModuleNV-module-parameterYNoneimplicitvkDestroyCudaModuleNVmodule must be a valid VkCudaModuleNV handle
VUID-vkDestroyCudaModuleNV-module-parentYNoneimplicitvkDestroyCudaModuleNVmodule must have been created, allocated, or retrieved from device
VUID-vkDestroyCudaModuleNV-pAllocator-parameterYNoneimplicitvkDestroyCudaModuleNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDebugReportCallbackEXT-callback-parameterYNoneimplicitvkDestroyDebugReportCallbackEXTIf callback is not VK_NULL_HANDLE, callback must be a valid VkDebugReportCallbackEXT handle
VUID-vkDestroyDebugReportCallbackEXT-callback-parentYNegativeParent.Instance_DebugReportCallbackimplicitvkDestroyDebugReportCallbackEXTIf callback is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroyDebugReportCallbackEXT-instance-01242YNoneexplicitvkDestroyDebugReportCallbackEXTIf VkAllocationCallbacks were provided when callback was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDebugReportCallbackEXT-instance-01243YNoneexplicitvkDestroyDebugReportCallbackEXTIf no VkAllocationCallbacks were provided when callback was created, pAllocator must be NULL
VUID-vkDestroyDebugReportCallbackEXT-instance-parameterYNoneimplicitvkDestroyDebugReportCallbackEXTinstance must be a valid VkInstance handle
VUID-vkDestroyDebugReportCallbackEXT-pAllocator-parameterYNoneimplicitvkDestroyDebugReportCallbackEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameterYNoneimplicitvkDestroyDebugUtilsMessengerEXTinstance must be a valid VkInstance handle
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915YNoneexplicitvkDestroyDebugUtilsMessengerEXTIf VkAllocationCallbacks were provided when messenger was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916YNoneexplicitvkDestroyDebugUtilsMessengerEXTIf no VkAllocationCallbacks were provided when messenger was created, pAllocator must be NULL
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameterYNoneimplicitvkDestroyDebugUtilsMessengerEXTIf messenger is not VK_NULL_HANDLE, messenger must be a valid VkDebugUtilsMessengerEXT handle
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parentYNegativeParent.Instance_DebugUtilsMessengerimplicitvkDestroyDebugUtilsMessengerEXTIf messenger is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameterYNoneimplicitvkDestroyDebugUtilsMessengerEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDeferredOperationKHR-device-parameterYNoneimplicitvkDestroyDeferredOperationKHRdevice must be a valid VkDevice handle
VUID-vkDestroyDeferredOperationKHR-operation-03434YNoneexplicitvkDestroyDeferredOperationKHRIf VkAllocationCallbacks were provided when operation was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDeferredOperationKHR-operation-03435YNoneexplicitvkDestroyDeferredOperationKHRIf no VkAllocationCallbacks were provided when operation was created, pAllocator must be NULL
VUID-vkDestroyDeferredOperationKHR-operation-03436YNoneexplicitvkDestroyDeferredOperationKHRoperation must be completed
VUID-vkDestroyDeferredOperationKHR-operation-parameterYNoneimplicitvkDestroyDeferredOperationKHRIf operation is not VK_NULL_HANDLE, operation must be a valid VkDeferredOperationKHR handle
VUID-vkDestroyDeferredOperationKHR-operation-parentYNoneimplicitvkDestroyDeferredOperationKHRIf operation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDeferredOperationKHR-pAllocator-parameterYNoneimplicitvkDestroyDeferredOperationKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorPool-descriptorPool-00303YNegativeObjectLifetime.DescriptorPoolInUseDestroyedSignaledexplicitvkDestroyDescriptorPoolAll submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution
VUID-vkDestroyDescriptorPool-descriptorPool-00304YNoneexplicitvkDestroyDescriptorPoolIf VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorPool-descriptorPool-00305YNoneexplicitvkDestroyDescriptorPoolIf no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL
VUID-vkDestroyDescriptorPool-descriptorPool-parameterYNoneimplicitvkDestroyDescriptorPoolIf descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle
VUID-vkDestroyDescriptorPool-descriptorPool-parentYNoneimplicitvkDestroyDescriptorPoolIf descriptorPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorPool-device-parameterYNoneimplicitvkDestroyDescriptorPooldevice must be a valid VkDevice handle
VUID-vkDestroyDescriptorPool-pAllocator-parameterYNoneimplicitvkDestroyDescriptorPoolIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284YNoneexplicitvkDestroyDescriptorSetLayoutIf VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285YNoneexplicitvkDestroyDescriptorSetLayoutIf no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameterYNoneimplicitvkDestroyDescriptorSetLayoutIf descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parentYNoneimplicitvkDestroyDescriptorSetLayoutIf descriptorSetLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorSetLayout-device-parameterYNoneimplicitvkDestroyDescriptorSetLayoutdevice must be a valid VkDevice handle
VUID-vkDestroyDescriptorSetLayout-pAllocator-parameterYNoneimplicitvkDestroyDescriptorSetLayoutIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356YNoneexplicitvkDestroyDescriptorUpdateTemplateIf VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357YNoneexplicitvkDestroyDescriptorUpdateTemplateIf no VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, pAllocator must be NULL
VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameterYNoneimplicitvkDestroyDescriptorUpdateTemplateIf descriptorUpdateTemplate is not VK_NULL_HANDLE, descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parentYNoneimplicitvkDestroyDescriptorUpdateTemplateIf descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorUpdateTemplate-device-parameterYNoneimplicitvkDestroyDescriptorUpdateTemplatedevice must be a valid VkDevice handle
VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameterYNoneimplicitvkDestroyDescriptorUpdateTemplateIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDevice-device-00379YNoneexplicitvkDestroyDeviceIf VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDevice-device-00380YNoneexplicitvkDestroyDeviceIf no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL
VUID-vkDestroyDevice-device-05137YNegativeObjectLifetime.LeakABuffer, NegativeObjectLifetime.LeakAnObject, NegativeWsi.LeakASwapchainexplicitvkDestroyDeviceAll child objects created on device must have been destroyed prior to destroying device
VUID-vkDestroyDevice-device-parameterYNoneimplicitvkDestroyDeviceIf device is not NULL, device must be a valid VkDevice handle
VUID-vkDestroyDevice-pAllocator-parameterYNoneimplicitvkDestroyDeviceIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyEvent-device-parameterYNoneimplicitvkDestroyEventdevice must be a valid VkDevice handle
VUID-vkDestroyEvent-event-01145YNegativeObjectLifetime.InUseDestroyedSignaledexplicitvkDestroyEventAll submitted commands that refer to event must have completed execution
VUID-vkDestroyEvent-event-01146YNoneexplicitvkDestroyEventIf VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here
VUID-vkDestroyEvent-event-01147YNoneexplicitvkDestroyEventIf no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL
VUID-vkDestroyEvent-event-parameterYNoneimplicitvkDestroyEventIf event is not VK_NULL_HANDLE, event must be a valid VkEvent handle
VUID-vkDestroyEvent-event-parentYNoneimplicitvkDestroyEventIf event is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyEvent-pAllocator-parameterYNoneimplicitvkDestroyEventIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyFence-device-parameterYNoneimplicitvkDestroyFencedevice must be a valid VkDevice handle
VUID-vkDestroyFence-fence-01120YNegativeObjectLifetime.InUseDestroyedSignaledexplicitvkDestroyFenceAll queue submission commands that refer to fence must have completed execution
VUID-vkDestroyFence-fence-01121YNoneexplicitvkDestroyFenceIf VkAllocationCallbacks were provided when fence was created, a compatible set of callbacks must be provided here
VUID-vkDestroyFence-fence-01122YNoneexplicitvkDestroyFenceIf no VkAllocationCallbacks were provided when fence was created, pAllocator must be NULL
VUID-vkDestroyFence-fence-parameterYNoneimplicitvkDestroyFenceIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkDestroyFence-fence-parentYNoneimplicitvkDestroyFenceIf fence is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyFence-pAllocator-parameterYNoneimplicitvkDestroyFenceIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyFramebuffer-device-parameterYNoneimplicitvkDestroyFramebufferdevice must be a valid VkDevice handle
VUID-vkDestroyFramebuffer-framebuffer-00892YNegativeObjectLifetime.FramebufferInUseDestroyedSignaledexplicitvkDestroyFramebufferAll submitted commands that refer to framebuffer must have completed execution
VUID-vkDestroyFramebuffer-framebuffer-00893YNoneexplicitvkDestroyFramebufferIf VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here
VUID-vkDestroyFramebuffer-framebuffer-00894YNoneexplicitvkDestroyFramebufferIf no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL
VUID-vkDestroyFramebuffer-framebuffer-parameterYNoneimplicitvkDestroyFramebufferIf framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle
VUID-vkDestroyFramebuffer-framebuffer-parentYNoneimplicitvkDestroyFramebufferIf framebuffer is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyFramebuffer-pAllocator-parameterYNoneimplicitvkDestroyFramebufferIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyImage-device-parameterYNoneimplicitvkDestroyImagedevice must be a valid VkDevice handle
VUID-vkDestroyImage-image-01000YNegativeObjectLifetime.FramebufferImageInUseDestroyedSignaledexplicitvkDestroyImageAll submitted commands that refer to image, either directly or via a VkImageView, must have completed execution
VUID-vkDestroyImage-image-01001YNoneexplicitvkDestroyImageIf VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here
VUID-vkDestroyImage-image-01002YNoneexplicitvkDestroyImageIf no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL
VUID-vkDestroyImage-image-04882YNegativeWsi.GetSwapchainImageAndTryDestroyexplicitvkDestroyImageimage must not have been acquired from vkGetSwapchainImagesKHR
VUID-vkDestroyImage-image-parameterYNoneimplicitvkDestroyImageIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-vkDestroyImage-image-parentYNoneimplicitvkDestroyImageIf image is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyImage-pAllocator-parameterYNoneimplicitvkDestroyImageIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyImageView-device-parameterYNoneimplicitvkDestroyImageViewdevice must be a valid VkDevice handle
VUID-vkDestroyImageView-imageView-01026YNegativeObjectLifetime.ImageViewInUseDestroyedSignaledexplicitvkDestroyImageViewAll submitted commands that refer to imageView must have completed execution
VUID-vkDestroyImageView-imageView-01027YNoneexplicitvkDestroyImageViewIf VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here
VUID-vkDestroyImageView-imageView-01028YNoneexplicitvkDestroyImageViewIf no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL
VUID-vkDestroyImageView-imageView-parameterYNoneimplicitvkDestroyImageViewIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkDestroyImageView-imageView-parentYNoneimplicitvkDestroyImageViewIf imageView is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyImageView-pAllocator-parameterYNoneimplicitvkDestroyImageViewIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyIndirectCommandsLayoutEXT-device-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutEXTdevice must be a valid VkDevice handle
VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11114YNoneexplicitvkDestroyIndirectCommandsLayoutEXTAll submitted commands that refer to indirectCommandsLayout must have completed execution
VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11115YNoneexplicitvkDestroyIndirectCommandsLayoutEXTIf VkAllocationCallbacks were provided when indirectCommandsLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11116YNoneexplicitvkDestroyIndirectCommandsLayoutEXTIf no VkAllocationCallbacks were provided when indirectCommandsLayout was created, pAllocator must be NULL
VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutEXTIf indirectCommandsLayout is not VK_NULL_HANDLE, indirectCommandsLayout must be a valid VkIndirectCommandsLayoutEXT handle
VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-parentYNoneimplicitvkDestroyIndirectCommandsLayoutEXTIf indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyIndirectCommandsLayoutEXT-pAllocator-parameterNNoneimplicitvkDestroyIndirectCommandsLayoutEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyIndirectCommandsLayoutNV-device-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutNVdevice must be a valid VkDevice handle
VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941NNoneexplicitvkDestroyIndirectCommandsLayoutNVThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938NNoneexplicitvkDestroyIndirectCommandsLayoutNVAll submitted commands that refer to indirectCommandsLayout must have completed execution
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939NNoneexplicitvkDestroyIndirectCommandsLayoutNVIf VkAllocationCallbacks were provided when indirectCommandsLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940NNoneexplicitvkDestroyIndirectCommandsLayoutNVIf no VkAllocationCallbacks were provided when indirectCommandsLayout was created, pAllocator must be NULL
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutNVIf indirectCommandsLayout is not VK_NULL_HANDLE, indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parentYNoneimplicitvkDestroyIndirectCommandsLayoutNVIf indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyIndirectExecutionSetEXT-device-parameterYNoneimplicitvkDestroyIndirectExecutionSetEXTdevice must be a valid VkDevice handle
VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-11025YNoneexplicitvkDestroyIndirectExecutionSetEXTAll submitted commands that refer to indirectExecutionSet must have completed execution
VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-parameterYNoneimplicitvkDestroyIndirectExecutionSetEXTIf indirectExecutionSet is not VK_NULL_HANDLE, indirectExecutionSet must be a valid VkIndirectExecutionSetEXT handle
VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-parentYNoneimplicitvkDestroyIndirectExecutionSetEXTIf indirectExecutionSet is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyIndirectExecutionSetEXT-pAllocator-parameterNNoneimplicitvkDestroyIndirectExecutionSetEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyInstance-instance-00629YNegativeObjectLifetime.LeakABuffer, NegativeObjectLifetime.LeakAnObject, NegativeWsi.LeakASwapchainexplicitvkDestroyInstanceAll child objects created using instance must have been destroyed prior to destroying instance
VUID-vkDestroyInstance-instance-00630YNoneexplicitvkDestroyInstanceIf VkAllocationCallbacks were provided when instance was created, a compatible set of callbacks must be provided here
VUID-vkDestroyInstance-instance-00631YNegativeInstanceless.DestroyInstanceAllocationCallbacksCompatibilityexplicitvkDestroyInstanceIf no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL
VUID-vkDestroyInstance-instance-parameterYNoneimplicitvkDestroyInstanceIf instance is not NULL, instance must be a valid VkInstance handle
VUID-vkDestroyInstance-pAllocator-parameterYNoneimplicitvkDestroyInstanceIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyMicromapEXT-device-parameterYNoneimplicitvkDestroyMicromapEXTdevice must be a valid VkDevice handle
VUID-vkDestroyMicromapEXT-micromap-07441NNoneexplicitvkDestroyMicromapEXTAll submitted commands that refer to micromap must have completed execution
VUID-vkDestroyMicromapEXT-micromap-07442YNoneexplicitvkDestroyMicromapEXTIf VkAllocationCallbacks were provided when micromap was created, a compatible set of callbacks must be provided here
VUID-vkDestroyMicromapEXT-micromap-07443YNoneexplicitvkDestroyMicromapEXTIf no VkAllocationCallbacks were provided when micromap was created, pAllocator must be NULL
VUID-vkDestroyMicromapEXT-micromap-parameterYNoneimplicitvkDestroyMicromapEXTIf micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle
VUID-vkDestroyMicromapEXT-micromap-parentYNoneimplicitvkDestroyMicromapEXTIf micromap is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyMicromapEXT-pAllocator-parameterYNoneimplicitvkDestroyMicromapEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyOpticalFlowSessionNV-device-parameterYNoneimplicitvkDestroyOpticalFlowSessionNVdevice must be a valid VkDevice handle
VUID-vkDestroyOpticalFlowSessionNV-pAllocator-parameterYNoneimplicitvkDestroyOpticalFlowSessionNVIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyOpticalFlowSessionNV-session-parameterYNoneimplicitvkDestroyOpticalFlowSessionNVsession must be a valid VkOpticalFlowSessionNV handle
VUID-vkDestroyOpticalFlowSessionNV-session-parentYNoneimplicitvkDestroyOpticalFlowSessionNVsession must have been created, allocated, or retrieved from device
VUID-vkDestroyPipeline-device-parameterYNoneimplicitvkDestroyPipelinedevice must be a valid VkDevice handle
VUID-vkDestroyPipeline-pAllocator-parameterYNoneimplicitvkDestroyPipelineIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipeline-pipeline-00765YNegativeObjectLifetime.PipelineInUseDestroyedSignaledexplicitvkDestroyPipelineAll submitted commands that refer to pipeline must have completed execution
VUID-vkDestroyPipeline-pipeline-00766YNoneexplicitvkDestroyPipelineIf VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipeline-pipeline-00767YNoneexplicitvkDestroyPipelineIf no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL
VUID-vkDestroyPipeline-pipeline-parameterYNoneimplicitvkDestroyPipelineIf pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle
VUID-vkDestroyPipeline-pipeline-parentYNoneimplicitvkDestroyPipelineIf pipeline is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPipelineBinaryKHR-device-parameterYNoneimplicitvkDestroyPipelineBinaryKHRdevice must be a valid VkDevice handle
VUID-vkDestroyPipelineBinaryKHR-pAllocator-parameterNNoneimplicitvkDestroyPipelineBinaryKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-09614YNegativePipelineBinary.DestroyexplicitvkDestroyPipelineBinaryKHRIf VkAllocationCallbacks were provided when pipelineBinary was created, a compatible set of callbacks must be provided here.
VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-09615YNegativePipelineBinary.DestroyexplicitvkDestroyPipelineBinaryKHRIf no VkAllocationCallbacks were provided when pipelineBinary was created, pAllocator must be NULL
VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-parameterYNoneimplicitvkDestroyPipelineBinaryKHRIf pipelineBinary is not VK_NULL_HANDLE, pipelineBinary must be a valid VkPipelineBinaryKHR handle
VUID-vkDestroyPipelineBinaryKHR-pipelineBinary-parentYNoneimplicitvkDestroyPipelineBinaryKHRIf pipelineBinary is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPipelineCache-device-parameterYNoneimplicitvkDestroyPipelineCachedevice must be a valid VkDevice handle
VUID-vkDestroyPipelineCache-pAllocator-parameterYNoneimplicitvkDestroyPipelineCacheIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipelineCache-pipelineCache-00771YNoneexplicitvkDestroyPipelineCacheIf VkAllocationCallbacks were provided when pipelineCache was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipelineCache-pipelineCache-00772YNoneexplicitvkDestroyPipelineCacheIf no VkAllocationCallbacks were provided when pipelineCache was created, pAllocator must be NULL
VUID-vkDestroyPipelineCache-pipelineCache-parameterYNoneimplicitvkDestroyPipelineCacheIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkDestroyPipelineCache-pipelineCache-parentYNoneimplicitvkDestroyPipelineCacheIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPipelineLayout-device-parameterYNoneimplicitvkDestroyPipelineLayoutdevice must be a valid VkDevice handle
VUID-vkDestroyPipelineLayout-pAllocator-parameterYNoneimplicitvkDestroyPipelineLayoutIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipelineLayout-pipelineLayout-00299YNoneexplicitvkDestroyPipelineLayoutIf VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipelineLayout-pipelineLayout-00300YNoneexplicitvkDestroyPipelineLayoutIf no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL
VUID-vkDestroyPipelineLayout-pipelineLayout-02004NNoneexplicitvkDestroyPipelineLayoutpipelineLayout 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-parameterYNoneimplicitvkDestroyPipelineLayoutIf pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle
VUID-vkDestroyPipelineLayout-pipelineLayout-parentYNoneimplicitvkDestroyPipelineLayoutIf pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPrivateDataSlot-device-parameterYNoneimplicitvkDestroyPrivateDataSlotdevice must be a valid VkDevice handle
VUID-vkDestroyPrivateDataSlot-pAllocator-parameterYNoneimplicitvkDestroyPrivateDataSlotIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062YNoneexplicitvkDestroyPrivateDataSlotIf VkAllocationCallbacks were provided when privateDataSlot was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063YNoneexplicitvkDestroyPrivateDataSlotIf no VkAllocationCallbacks were provided when privateDataSlot was created, pAllocator must be NULL
VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameterYNoneimplicitvkDestroyPrivateDataSlotIf privateDataSlot is not VK_NULL_HANDLE, privateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkDestroyPrivateDataSlot-privateDataSlot-parentYNoneimplicitvkDestroyPrivateDataSlotIf privateDataSlot is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyQueryPool-device-parameterYNoneimplicitvkDestroyQueryPooldevice must be a valid VkDevice handle
VUID-vkDestroyQueryPool-pAllocator-parameterYNoneimplicitvkDestroyQueryPoolIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyQueryPool-queryPool-00793YNegativeQuery.DestroyActiveQueryPool, NegativeQuery.PoolInUseDestroyedSignaledexplicitvkDestroyQueryPoolAll submitted commands that refer to queryPool must have completed execution
VUID-vkDestroyQueryPool-queryPool-00794YNoneexplicitvkDestroyQueryPoolIf VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyQueryPool-queryPool-00795YNoneexplicitvkDestroyQueryPoolIf no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL
VUID-vkDestroyQueryPool-queryPool-parameterYNegativeQuery.DestroyWithoutQueryPoolimplicitvkDestroyQueryPoolIf queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle
VUID-vkDestroyQueryPool-queryPool-parentYNoneimplicitvkDestroyQueryPoolIf queryPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyRenderPass-device-parameterYNoneimplicitvkDestroyRenderPassdevice must be a valid VkDevice handle
VUID-vkDestroyRenderPass-pAllocator-parameterYNoneimplicitvkDestroyRenderPassIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyRenderPass-renderPass-00873YNegativeRenderPass.DestroyWhileInUseexplicitvkDestroyRenderPassAll submitted commands that refer to renderPass must have completed execution
VUID-vkDestroyRenderPass-renderPass-00874YNoneexplicitvkDestroyRenderPassIf VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here
VUID-vkDestroyRenderPass-renderPass-00875YNoneexplicitvkDestroyRenderPassIf no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL
VUID-vkDestroyRenderPass-renderPass-parameterYNoneimplicitvkDestroyRenderPassIf renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle
VUID-vkDestroyRenderPass-renderPass-parentYVkLayerTest.UseObjectWithWrongDeviceimplicitvkDestroyRenderPassIf renderPass is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySampler-device-parameterYNoneimplicitvkDestroySamplerdevice must be a valid VkDevice handle
VUID-vkDestroySampler-pAllocator-parameterYNoneimplicitvkDestroySamplerIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySampler-sampler-01082YNegativeObjectLifetime.SamplerInUseDestroyedSignaledexplicitvkDestroySamplerAll submitted commands that refer to sampler must have completed execution
VUID-vkDestroySampler-sampler-01083YNoneexplicitvkDestroySamplerIf VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here
VUID-vkDestroySampler-sampler-01084YNoneexplicitvkDestroySamplerIf no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL
VUID-vkDestroySampler-sampler-parameterYNoneimplicitvkDestroySamplerIf sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle
VUID-vkDestroySampler-sampler-parentYNoneimplicitvkDestroySamplerIf sampler is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySamplerYcbcrConversion-device-parameterYNoneimplicitvkDestroySamplerYcbcrConversiondevice must be a valid VkDevice handle
VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameterYNoneimplicitvkDestroySamplerYcbcrConversionIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameterYNoneimplicitvkDestroySamplerYcbcrConversionIf ycbcrConversion is not VK_NULL_HANDLE, ycbcrConversion must be a valid VkSamplerYcbcrConversion handle
VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parentYNoneimplicitvkDestroySamplerYcbcrConversionIf ycbcrConversion is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySemaphore-device-parameterYNoneimplicitvkDestroySemaphoredevice must be a valid VkDevice handle
VUID-vkDestroySemaphore-pAllocator-parameterYNoneimplicitvkDestroySemaphoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySemaphore-semaphore-01138YNoneexplicitvkDestroySemaphoreIf VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here
VUID-vkDestroySemaphore-semaphore-01139YNoneexplicitvkDestroySemaphoreIf no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL
VUID-vkDestroySemaphore-semaphore-05149YNegativeObjectLifetime.InUseDestroyedSignaled, NegativeSyncObject.TimelineHostSignalAndInUseTracking, NegativeSyncObject.TimelineSubmitSignalAndInUseTrackingexplicitvkDestroySemaphoreAll submitted batches that refer to semaphore must have completed execution
VUID-vkDestroySemaphore-semaphore-parameterYNoneimplicitvkDestroySemaphoreIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-vkDestroySemaphore-semaphore-parentYNoneimplicitvkDestroySemaphoreIf semaphore is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyShaderEXT-None-08481YNoneexplicitvkDestroyShaderEXTThe shaderObject feature must be enabled
VUID-vkDestroyShaderEXT-device-parameterYNoneimplicitvkDestroyShaderEXTdevice must be a valid VkDevice handle
VUID-vkDestroyShaderEXT-pAllocator-08483YNoneexplicitvkDestroyShaderEXTIf VkAllocationCallbacks were provided when shader was created, a compatible set of callbacks must be provided here
VUID-vkDestroyShaderEXT-pAllocator-08484YNoneexplicitvkDestroyShaderEXTIf no VkAllocationCallbacks were provided when shader was created, pAllocator must be NULL
VUID-vkDestroyShaderEXT-pAllocator-parameterYNoneimplicitvkDestroyShaderEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyShaderEXT-shader-08482YNoneexplicitvkDestroyShaderEXTAll submitted commands that refer to shader must have completed execution
VUID-vkDestroyShaderEXT-shader-parameterYNoneimplicitvkDestroyShaderEXTIf shader is not VK_NULL_HANDLE, shader must be a valid VkShaderEXT handle
VUID-vkDestroyShaderEXT-shader-parentYNoneimplicitvkDestroyShaderEXTIf shader is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyShaderModule-device-parameterYNoneimplicitvkDestroyShaderModuledevice must be a valid VkDevice handle
VUID-vkDestroyShaderModule-pAllocator-parameterYNoneimplicitvkDestroyShaderModuleIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyShaderModule-shaderModule-01092YNoneexplicitvkDestroyShaderModuleIf VkAllocationCallbacks were provided when shaderModule was created, a compatible set of callbacks must be provided here
VUID-vkDestroyShaderModule-shaderModule-01093YNoneexplicitvkDestroyShaderModuleIf no VkAllocationCallbacks were provided when shaderModule was created, pAllocator must be NULL
VUID-vkDestroyShaderModule-shaderModule-parameterYNoneimplicitvkDestroyShaderModuleIf shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle
VUID-vkDestroyShaderModule-shaderModule-parentYNoneimplicitvkDestroyShaderModuleIf shaderModule is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySurfaceKHR-instance-parameterYNoneimplicitvkDestroySurfaceKHRinstance must be a valid VkInstance handle
VUID-vkDestroySurfaceKHR-pAllocator-parameterYNoneimplicitvkDestroySurfaceKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySurfaceKHR-surface-01266YNoneexplicitvkDestroySurfaceKHRAll VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface
VUID-vkDestroySurfaceKHR-surface-01267YNoneexplicitvkDestroySurfaceKHRIf VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here
VUID-vkDestroySurfaceKHR-surface-01268YNoneexplicitvkDestroySurfaceKHRIf no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL
VUID-vkDestroySurfaceKHR-surface-parameterYNoneimplicitvkDestroySurfaceKHRIf surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkDestroySurfaceKHR-surface-parentYNegativeParent.Instance_Surface_2implicitvkDestroySurfaceKHRIf surface is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroySwapchainKHR-device-parameterYNoneimplicitvkDestroySwapchainKHRdevice must be a valid VkDevice handle
VUID-vkDestroySwapchainKHR-pAllocator-parameterYNoneimplicitvkDestroySwapchainKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySwapchainKHR-swapchain-01282NNoneexplicitvkDestroySwapchainKHRAll uses of presentable images acquired from swapchain must have completed execution
VUID-vkDestroySwapchainKHR-swapchain-01283YNoneexplicitvkDestroySwapchainKHRIf VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here
VUID-vkDestroySwapchainKHR-swapchain-01284YNoneexplicitvkDestroySwapchainKHRIf no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL
VUID-vkDestroySwapchainKHR-swapchain-parameterYNoneimplicitvkDestroySwapchainKHRIf swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle
VUID-vkDestroySwapchainKHR-swapchain-parentYNoneimplicitvkDestroySwapchainKHRIf swapchain is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyValidationCacheEXT-device-parameterYNoneimplicitvkDestroyValidationCacheEXTdevice must be a valid VkDevice handle
VUID-vkDestroyValidationCacheEXT-pAllocator-parameterYNoneimplicitvkDestroyValidationCacheEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyValidationCacheEXT-validationCache-01537YNoneexplicitvkDestroyValidationCacheEXTIf VkAllocationCallbacks were provided when validationCache was created, a compatible set of callbacks must be provided here
VUID-vkDestroyValidationCacheEXT-validationCache-01538YNoneexplicitvkDestroyValidationCacheEXTIf no VkAllocationCallbacks were provided when validationCache was created, pAllocator must be NULL
VUID-vkDestroyValidationCacheEXT-validationCache-parameterYNoneimplicitvkDestroyValidationCacheEXTIf validationCache is not VK_NULL_HANDLE, validationCache must be a valid VkValidationCacheEXT handle
VUID-vkDestroyValidationCacheEXT-validationCache-parentYNoneimplicitvkDestroyValidationCacheEXTIf validationCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyVideoSessionKHR-device-parameterYNoneimplicitvkDestroyVideoSessionKHRdevice must be a valid VkDevice handle
VUID-vkDestroyVideoSessionKHR-pAllocator-parameterYNoneimplicitvkDestroyVideoSessionKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyVideoSessionKHR-videoSession-07192YNegativeVideo.InUseDestroyedexplicitvkDestroyVideoSessionKHRAll submitted commands that refer to videoSession must have completed execution
VUID-vkDestroyVideoSessionKHR-videoSession-07193YNoneexplicitvkDestroyVideoSessionKHRIf VkAllocationCallbacks were provided when videoSession was created, a compatible set of callbacks must be provided here
VUID-vkDestroyVideoSessionKHR-videoSession-07194YNoneexplicitvkDestroyVideoSessionKHRIf no VkAllocationCallbacks were provided when videoSession was created, pAllocator must be NULL
VUID-vkDestroyVideoSessionKHR-videoSession-parameterYNoneimplicitvkDestroyVideoSessionKHRIf videoSession is not VK_NULL_HANDLE, videoSession must be a valid VkVideoSessionKHR handle
VUID-vkDestroyVideoSessionKHR-videoSession-parentYNoneimplicitvkDestroyVideoSessionKHRIf videoSession is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyVideoSessionParametersKHR-device-parameterYNoneimplicitvkDestroyVideoSessionParametersKHRdevice must be a valid VkDevice handle
VUID-vkDestroyVideoSessionParametersKHR-pAllocator-parameterYNoneimplicitvkDestroyVideoSessionParametersKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07212YNegativeVideo.InUseDestroyedexplicitvkDestroyVideoSessionParametersKHRAll submitted commands that refer to videoSessionParameters must have completed execution
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07213YNoneexplicitvkDestroyVideoSessionParametersKHRIf VkAllocationCallbacks were provided when videoSessionParameters was created, a compatible set of callbacks must be provided here
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-07214YNoneexplicitvkDestroyVideoSessionParametersKHRIf no VkAllocationCallbacks were provided when videoSessionParameters was created, pAllocator must be NULL
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parameterYNoneimplicitvkDestroyVideoSessionParametersKHRIf videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parentYNoneimplicitvkDestroyVideoSessionParametersKHRIf videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDeviceWaitIdle-device-parameterYNoneimplicitvkDeviceWaitIdledevice must be a valid VkDevice handle
VUID-vkDisplayPowerControlEXT-commonparentYNoneimplicitvkDisplayPowerControlEXTBoth of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice
VUID-vkDisplayPowerControlEXT-device-parameterYNoneimplicitvkDisplayPowerControlEXTdevice must be a valid VkDevice handle
VUID-vkDisplayPowerControlEXT-display-parameterYNoneimplicitvkDisplayPowerControlEXTdisplay must be a valid VkDisplayKHR handle
VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameterYNoneimplicitvkDisplayPowerControlEXTpDisplayPowerInfo must be a valid pointer to a valid VkDisplayPowerInfoEXT structure
VUID-vkEndCommandBuffer-None-01978YNegativeCommand.EndCommandBufferWithConditionalRenderingexplicitvkEndCommandBufferConditional rendering must not be active
VUID-vkEndCommandBuffer-None-06991YNegativeVideo.VideoCodingScopeexplicitvkEndCommandBufferThere must be no video session object bound
VUID-vkEndCommandBuffer-commandBuffer-00059YNegativeCommand.NoBeginCommandBuffer, NegativeDescriptorIndexing.UpdateAfterBind, NegativeObjectLifetime.Sync2CmdBarrierBufferDestroyed, NegativeObjectLifetime.Sync2CmdBarrierImageDestroyedexplicitvkEndCommandBuffercommandBuffer must be in the recording state
VUID-vkEndCommandBuffer-commandBuffer-00060YNegativeRenderPass.EndCommandBufferWithinRenderPassexplicitvkEndCommandBufferIf commandBuffer is a primary command buffer, there must not be an active render pass instance
VUID-vkEndCommandBuffer-commandBuffer-00061YVkLayerTest.UnclosedAndDuplicateQueriesexplicitvkEndCommandBufferAll queries made active during the recording of commandBuffer must have been made inactive
VUID-vkEndCommandBuffer-commandBuffer-00062NNoneexplicitvkEndCommandBufferIf 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-01815NNoneexplicitvkEndCommandBufferIf 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-parameterYNoneimplicitvkEndCommandBuffercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameterYNoneimplicitvkEnumerateDeviceExtensionPropertiesIf pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string
VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameterYNoneimplicitvkEnumerateDeviceExtensionPropertiesIf 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-parameterYNoneimplicitvkEnumerateDeviceExtensionPropertiespPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameterYNoneimplicitvkEnumerateDeviceExtensionPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumerateDeviceLayerProperties-pProperties-parameterYNoneimplicitvkEnumerateDeviceLayerPropertiesIf 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-parameterYNoneimplicitvkEnumerateDeviceLayerPropertiespPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameterYNoneimplicitvkEnumerateDeviceLayerPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameterYNoneimplicitvkEnumerateInstanceExtensionPropertiesIf pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string
VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameterYNoneimplicitvkEnumerateInstanceExtensionPropertiesIf 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-parameterYNoneimplicitvkEnumerateInstanceExtensionPropertiespPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateInstanceLayerProperties-pProperties-parameterYNoneimplicitvkEnumerateInstanceLayerPropertiesIf 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-parameterYNoneimplicitvkEnumerateInstanceLayerPropertiespPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateInstanceVersion-pApiVersion-parameterYNoneimplicitvkEnumerateInstanceVersionpApiVersion must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceGroups-instance-parameterYNoneimplicitvkEnumeratePhysicalDeviceGroupsinstance must be a valid VkInstance handle
VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameterYNoneimplicitvkEnumeratePhysicalDeviceGroupspPhysicalDeviceGroupCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameterYNoneimplicitvkEnumeratePhysicalDeviceGroupsIf 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-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRpCounterCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRIf 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-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRIf 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-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumeratePhysicalDevices-instance-parameterYNoneimplicitvkEnumeratePhysicalDevicesinstance must be a valid VkInstance handle
VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameterYNoneimplicitvkEnumeratePhysicalDevicespPhysicalDeviceCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameterYNoneimplicitvkEnumeratePhysicalDevicesIf 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-parameterYNoneimplicitvkExportMetalObjectsEXTdevice must be a valid VkDevice handle
VUID-vkExportMetalObjectsEXT-pMetalObjectsInfo-parameterYNoneimplicitvkExportMetalObjectsEXTpMetalObjectsInfo must be a valid pointer to a VkExportMetalObjectsInfoEXT structure
VUID-vkFlushMappedMemoryRanges-device-parameterYNoneimplicitvkFlushMappedMemoryRangesdevice must be a valid VkDevice handle
VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylengthYNoneimplicitvkFlushMappedMemoryRangesmemoryRangeCount must be greater than 0
VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameterYNoneimplicitvkFlushMappedMemoryRangespMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures
VUID-vkFreeCommandBuffers-commandBufferCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkFreeCommandBufferscommandBufferCount must be greater than 0
VUID-vkFreeCommandBuffers-commandPool-parameterYNoneimplicitvkFreeCommandBufferscommandPool must be a valid VkCommandPool handle
VUID-vkFreeCommandBuffers-commandPool-parentYNegativeParent.FreeCommandBufferimplicitvkFreeCommandBufferscommandPool must have been created, allocated, or retrieved from device
VUID-vkFreeCommandBuffers-device-parameterYNoneimplicitvkFreeCommandBuffersdevice must be a valid VkDevice handle
VUID-vkFreeCommandBuffers-pCommandBuffers-00047YNoneexplicitvkFreeCommandBuffersAll elements of pCommandBuffers must not be in the pending state
VUID-vkFreeCommandBuffers-pCommandBuffers-00048YNegativeObjectLifetime.FreeCommandBuffersNullexplicitvkFreeCommandBufferspCommandBuffers 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.CommandPoolConsistency, NegativeParent.FreeCommandBufferimplicitvkFreeCommandBuffersEach element of pCommandBuffers that is a valid handle must have been created, allocated, or retrieved from commandPool
VUID-vkFreeDescriptorSets-descriptorPool-00312YNegativeDescriptors.FreeDescriptorFromOneShotPoolexplicitvkFreeDescriptorSetsdescriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT flag
VUID-vkFreeDescriptorSets-descriptorPool-parameterYNoneimplicitvkFreeDescriptorSetsdescriptorPool must be a valid VkDescriptorPool handle
VUID-vkFreeDescriptorSets-descriptorPool-parentYNoneimplicitvkFreeDescriptorSetsdescriptorPool must have been created, allocated, or retrieved from device
VUID-vkFreeDescriptorSets-descriptorSetCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkFreeDescriptorSetsdescriptorSetCount must be greater than 0
VUID-vkFreeDescriptorSets-device-parameterYNoneimplicitvkFreeDescriptorSetsdevice must be a valid VkDevice handle
VUID-vkFreeDescriptorSets-pDescriptorSets-00309YNegativeDescriptors.CmdBufferDescriptorSetImageSamplerDestroyedexplicitvkFreeDescriptorSetsAll submitted commands that refer to any element of pDescriptorSets must have completed execution
VUID-vkFreeDescriptorSets-pDescriptorSets-00310YNegativeObjectLifetime.FreeDescriptorSetsNullexplicitvkFreeDescriptorSetspDescriptorSets 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.DescriptorPoolConsistencyimplicitvkFreeDescriptorSetsEach element of pDescriptorSets that is a valid handle must have been created, allocated, or retrieved from descriptorPool
VUID-vkFreeMemory-device-parameterYNoneimplicitvkFreeMemorydevice must be a valid VkDevice handle
VUID-vkFreeMemory-memory-00677YNegativeObjectLifetime.CmdBarrierBufferDestroyed, NegativeObjectLifetime.CmdBarrierImageDestroyedexplicitvkFreeMemoryAll submitted commands that refer to memory (via images or buffers) must have completed execution
VUID-vkFreeMemory-memory-parameterYNoneimplicitvkFreeMemoryIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-vkFreeMemory-memory-parentYNoneimplicitvkFreeMemoryIf memory is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkFreeMemory-pAllocator-parameterYNoneimplicitvkFreeMemoryIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkGetAccelerationStructureBuildSizesKHR-accelerationStructure-08933YNoneexplicitvkGetAccelerationStructureBuildSizesKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkGetAccelerationStructureBuildSizesKHR-buildType-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRbuildType must be a valid VkAccelerationStructureBuildTypeKHR value
VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618NNoneexplicitvkGetAccelerationStructureBuildSizesKHRIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRdevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619YNoneexplicitvkGetAccelerationStructureBuildSizesKHRIf pBuildInfo->geometryCount is not 0, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values
VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03785YNegativeRayTracing.TooManyInstancesexplicitvkGetAccelerationStructureBuildSizesKHRIf 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-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRpBuildInfo must be a valid pointer to a valid VkAccelerationStructureBuildGeometryInfoKHR structure
VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRIf pMaxPrimitiveCounts is not NULL, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values
VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHRpSizeInfo must be a valid pointer to a VkAccelerationStructureBuildSizesInfoKHR structure
VUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935YNoneexplicitvkGetAccelerationStructureDeviceAddressKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504YNoneexplicitvkGetAccelerationStructureDeviceAddressKHRIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameterYNoneimplicitvkGetAccelerationStructureDeviceAddressKHRdevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-09541YNegativeRayTracing.GetAccelerationStructureAddressBabBufferexplicitvkGetAccelerationStructureDeviceAddressKHRIf the buffer on which pInfo->accelerationStructure was placed is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-09542YNegativeRayTracing.GetAccelerationStructureAddressBabBufferexplicitvkGetAccelerationStructureDeviceAddressKHRThe buffer on which pInfo->accelerationStructure was placed must have been created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT usage flag
VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameterYNoneimplicitvkGetAccelerationStructureDeviceAddressKHRpInfo must be a valid pointer to a valid VkAccelerationStructureDeviceAddressInfoKHR structure
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787YNegativeRayTracingNV.ValidateGetAccelerationStructureHandleexplicitvkGetAccelerationStructureHandleNVaccelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameterYNoneimplicitvkGetAccelerationStructureHandleNVaccelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parentYNoneimplicitvkGetAccelerationStructureHandleNVaccelerationStructure must have been created, allocated, or retrieved from device
VUID-vkGetAccelerationStructureHandleNV-dataSize-02240YNegativeRayTracingNV.ValidateGetAccelerationStructureHandleexplicitvkGetAccelerationStructureHandleNVdataSize must be large enough to contain the result of the query, as described above
VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylengthYNoneimplicitvkGetAccelerationStructureHandleNVdataSize must be greater than 0
VUID-vkGetAccelerationStructureHandleNV-device-parameterYNoneimplicitvkGetAccelerationStructureHandleNVdevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureHandleNV-pData-parameterYNoneimplicitvkGetAccelerationStructureHandleNVpData must be a valid pointer to an array of dataSize bytes
VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNVdevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNVpInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure
VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNVpMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088YNegativeDescriptorBuffer.NotEnabledGetAccelerationStructureOpaqueCaptureDescriptorDataEXTexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-08090YNoneexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTdevice must be a valid VkDevice handle
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-08089YNoneexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTpData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::accelerationStructureCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTpData must be a pointer value
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXTpInfo must be a valid pointer to a valid VkAccelerationStructureCaptureDescriptorDataInfoEXT structure
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884YNegativeAndroidHardwareBuffer.DedicatedUsageDS, NegativeAndroidHardwareBuffer.GpuUsage, NegativeAndroidHardwareBuffer.ImportBuffer, PositiveAndroidHardwareBuffer.DepthStencilexplicitvkGetAndroidHardwareBufferPropertiesANDROIDbuffer 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.NullAHBPropertiesimplicitvkGetAndroidHardwareBufferPropertiesANDROIDbuffer must be a valid pointer to a valid AHardwareBuffer value
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameterYNoneimplicitvkGetAndroidHardwareBufferPropertiesANDROIDdevice must be a valid VkDevice handle
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameterYNoneimplicitvkGetAndroidHardwareBufferPropertiesANDROIDpProperties must be a valid pointer to a VkAndroidHardwareBufferPropertiesANDROID structure
VUID-vkGetBufferCollectionPropertiesFUCHSIA-None-06405NNoneexplicitvkGetBufferCollectionPropertiesFUCHSIAPrior to calling vkGetBufferCollectionPropertiesFUCHSIA, the constraints on the buffer collection must have been set by either vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA
VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIAcollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parentYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIAcollection must have been created, allocated, or retrieved from device
VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIAdevice must be a valid VkDevice handle
VUID-vkGetBufferCollectionPropertiesFUCHSIA-pProperties-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIApProperties must be a valid pointer to a VkBufferCollectionPropertiesFUCHSIA structure
VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324YNegativeMemory.BufferDeviceAddressEXTDisabled, NegativeMemory.BufferDeviceAddressKHRDisabledexplicitvkGetBufferDeviceAddressThe bufferDeviceAddress or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddress feature must be enabled
VUID-vkGetBufferDeviceAddress-device-03325YNoneexplicitvkGetBufferDeviceAddressIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferDeviceAddress-device-parameterYNoneimplicitvkGetBufferDeviceAddressdevice must be a valid VkDevice handle
VUID-vkGetBufferDeviceAddress-pInfo-parameterYNoneimplicitvkGetBufferDeviceAddresspInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure
VUID-vkGetBufferMemoryRequirements-buffer-parameterYNoneimplicitvkGetBufferMemoryRequirementsbuffer must be a valid VkBuffer handle
VUID-vkGetBufferMemoryRequirements-buffer-parentYNegativeParent.BindBufferimplicitvkGetBufferMemoryRequirementsbuffer must have been created, allocated, or retrieved from device
VUID-vkGetBufferMemoryRequirements-device-parameterYNoneimplicitvkGetBufferMemoryRequirementsdevice must be a valid VkDevice handle
VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetBufferMemoryRequirementspMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure
VUID-vkGetBufferMemoryRequirements2-device-parameterYNoneimplicitvkGetBufferMemoryRequirements2device must be a valid VkDevice handle
VUID-vkGetBufferMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetBufferMemoryRequirements2pInfo must be a valid pointer to a valid VkBufferMemoryRequirementsInfo2 structure
VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameterYNoneimplicitvkGetBufferMemoryRequirements2pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetBufferOpaqueCaptureAddress-None-03326YNegativeMemory.BufferDeviceAddressKHRDisabledexplicitvkGetBufferOpaqueCaptureAddressThe bufferDeviceAddress feature must be enabled
VUID-vkGetBufferOpaqueCaptureAddress-device-03327YNoneexplicitvkGetBufferOpaqueCaptureAddressIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferOpaqueCaptureAddress-device-parameterYNoneimplicitvkGetBufferOpaqueCaptureAddressdevice must be a valid VkDevice handle
VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameterYNoneimplicitvkGetBufferOpaqueCaptureAddresspInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072YNegativeDescriptorBuffer.NotEnabledGetBufferOpaqueCaptureDescriptorDataEXTexplicitvkGetBufferOpaqueCaptureDescriptorDataEXTThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-08074YNoneexplicitvkGetBufferOpaqueCaptureDescriptorDataEXTIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXTdevice must be a valid VkDevice handle
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073YNoneexplicitvkGetBufferOpaqueCaptureDescriptorDataEXTpData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXTpData must be a pointer value
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXTpInfo must be a valid pointer to a valid VkBufferCaptureDescriptorDataInfoEXT structure
VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246YVkLayerTest.GetCalibratedTimestampsDuplicate, VkLayerTest.GetCalibratedTimestampsDuplicateKHRexplicitvkGetCalibratedTimestampsKHRThe timeDomain value of each VkCalibratedTimestampInfoKHR in pTimestampInfos must be unique
VUID-vkGetCalibratedTimestampsKHR-device-parameterYNoneimplicitvkGetCalibratedTimestampsKHRdevice must be a valid VkDevice handle
VUID-vkGetCalibratedTimestampsKHR-pMaxDeviation-parameterYNoneimplicitvkGetCalibratedTimestampsKHRpMaxDeviation must be a valid pointer to a uint64_t value
VUID-vkGetCalibratedTimestampsKHR-pTimestampInfos-parameterYNoneimplicitvkGetCalibratedTimestampsKHRpTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoKHR structures
VUID-vkGetCalibratedTimestampsKHR-pTimestamps-parameterYNoneimplicitvkGetCalibratedTimestampsKHRpTimestamps must be a valid pointer to an array of timestampCount uint64_t values
VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylengthYNoneimplicitvkGetCalibratedTimestampsKHRtimestampCount must be greater than 0
VUID-vkGetCudaModuleCacheNV-device-parameterYNoneimplicitvkGetCudaModuleCacheNVdevice must be a valid VkDevice handle
VUID-vkGetCudaModuleCacheNV-module-parameterYNoneimplicitvkGetCudaModuleCacheNVmodule must be a valid VkCudaModuleNV handle
VUID-vkGetCudaModuleCacheNV-module-parentYNoneimplicitvkGetCudaModuleCacheNVmodule must have been created, allocated, or retrieved from device
VUID-vkGetCudaModuleCacheNV-pCacheData-parameterYNoneimplicitvkGetCudaModuleCacheNVIf 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-parameterYNoneimplicitvkGetCudaModuleCacheNVpCacheSize must be a valid pointer to a size_t value
VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameterYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHRdevice must be a valid VkDevice handle
VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameterYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHRoperation must be a valid VkDeferredOperationKHR handle
VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parentYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHRoperation must have been created, allocated, or retrieved from device
VUID-vkGetDeferredOperationResultKHR-device-parameterYNoneimplicitvkGetDeferredOperationResultKHRdevice must be a valid VkDevice handle
VUID-vkGetDeferredOperationResultKHR-operation-parameterYNoneimplicitvkGetDeferredOperationResultKHRoperation must be a valid VkDeferredOperationKHR handle
VUID-vkGetDeferredOperationResultKHR-operation-parentYNoneimplicitvkGetDeferredOperationResultKHRoperation must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorEXT-None-08015YNegativeDescriptorBuffer.NotEnabledexplicitvkGetDescriptorEXTThe descriptorBuffer feature must be enabled
VUID-vkGetDescriptorEXT-dataSize-08125YNegativeDescriptorBuffer.DescriptorGetInfoAddressRange, NegativeDescriptorBuffer.NullCombinedImageSamplerexplicitvkGetDescriptorEXTIf pDescriptorInfo->type is not VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER or pDescriptorInfo->data.pCombinedImageSampler has an 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-arraylengthYNoneimplicitvkGetDescriptorEXTdataSize must be greater than 0
VUID-vkGetDescriptorEXT-descriptorType-09469YNoneexplicitvkGetDescriptorEXTIf pDescriptorInfo->type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER and pDescriptorInfo->data.pCombinedImageSampler has an 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-parameterYNoneimplicitvkGetDescriptorEXTdevice must be a valid VkDevice handle
VUID-vkGetDescriptorEXT-pDescriptor-parameterYNoneimplicitvkGetDescriptorEXTpDescriptor must be a valid pointer to an array of dataSize bytes
VUID-vkGetDescriptorEXT-pDescriptorInfo-09507YNegativeDescriptorBuffer.NullCombinedImageSamplerexplicitvkGetDescriptorEXTIf pDescriptorInfo->type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER and it has a imageView that is VK_NULL_HANDLE then dataSize must be equal to the size of VkPhysicalDeviceDescriptorBufferPropertiesEXT::combinedImageSamplerDescriptorSize
VUID-vkGetDescriptorEXT-pDescriptorInfo-parameterYNoneimplicitvkGetDescriptorEXTpDescriptorInfo must be a valid pointer to a valid VkDescriptorGetInfoEXT structure
VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVEdescriptorSet must be a valid VkDescriptorSet handle
VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parentYNoneimplicitvkGetDescriptorSetHostMappingVALVEdescriptorSet must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorSetHostMappingVALVE-device-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVEdevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVEppData must be a valid pointer to a pointer value
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-None-08013YNegativeDescriptorBuffer.NotEnabledexplicitvkGetDescriptorSetLayoutBindingOffsetEXTThe descriptorBuffer feature must be enabled
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXTdevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-08014YNegativeDescriptorBuffer.LayoutFlagsexplicitvkGetDescriptorSetLayoutBindingOffsetEXTlayout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXTlayout must be a valid VkDescriptorSetLayout handle
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parentYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXTlayout must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-pOffset-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXTpOffset must be a valid pointer to a VkDeviceSize value
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVEdevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pBindingReference-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVEpBindingReference must be a valid pointer to a valid VkDescriptorSetBindingReferenceVALVE structure
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pHostMapping-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVEpHostMapping must be a valid pointer to a VkDescriptorSetLayoutHostMappingInfoVALVE structure
VUID-vkGetDescriptorSetLayoutSizeEXT-None-08011YNegativeDescriptorBuffer.NotEnabledexplicitvkGetDescriptorSetLayoutSizeEXTThe descriptorBuffer feature must be enabled
VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXTdevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-08012YNegativeDescriptorBuffer.LayoutFlagsexplicitvkGetDescriptorSetLayoutSizeEXTlayout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXTlayout must be a valid VkDescriptorSetLayout handle
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parentYNoneimplicitvkGetDescriptorSetLayoutSizeEXTlayout must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorSetLayoutSizeEXT-pLayoutSizeInBytes-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXTpLayoutSizeInBytes must be a valid pointer to a VkDeviceSize value
VUID-vkGetDescriptorSetLayoutSupport-device-parameterYNoneimplicitvkGetDescriptorSetLayoutSupportdevice must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameterYNoneimplicitvkGetDescriptorSetLayoutSupportpCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure
VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameterYNoneimplicitvkGetDescriptorSetLayoutSupportpSupport must be a valid pointer to a VkDescriptorSetLayoutSupport structure
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-accelerationStructure-08928YNoneexplicitvkGetDeviceAccelerationStructureCompatibilityKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHRdevice must be a valid VkDevice handle
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pCompatibility-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHRpCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pVersionInfo-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHRpVersionInfo must be a valid pointer to a valid VkAccelerationStructureVersionInfoKHR structure
VUID-vkGetDeviceBufferMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirementsdevice must be a valid VkDevice handle
VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirementspInfo must be a valid pointer to a valid VkDeviceBufferMemoryRequirements structure
VUID-vkGetDeviceBufferMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirementspMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetDeviceFaultInfoEXT-device-07336YVkLayerTest.GetDeviceFaultInfoEXTexplicitvkGetDeviceFaultInfoEXTdevice must be in the lost state
VUID-vkGetDeviceFaultInfoEXT-device-parameterYNoneimplicitvkGetDeviceFaultInfoEXTdevice must be a valid VkDevice handle
VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07337YNoneexplicitvkGetDeviceFaultInfoEXTIf 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-07338YNoneexplicitvkGetDeviceFaultInfoEXTIf 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-07339YNoneexplicitvkGetDeviceFaultInfoEXTIf 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-parameterYNoneimplicitvkGetDeviceFaultInfoEXTpFaultCounts must be a valid pointer to a VkDeviceFaultCountsEXT structure
VUID-vkGetDeviceFaultInfoEXT-pFaultInfo-parameterYNoneimplicitvkGetDeviceFaultInfoEXTIf pFaultInfo is not NULL, pFaultInfo must be a valid pointer to a VkDeviceFaultInfoEXT structure
VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameterYNoneimplicitvkGetDeviceGroupPeerMemoryFeaturesdevice must be a valid VkDevice handle
VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691NNoneexplicitvkGetDeviceGroupPeerMemoryFeaturesheapIndex must be less than memoryHeapCount
VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692NNoneexplicitvkGetDeviceGroupPeerMemoryFeatureslocalDeviceIndex must be a valid device index
VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694NNoneexplicitvkGetDeviceGroupPeerMemoryFeatureslocalDeviceIndex must not equal remoteDeviceIndex
VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameterYNoneimplicitvkGetDeviceGroupPeerMemoryFeaturespPeerMemoryFeatures must be a valid pointer to a VkPeerMemoryFeatureFlags value
VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693NNoneexplicitvkGetDeviceGroupPeerMemoryFeaturesremoteDeviceIndex must be a valid device index
VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameterYNoneimplicitvkGetDeviceGroupPresentCapabilitiesKHRdevice must be a valid VkDevice handle
VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameterYNoneimplicitvkGetDeviceGroupPresentCapabilitiesKHRpDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structure
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXTdevice must be a valid VkDevice handle
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pModes-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXTpModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-06213YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetDeviceGroupSurfacePresentModes2EXTpSurfaceInfo->surface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXTpSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparentYNegativeParent.Instance_DeviceAndSurfaceimplicitvkGetDeviceGroupSurfacePresentModesKHRBoth of device, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModesKHRdevice must be a valid VkDevice handle
VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModesKHRpModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value
VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-06212YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetDeviceGroupSurfacePresentModesKHRsurface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModesKHRsurface must be a valid VkSurfaceKHR handle
VUID-vkGetDeviceImageMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceImageMemoryRequirementsdevice must be a valid VkDevice handle
VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceImageMemoryRequirementspInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure
VUID-vkGetDeviceImageMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetDeviceImageMemoryRequirementspMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirementsdevice must be a valid VkDevice handle
VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirementspInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure
VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirementspSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirementsIf 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-parameterYNoneimplicitvkGetDeviceImageSubresourceLayoutKHRdevice must be a valid VkDevice handle
VUID-vkGetDeviceImageSubresourceLayoutKHR-pInfo-parameterYNoneimplicitvkGetDeviceImageSubresourceLayoutKHRpInfo must be a valid pointer to a valid VkDeviceImageSubresourceInfoKHR structure
VUID-vkGetDeviceImageSubresourceLayoutKHR-pLayout-parameterYNoneimplicitvkGetDeviceImageSubresourceLayoutKHRpLayout must be a valid pointer to a VkSubresourceLayout2KHR structure
VUID-vkGetDeviceMemoryCommitment-device-parameterYNoneimplicitvkGetDeviceMemoryCommitmentdevice must be a valid VkDevice handle
VUID-vkGetDeviceMemoryCommitment-memory-00690YNegativeMemory.QueryMemoryCommitmentWithoutLazyPropertyexplicitvkGetDeviceMemoryCommitmentmemory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
VUID-vkGetDeviceMemoryCommitment-memory-parameterYNoneimplicitvkGetDeviceMemoryCommitmentmemory must be a valid VkDeviceMemory handle
VUID-vkGetDeviceMemoryCommitment-memory-parentYNoneimplicitvkGetDeviceMemoryCommitmentmemory must have been created, allocated, or retrieved from device
VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameterYNoneimplicitvkGetDeviceMemoryCommitmentpCommittedMemoryInBytes must be a valid pointer to a VkDeviceSize value
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334YNegativeMemory.BufferDeviceAddressKHRDisabledexplicitvkGetDeviceMemoryOpaqueCaptureAddressThe bufferDeviceAddress feature must be enabled
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335YNoneexplicitvkGetDeviceMemoryOpaqueCaptureAddressIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameterYNoneimplicitvkGetDeviceMemoryOpaqueCaptureAddressdevice must be a valid VkDevice handle
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameterYNoneimplicitvkGetDeviceMemoryOpaqueCaptureAddresspInfo must be a valid pointer to a valid VkDeviceMemoryOpaqueCaptureAddressInfo structure
VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXTdevice must be a valid VkDevice handle
VUID-vkGetDeviceMicromapCompatibilityEXT-micromap-07551NNoneexplicitvkGetDeviceMicromapCompatibilityEXTThe micromap feature must be enabled
VUID-vkGetDeviceMicromapCompatibilityEXT-pCompatibility-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXTpCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value
VUID-vkGetDeviceMicromapCompatibilityEXT-pVersionInfo-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXTpVersionInfo must be a valid pointer to a valid VkMicromapVersionInfoEXT structure
VUID-vkGetDeviceProcAddr-device-parameterYNoneimplicitvkGetDeviceProcAddrdevice must be a valid VkDevice handle
VUID-vkGetDeviceProcAddr-pName-parameterYNoneimplicitvkGetDeviceProcAddrpName must be a null-terminated UTF-8 string
VUID-vkGetDeviceQueue-device-parameterYNoneimplicitvkGetDeviceQueuedevice must be a valid VkDevice handle
VUID-vkGetDeviceQueue-flags-01841YNegativeProtectedMemory.GetDeviceQueueexplicitvkGetDeviceQueueVkDeviceQueueCreateInfo::flags must have been set to zero when device was created
VUID-vkGetDeviceQueue-pQueue-parameterYNoneimplicitvkGetDeviceQueuepQueue must be a valid pointer to a VkQueue handle
VUID-vkGetDeviceQueue-queueFamilyIndex-00384YNegativeProtectedMemory.GetDeviceQueueexplicitvkGetDeviceQueuequeueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure
VUID-vkGetDeviceQueue-queueIndex-00385YNegativeProtectedMemory.GetDeviceQueueexplicitvkGetDeviceQueuequeueIndex must be less than the value of VkDeviceQueueCreateInfo::queueCount for the queue family indicated by queueFamilyIndex when device was created
VUID-vkGetDeviceQueue2-device-parameterYNoneimplicitvkGetDeviceQueue2device must be a valid VkDevice handle
VUID-vkGetDeviceQueue2-pQueue-parameterYNoneimplicitvkGetDeviceQueue2pQueue must be a valid pointer to a VkQueue handle
VUID-vkGetDeviceQueue2-pQueueInfo-parameterYNoneimplicitvkGetDeviceQueue2pQueueInfo must be a valid pointer to a valid VkDeviceQueueInfo2 structure
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIdevice must be a valid VkDevice handle
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-pMaxWorkgroupSize-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIpMaxWorkgroupSize must be a valid pointer to VkExtent2D structures
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIrenderpass must be a valid VkRenderPass handle
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parentYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIrenderpass must have been created, allocated, or retrieved from device
VUID-vkGetDisplayModeProperties2KHR-display-parameterYNoneimplicitvkGetDisplayModeProperties2KHRdisplay must be a valid VkDisplayKHR handle
VUID-vkGetDisplayModeProperties2KHR-display-parentYNoneimplicitvkGetDisplayModeProperties2KHRdisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkGetDisplayModeProperties2KHR-pProperties-parameterYNoneimplicitvkGetDisplayModeProperties2KHRIf 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-parameterYNoneimplicitvkGetDisplayModeProperties2KHRpPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetDisplayModeProperties2KHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayModePropertiesKHR-display-parameterYNoneimplicitvkGetDisplayModePropertiesKHRdisplay must be a valid VkDisplayKHR handle
VUID-vkGetDisplayModePropertiesKHR-display-parentYNegativeParent.PhysicalDevice_DisplayimplicitvkGetDisplayModePropertiesKHRdisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkGetDisplayModePropertiesKHR-pProperties-parameterYNoneimplicitvkGetDisplayModePropertiesKHRIf 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-parameterYNoneimplicitvkGetDisplayModePropertiesKHRpPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetDisplayModePropertiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHRpCapabilities must be a valid pointer to a VkDisplayPlaneCapabilities2KHR structure
VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHRpDisplayPlaneInfo must be a valid pointer to a valid VkDisplayPlaneInfo2KHR structure
VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHRmode must be a valid VkDisplayModeKHR handle
VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parentYNegativeParent.PhysicalDevice_DisplayModeimplicitvkGetDisplayPlaneCapabilitiesKHRmode must have been created, allocated, or retrieved from physicalDevice
VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHRpCapabilities must be a valid pointer to a VkDisplayPlaneCapabilitiesKHR structure
VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameterYNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHRpDisplayCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameterYNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHRIf 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-parameterYNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249YNegativeWsi.DisplayPlaneSurfaceexplicitvkGetDisplayPlaneSupportedDisplaysKHRplaneIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR
VUID-vkGetDrmDisplayEXT-display-parameterYNoneimplicitvkGetDrmDisplayEXTdisplay must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetDrmDisplayEXT-physicalDevice-parameterYNoneimplicitvkGetDrmDisplayEXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOMdevice must be a valid VkDevice handle
VUID-vkGetDynamicRenderingTilePropertiesQCOM-pProperties-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOMpProperties must be a valid pointer to a VkTilePropertiesQCOM structure
VUID-vkGetDynamicRenderingTilePropertiesQCOM-pRenderingInfo-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOMpRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure
VUID-vkGetEncodedVideoSessionParametersKHR-device-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRdevice must be a valid VkDevice handle
VUID-vkGetEncodedVideoSessionParametersKHR-pData-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRIf 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-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRpDataSize must be a valid pointer to a size_t value
VUID-vkGetEncodedVideoSessionParametersKHR-pFeedbackInfo-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRIf pFeedbackInfo is not NULL, pFeedbackInfo must be a valid pointer to a VkVideoEncodeSessionParametersFeedbackInfoKHR structure
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-08262YNegativeVideo.GetEncodedSessionParamsMissingCodecInfoexplicitvkGetEncodedVideoSessionParametersKHRIf 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.GetEncodedSessionParamsH264explicitvkGetEncodedVideoSessionParametersKHRIf 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.GetEncodedSessionParamsH264explicitvkGetEncodedVideoSessionParametersKHRIf 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.GetEncodedSessionParamsMissingCodecInfoexplicitvkGetEncodedVideoSessionParametersKHRIf 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.GetEncodedSessionParamsH265explicitvkGetEncodedVideoSessionParametersKHRIf 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.GetEncodedSessionParamsH265explicitvkGetEncodedVideoSessionParametersKHRIf 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.GetEncodedSessionParamsH265explicitvkGetEncodedVideoSessionParametersKHRIf 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.GetEncodedSessionParamsRequiresEncodeProfileexplicitvkGetEncodedVideoSessionParametersKHRpVideoSessionParametersInfo->videoSessionParameters must have been created with an encode operation
VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-parameterYNoneimplicitvkGetEncodedVideoSessionParametersKHRpVideoSessionParametersInfo must be a valid pointer to a valid VkVideoEncodeSessionParametersGetInfoKHR structure
VUID-vkGetEventStatus-device-parameterYNoneimplicitvkGetEventStatusdevice must be a valid VkDevice handle
VUID-vkGetEventStatus-event-03940YNoneexplicitvkGetEventStatusevent must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkGetEventStatus-event-parameterYNoneimplicitvkGetEventStatusevent must be a valid VkEvent handle
VUID-vkGetEventStatus-event-parentYNoneimplicitvkGetEventStatusevent must have been created, allocated, or retrieved from device
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameterYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXdevice must be a valid VkDevice handle
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-09142NNoneexplicitvkGetExecutionGraphPipelineNodeIndexAMDXThere must be a node in executionGraph with a shader name and index equal to pNodeInfo->pName and pNodeInfo->index
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parameterYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXexecutionGraph must be a valid VkPipeline handle
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parentYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXexecutionGraph must have been created, allocated, or retrieved from device
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeIndex-parameterYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXpNodeIndex must be a valid pointer to a uint32_t value
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09140NNoneexplicitvkGetExecutionGraphPipelineNodeIndexAMDXpNodeInfo->pName must not be NULL
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09141NNoneexplicitvkGetExecutionGraphPipelineNodeIndexAMDXpNodeInfo->index must not be VK_SHADER_INDEX_UNUSED_AMDX
VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-parameterYNoneimplicitvkGetExecutionGraphPipelineNodeIndexAMDXpNodeInfo must be a valid pointer to a valid VkPipelineShaderStageNodeCreateInfoAMDX structure
VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameterYNoneimplicitvkGetExecutionGraphPipelineScratchSizeAMDXdevice must be a valid VkDevice handle
VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parameterYNoneimplicitvkGetExecutionGraphPipelineScratchSizeAMDXexecutionGraph must be a valid VkPipeline handle
VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parentYNoneimplicitvkGetExecutionGraphPipelineScratchSizeAMDXexecutionGraph must have been created, allocated, or retrieved from device
VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-pSizeInfo-parameterYNoneimplicitvkGetExecutionGraphPipelineScratchSizeAMDXpSizeInfo must be a valid pointer to a VkExecutionGraphPipelineScratchSizeAMDX structure
VUID-vkGetFenceFdKHR-device-parameterYNoneimplicitvkGetFenceFdKHRdevice must be a valid VkDevice handle
VUID-vkGetFenceFdKHR-pFd-parameterYNoneimplicitvkGetFenceFdKHRpFd must be a valid pointer to an int value
VUID-vkGetFenceFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetFenceFdKHRpGetFdInfo must be a valid pointer to a valid VkFenceGetFdInfoKHR structure
VUID-vkGetFenceStatus-device-parameterYNoneimplicitvkGetFenceStatusdevice must be a valid VkDevice handle
VUID-vkGetFenceStatus-fence-parameterYNoneimplicitvkGetFenceStatusfence must be a valid VkFence handle
VUID-vkGetFenceStatus-fence-parentYNoneimplicitvkGetFenceStatusfence must have been created, allocated, or retrieved from device
VUID-vkGetFenceWin32HandleKHR-device-parameterYNoneimplicitvkGetFenceWin32HandleKHRdevice must be a valid VkDevice handle
VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetFenceWin32HandleKHRpGetWin32HandleInfo must be a valid pointer to a valid VkFenceGetWin32HandleInfoKHR structure
VUID-vkGetFenceWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetFenceWin32HandleKHRpHandle must be a valid pointer to a HANDLE value
VUID-vkGetFramebufferTilePropertiesQCOM-device-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOMdevice must be a valid VkDevice handle
VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOMframebuffer must be a valid VkFramebuffer handle
VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parentYNoneimplicitvkGetFramebufferTilePropertiesQCOMframebuffer must have been created, allocated, or retrieved from device
VUID-vkGetFramebufferTilePropertiesQCOM-pProperties-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOMIf 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-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOMpPropertiesCount must be a valid pointer to a uint32_t value
VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-device-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsEXTdevice must be a valid VkDevice handle
VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-pInfo-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsEXTpInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoEXT structure
VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-pMemoryRequirements-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsEXTpMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNVdevice must be a valid VkDevice handle
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906NNoneexplicitvkGetGeneratedCommandsMemoryRequirementsNVThe VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-09074NNoneexplicitvkGetGeneratedCommandsMemoryRequirementsNVIf pInfo->pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNVpInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoNV structure
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNVpMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameterYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXTdevice must be a valid VkDevice handle
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272YNegativeImageDrm.GetImageDrmFormatModifierPropertiesexplicitvkGetImageDrmFormatModifierPropertiesEXTimage must have been created with tiling equal to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameterYNegativeImageDrm.GetImageDrmFormatModifierPropertiesimplicitvkGetImageDrmFormatModifierPropertiesEXTimage must be a valid VkImage handle
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parentYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXTimage must have been created, allocated, or retrieved from device
VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameterYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXTpProperties must be a valid pointer to a VkImageDrmFormatModifierPropertiesEXT structure
VUID-vkGetImageMemoryRequirements-device-parameterYNoneimplicitvkGetImageMemoryRequirementsdevice must be a valid VkDevice handle
VUID-vkGetImageMemoryRequirements-image-01588YNegativeMemory.MemoryRequirementsexplicitvkGetImageMemoryRequirementsimage must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT flag set
VUID-vkGetImageMemoryRequirements-image-04004YNegativeAndroidHardwareBuffer.CreateImageViewexplicitvkGetImageMemoryRequirementsIf 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-08960NNoneexplicitvkGetImageMemoryRequirementsIf 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.UnknownObjectimplicitvkGetImageMemoryRequirementsimage must be a valid VkImage handle
VUID-vkGetImageMemoryRequirements-image-parentYNoneimplicitvkGetImageMemoryRequirementsimage must have been created, allocated, or retrieved from device
VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetImageMemoryRequirementspMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure
VUID-vkGetImageMemoryRequirements2-device-parameterYNoneimplicitvkGetImageMemoryRequirements2device must be a valid VkDevice handle
VUID-vkGetImageMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetImageMemoryRequirements2pInfo must be a valid pointer to a valid VkImageMemoryRequirementsInfo2 structure
VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameterYNoneimplicitvkGetImageMemoryRequirements2pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076YNegativeDescriptorBuffer.NotEnabledGetImageOpaqueCaptureDescriptorDataEXTexplicitvkGetImageOpaqueCaptureDescriptorDataEXTThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-08078YNoneexplicitvkGetImageOpaqueCaptureDescriptorDataEXTIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXTdevice must be a valid VkDevice handle
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-08077YNoneexplicitvkGetImageOpaqueCaptureDescriptorDataEXTpData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXTpData must be a pointer value
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXTpInfo must be a valid pointer to a valid VkImageCaptureDescriptorDataInfoEXT structure
VUID-vkGetImageSparseMemoryRequirements-device-parameterYNoneimplicitvkGetImageSparseMemoryRequirementsdevice must be a valid VkDevice handle
VUID-vkGetImageSparseMemoryRequirements-image-parameterYNoneimplicitvkGetImageSparseMemoryRequirementsimage must be a valid VkImage handle
VUID-vkGetImageSparseMemoryRequirements-image-parentYNoneimplicitvkGetImageSparseMemoryRequirementsimage must have been created, allocated, or retrieved from device
VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameterYNoneimplicitvkGetImageSparseMemoryRequirementspSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameterYNoneimplicitvkGetImageSparseMemoryRequirementsIf 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-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2device must be a valid VkDevice handle
VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2pInfo must be a valid pointer to a valid VkImageSparseMemoryRequirementsInfo2 structure
VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2If 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.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutThe arrayLayer member of pSubresource must be less than the arrayLayers specified in image
VUID-vkGetImageSubresourceLayout-aspectMask-00997YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutThe aspectMask member of pSubresource must only have a single bit set
VUID-vkGetImageSubresourceLayout-device-parameterYNoneimplicitvkGetImageSubresourceLayoutdevice must be a valid VkDevice handle
VUID-vkGetImageSubresourceLayout-format-04462YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutIf format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkGetImageSubresourceLayout-format-04463YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutIf format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkGetImageSubresourceLayout-format-04464YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutIf 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.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutIf 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.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutimage must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-vkGetImageSubresourceLayout-image-09432YNegativeAndroidHardwareBuffer.FetchUnboundImageInfoexplicitvkGetImageSubresourceLayoutIf 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-parameterYNoneimplicitvkGetImageSubresourceLayoutimage must be a valid VkImage handle
VUID-vkGetImageSubresourceLayout-image-parentYNoneimplicitvkGetImageSubresourceLayoutimage must have been created, allocated, or retrieved from device
VUID-vkGetImageSubresourceLayout-mipLevel-01716YNegativeImage.GetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutThe mipLevel member of pSubresource must be less than the mipLevels specified in image
VUID-vkGetImageSubresourceLayout-pLayout-parameterYNoneimplicitvkGetImageSubresourceLayoutpLayout must be a valid pointer to a VkSubresourceLayout structure
VUID-vkGetImageSubresourceLayout-pSubresource-parameterYNoneimplicitvkGetImageSubresourceLayoutpSubresource must be a valid pointer to a valid VkImageSubresource structure
VUID-vkGetImageSubresourceLayout-tiling-08717YNegativeYcbcr.MultiplaneImageLayoutAspectFlagsexplicitvkGetImageSubresourceLayoutIf 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.GetImageSubresourceLayoutPlaneexplicitvkGetImageSubresourceLayoutIf 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.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRThe arrayLayer member of pSubresource must be less than the arrayLayers specified in image
VUID-vkGetImageSubresourceLayout2KHR-aspectMask-00997YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRThe aspectMask member of pSubresource must only have a single bit set
VUID-vkGetImageSubresourceLayout2KHR-device-parameterYNoneimplicitvkGetImageSubresourceLayout2KHRdevice must be a valid VkDevice handle
VUID-vkGetImageSubresourceLayout2KHR-format-04462YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRIf format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkGetImageSubresourceLayout2KHR-format-04463YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRIf format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkGetImageSubresourceLayout2KHR-format-04464YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRIf 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.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRIf 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-09434YNoneexplicitvkGetImageSubresourceLayout2KHRIf 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-parameterYNoneimplicitvkGetImageSubresourceLayout2KHRimage must be a valid VkImage handle
VUID-vkGetImageSubresourceLayout2KHR-image-parentYNoneimplicitvkGetImageSubresourceLayout2KHRimage must have been created, allocated, or retrieved from device
VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716YNegativeImage.GetImageSubresourceLayout2Maintenance5, NegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRThe mipLevel member of pSubresource must be less than the mipLevels specified in image
VUID-vkGetImageSubresourceLayout2KHR-pLayout-parameterYNoneimplicitvkGetImageSubresourceLayout2KHRpLayout must be a valid pointer to a VkSubresourceLayout2KHR structure
VUID-vkGetImageSubresourceLayout2KHR-pSubresource-parameterYNoneimplicitvkGetImageSubresourceLayout2KHRpSubresource must be a valid pointer to a valid VkImageSubresource2KHR structure
VUID-vkGetImageSubresourceLayout2KHR-tiling-08717YNegativeImage.ImageCompressionControlexplicitvkGetImageSubresourceLayout2KHRIf 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-09435YNoneexplicitvkGetImageSubresourceLayout2KHRIf 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-parameterYNoneimplicitvkGetImageViewAddressNVXdevice must be a valid VkDevice handle
VUID-vkGetImageViewAddressNVX-imageView-parameterYNoneimplicitvkGetImageViewAddressNVXimageView must be a valid VkImageView handle
VUID-vkGetImageViewAddressNVX-imageView-parentYNoneimplicitvkGetImageViewAddressNVXimageView must have been created, allocated, or retrieved from device
VUID-vkGetImageViewAddressNVX-pProperties-parameterYNoneimplicitvkGetImageViewAddressNVXpProperties must be a valid pointer to a VkImageViewAddressPropertiesNVX structure
VUID-vkGetImageViewHandleNVX-device-parameterYNoneimplicitvkGetImageViewHandleNVXdevice must be a valid VkDevice handle
VUID-vkGetImageViewHandleNVX-pInfo-parameterYNoneimplicitvkGetImageViewHandleNVXpInfo must be a valid pointer to a valid VkImageViewHandleInfoNVX structure
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080YNegativeDescriptorBuffer.NotEnabledGetImageViewOpaqueCaptureDescriptorDataEXTexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-08082YNoneexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTdevice must be a valid VkDevice handle
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-08081YNoneexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTpData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageViewCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTpData must be a pointer value
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXTpInfo must be a valid pointer to a valid VkImageViewCaptureDescriptorDataInfoEXT structure
VUID-vkGetInstanceProcAddr-instance-parameterYNoneimplicitvkGetInstanceProcAddrIf instance is not NULL, instance must be a valid VkInstance handle
VUID-vkGetInstanceProcAddr-pName-parameterYNoneimplicitvkGetInstanceProcAddrpName must be a null-terminated UTF-8 string
VUID-vkGetLatencyTimingsNV-device-parameterYNoneimplicitvkGetLatencyTimingsNVdevice must be a valid VkDevice handle
VUID-vkGetLatencyTimingsNV-pLatencyMarkerInfo-parameterYNoneimplicitvkGetLatencyTimingsNVpLatencyMarkerInfo must be a valid pointer to a VkGetLatencyMarkerInfoNV structure
VUID-vkGetLatencyTimingsNV-swapchain-parameterYNoneimplicitvkGetLatencyTimingsNVswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetLatencyTimingsNV-swapchain-parentYNoneimplicitvkGetLatencyTimingsNVswapchain must have been created, allocated, or retrieved from device
VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROIDdevice must be a valid VkDevice handle
VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROIDpBuffer must be a valid pointer to a valid pointer to an AHardwareBuffer value
VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROIDpInfo must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure
VUID-vkGetMemoryFdKHR-device-parameterYNoneimplicitvkGetMemoryFdKHRdevice must be a valid VkDevice handle
VUID-vkGetMemoryFdKHR-pFd-parameterYNoneimplicitvkGetMemoryFdKHRpFd must be a valid pointer to an int value
VUID-vkGetMemoryFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetMemoryFdKHRpGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure
VUID-vkGetMemoryFdPropertiesKHR-device-parameterYNoneimplicitvkGetMemoryFdPropertiesKHRdevice must be a valid VkDevice handle
VUID-vkGetMemoryFdPropertiesKHR-fd-00673YNegativeExternalMemorySync.FdMemoryHandlePropertiesexplicitvkGetMemoryFdPropertiesKHRfd must point to a valid POSIX file descriptor memory handle
VUID-vkGetMemoryFdPropertiesKHR-handleType-00674YNegativeExternalMemorySync.FdMemoryHandlePropertiesexplicitvkGetMemoryFdPropertiesKHRhandleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT
VUID-vkGetMemoryFdPropertiesKHR-handleType-parameterYNoneimplicitvkGetMemoryFdPropertiesKHRhandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameterYNoneimplicitvkGetMemoryFdPropertiesKHRpMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure
VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXTdevice must be a valid VkDevice handle
VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752YNegativeExternalMemorySync.GetMemoryHostHandleTypeexplicitvkGetMemoryHostPointerPropertiesEXThandleType 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-01754NNoneexplicitvkGetMemoryHostPointerPropertiesEXTIf handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to host memory
VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755NNoneexplicitvkGetMemoryHostPointerPropertiesEXTIf 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-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXThandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753YNegativeExternalMemorySync.GetMemoryHostAlignmentexplicitvkGetMemoryHostPointerPropertiesEXTpHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment
VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXTpHostPointer must be a pointer value
VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXTpMemoryHostPointerProperties must be a valid pointer to a VkMemoryHostPointerPropertiesEXT structure
VUID-vkGetMemoryRemoteAddressNV-device-parameterYNoneimplicitvkGetMemoryRemoteAddressNVdevice must be a valid VkDevice handle
VUID-vkGetMemoryRemoteAddressNV-pAddress-parameterYNoneimplicitvkGetMemoryRemoteAddressNVpAddress must be a valid pointer to a VkRemoteAddressNV value
VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameterYNoneimplicitvkGetMemoryRemoteAddressNVpMemoryGetRemoteAddressInfo must be a valid pointer to a valid VkMemoryGetRemoteAddressInfoNV structure
VUID-vkGetMemoryWin32HandleKHR-device-parameterYNoneimplicitvkGetMemoryWin32HandleKHRdevice must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetMemoryWin32HandleKHRpGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure
VUID-vkGetMemoryWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetMemoryWin32HandleKHRpHandle must be a valid pointer to a HANDLE value
VUID-vkGetMemoryWin32HandleNV-device-parameterYNoneimplicitvkGetMemoryWin32HandleNVdevice must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandleNV-handleType-01326NNoneexplicitvkGetMemoryWin32HandleNVhandleType must be a flag specified in VkExportMemoryAllocateInfoNV::handleTypes when allocating memory
VUID-vkGetMemoryWin32HandleNV-handleType-parameterYNoneimplicitvkGetMemoryWin32HandleNVhandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmaskYNoneimplicitvkGetMemoryWin32HandleNVhandleType must not be 0
VUID-vkGetMemoryWin32HandleNV-memory-parameterYNoneimplicitvkGetMemoryWin32HandleNVmemory must be a valid VkDeviceMemory handle
VUID-vkGetMemoryWin32HandleNV-memory-parentYNoneimplicitvkGetMemoryWin32HandleNVmemory must have been created, allocated, or retrieved from device
VUID-vkGetMemoryWin32HandleNV-pHandle-parameterYNoneimplicitvkGetMemoryWin32HandleNVpHandle must be a valid pointer to a HANDLE value
VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHRdevice must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665YNegativeExternalMemorySync.Win32MemoryHandlePropertiesexplicitvkGetMemoryWin32HandlePropertiesKHRhandle must point to a valid Windows memory handle
VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666YNegativeExternalMemorySync.Win32MemoryHandlePropertiesexplicitvkGetMemoryWin32HandlePropertiesKHRhandleType must not be one of the handle types defined as opaque
VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHRhandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHRpMemoryWin32HandleProperties must be a valid pointer to a VkMemoryWin32HandlePropertiesKHR structure
VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIAdevice must be a valid VkDevice handle
VUID-vkGetMemoryZirconHandleFUCHSIA-pGetZirconHandleInfo-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIApGetZirconHandleInfo must be a valid pointer to a valid VkMemoryGetZirconHandleInfoFUCHSIA structure
VUID-vkGetMemoryZirconHandleFUCHSIA-pZirconHandle-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIApZirconHandle must be a valid pointer to a zx_handle_t value
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIAdevice must be a valid VkDevice handle
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773NNoneexplicitvkGetMemoryZirconHandlePropertiesFUCHSIAhandleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIAhandleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-pMemoryZirconHandleProperties-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIApMemoryZirconHandleProperties must be a valid pointer to a VkMemoryZirconHandlePropertiesFUCHSIA structure
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774NNoneexplicitvkGetMemoryZirconHandlePropertiesFUCHSIAzirconHandle must reference a valid VMO
VUID-vkGetMicromapBuildSizesEXT-buildType-parameterYNoneimplicitvkGetMicromapBuildSizesEXTbuildType must be a valid VkAccelerationStructureBuildTypeKHR value
VUID-vkGetMicromapBuildSizesEXT-device-07440NNoneexplicitvkGetMicromapBuildSizesEXTIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetMicromapBuildSizesEXT-device-parameterYNoneimplicitvkGetMicromapBuildSizesEXTdevice must be a valid VkDevice handle
VUID-vkGetMicromapBuildSizesEXT-dstMicromap-09180NNoneexplicitvkGetMicromapBuildSizesEXTVkMicromapBuildInfoEXT::dstMicromap must have been created from device
VUID-vkGetMicromapBuildSizesEXT-micromap-07439NNoneexplicitvkGetMicromapBuildSizesEXTThe micromap feature must be enabled
VUID-vkGetMicromapBuildSizesEXT-pBuildInfo-parameterYNoneimplicitvkGetMicromapBuildSizesEXTpBuildInfo must be a valid pointer to a valid VkMicromapBuildInfoEXT structure
VUID-vkGetMicromapBuildSizesEXT-pSizeInfo-parameterYNoneimplicitvkGetMicromapBuildSizesEXTpSizeInfo must be a valid pointer to a VkMicromapBuildSizesInfoEXT structure
VUID-vkGetPastPresentationTimingGOOGLE-device-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLEdevice must be a valid VkDevice handle
VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLEpPresentationTimingCount must be a valid pointer to a uint32_t value
VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLEIf 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-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLEswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parentYNoneimplicitvkGetPastPresentationTimingGOOGLEswapchain must have been created, allocated, or retrieved from device
VUID-vkGetPerformanceParameterINTEL-device-parameterYNoneimplicitvkGetPerformanceParameterINTELdevice must be a valid VkDevice handle
VUID-vkGetPerformanceParameterINTEL-pValue-parameterYNoneimplicitvkGetPerformanceParameterINTELpValue must be a valid pointer to a VkPerformanceValueINTEL structure
VUID-vkGetPerformanceParameterINTEL-parameter-parameterYNoneimplicitvkGetPerformanceParameterINTELparameter must be a valid VkPerformanceParameterTypeINTEL value
VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomainCount-parameterYNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsKHRpTimeDomainCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomains-parameterYNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesKHRpPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNVIf 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-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNVpPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNVphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameterYNoneimplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXTdfb must be a valid pointer to an IDirectFB value
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119NNoneexplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXTqueueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHRpPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHRpPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHRpPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPropertiesKHRIf 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-parameterYNegativeWsi.GetPhysicalDeviceDisplayPropertiesNullimplicitvkGetPhysicalDeviceDisplayPropertiesKHRpPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPropertiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferPropertiespExternalBufferInfo must be a valid pointer to a valid VkPhysicalDeviceExternalBufferInfo structure
VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferPropertiespExternalBufferProperties must be a valid pointer to a VkExternalBufferProperties structure
VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalFencePropertiespExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure
VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalFencePropertiespExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure
VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalFencePropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-07721NNoneexplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVexternalHandleType must not have more than one bit set
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVexternalHandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVflags must be a valid combination of VkImageCreateFlagBits values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-pExternalImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVpExternalImageFormatProperties must be a valid pointer to a VkExternalImageFormatPropertiesNV structure
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-tiling-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVtiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-type-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVtype must be a valid VkImageType value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVusage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmaskYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNVusage must not be 0
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphorePropertiespExternalSemaphoreInfo must be a valid pointer to a valid VkPhysicalDeviceExternalSemaphoreInfo structure
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphorePropertiespExternalSemaphoreProperties must be a valid pointer to a VkExternalSemaphoreProperties structure
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphorePropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameterYVkLayerTest.RequiredParameterimplicitvkGetPhysicalDeviceFeaturespFeatures must be a valid pointer to a VkPhysicalDeviceFeatures structure
VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFeaturesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFeatures2-pFeatures-parameterYNoneimplicitvkGetPhysicalDeviceFeatures2pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures2 structure
VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFeatures2physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFormatProperties-format-parameterYVkLayerTest.UnrecognizedEnumOutOfRangeimplicitvkGetPhysicalDeviceFormatPropertiesformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceFormatPropertiespFormatProperties must be a valid pointer to a VkFormatProperties structure
VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFormatPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFormatProperties2-format-parameterYVkLayerTest.UnrecognizedEnumOutOfRange2implicitvkGetPhysicalDeviceFormatProperties2format must be a valid VkFormat value
VUID-vkGetPhysicalDeviceFormatProperties2-pFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceFormatProperties2pFormatProperties must be a valid pointer to a VkFormatProperties2 structure
VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFormatProperties2physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRateCount-parameterYNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHRpFragmentShadingRateCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRates-parameterYNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameterYVkLayerTest.GetPhysicalDeviceImageFormatPropertiesFlagsimplicitvkGetPhysicalDeviceImageFormatPropertiesflags must be a valid combination of VkImageCreateFlagBits values
VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiesformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiespImageFormatProperties must be a valid pointer to a VkImageFormatProperties structure
VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248YNegativeImageDrm.BasicexplicitvkGetPhysicalDeviceImageFormatPropertiestiling must not be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. (Use vkGetPhysicalDeviceImageFormatProperties2 instead)
VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiestiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiestype must be a valid VkImageType value
VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameterYVkLayerTest.UnrecognizedFlagOutOfRange, VkLayerTest.UnrecognizedValueBadMaskimplicitvkGetPhysicalDeviceImageFormatPropertiesusage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmaskYVkLayerTest.GetPhysicalDeviceImageFormatPropertiesFlagsimplicitvkGetPhysicalDeviceImageFormatPropertiesusage must not be 0
VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2pImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure
VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2pImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure
VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868YNegativeAndroidHardwareBuffer.PhysDevImageFormatProp2explicitvkGetPhysicalDeviceImageFormatProperties2If 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-09004YNoneexplicitvkGetPhysicalDeviceImageFormatProperties2If the pNext chain of pImageFormatProperties includes a VkHostImageCopyDevicePerformanceQueryEXT structure, pImageFormatInfo->usage must contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameterYNoneimplicitvkGetPhysicalDeviceMemoryPropertiespMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure
VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMemoryPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameterYNoneimplicitvkGetPhysicalDeviceMemoryProperties2pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties2 structure
VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMemoryProperties2physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-pMultisampleProperties-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXTpMultisampleProperties must be a valid pointer to a VkMultisamplePropertiesEXT structure
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXTsamples must be a valid VkSampleCountFlagBits value
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pFormatCount-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNVpFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNVIf 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-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNVpOpticalFlowImageFormatInfo must be a valid pointer to a valid VkOpticalFlowImageFormatInfoNV structure
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNVphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparentYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRBoth of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRpRectCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRIf 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-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06211YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDevicePresentRectanglesKHRsurface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06523NNoneexplicitvkGetPhysicalDevicePresentRectanglesKHRsurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHRsurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceProperties-pProperties-parameterYNoneimplicitvkGetPhysicalDevicePropertiespProperties must be a valid pointer to a VkPhysicalDeviceProperties structure
VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDevicePropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceProperties2-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceProperties2pProperties must be a valid pointer to a VkPhysicalDeviceProperties2 structure
VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceProperties2physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pNumPasses-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRpNumPasses must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRpPerformanceQueryCreateInfo must be a valid pointer to a valid VkQueryPoolPerformanceCreateInfoKHR structure
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPropertiesIf 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-parameterYVkLayerTest.RequiredParameterimplicitvkGetPhysicalDeviceQueueFamilyPropertiespQueueFamilyPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2If 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-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2pQueueFamilyPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceScreenPresentationSupportQNXphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743YNoneexplicitvkGetPhysicalDeviceScreenPresentationSupportQNXqueueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameterYNoneimplicitvkGetPhysicalDeviceScreenPresentationSupportQNXwindow must be a valid pointer to a _screen_window value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiesformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiesIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiespPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094NNoneexplicitvkGetPhysicalDeviceSparseImageFormatPropertiessamples 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
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiessamples must be a valid VkSampleCountFlagBits value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiestiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiestype must be a valid VkImageType value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiesusage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmaskYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiesusage must not be 0
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2pFormatInfo must be a valid pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2 structure
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2If 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-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameterYNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVpCombinationCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameterYNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparentYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTBoth of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTpSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2EXT structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06211YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTsurface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06523NNoneexplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTsurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXTsurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671YNegativeWsi.PhysicalDeviceSurfaceCapabilitiesexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRIf 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.SwapchainMaintenance1ExtensionCapsexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRIf 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.SwapchainMaintenance1ExtensionCapsexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRIf 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.SwapchainMaintenance1ExtensionCapsexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRIf a VkSurfacePresentModeCompatibilityEXT structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-07779YNegativeWsi.SwapchainMaintenance1ExtensionCapsexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRIf a VkSurfacePresentScalingCapabilitiesEXT structure is included in the pNext chain of pSurfaceCapabilities, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRpSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2KHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06521YNoneexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRIf the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06522YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRpSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparentYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRBoth of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRpSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06211YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRsurface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06523NNoneexplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRsurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHRsurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHRpSurfaceFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHRIf 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-06521YNoneexplicitvkGetPhysicalDeviceSurfaceFormats2KHRIf the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceFormats2KHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHRpSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparentYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRBoth 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRpSurfaceFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06524YNoneexplicitvkGetPhysicalDeviceSurfaceFormatsKHRIf the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06525YNegativeWsi.SurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceFormatsKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHRIf surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXTpPresentModeCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXTIf 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-06521YNoneexplicitvkGetPhysicalDeviceSurfacePresentModes2EXTIf the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522YNoneexplicitvkGetPhysicalDeviceSurfacePresentModes2EXTIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXTpSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparentYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRBoth 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRpPresentModeCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06524YNoneexplicitvkGetPhysicalDeviceSurfacePresentModesKHRIf the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525YNoneexplicitvkGetPhysicalDeviceSurfacePresentModesKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHRIf surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparentYNegativeParent.Instance_PhysicalDeviceAndSurfaceimplicitvkGetPhysicalDeviceSurfaceSupportKHRBoth of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHRpSupported must be a valid pointer to a VkBool32 value
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269YNoneexplicitvkGetPhysicalDeviceSurfaceSupportKHRqueueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHRsurface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameterYNoneimplicitvkGetPhysicalDeviceToolPropertiespToolCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameterYNoneimplicitvkGetPhysicalDeviceToolPropertiesIf 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-parameterYNoneimplicitvkGetPhysicalDeviceToolPropertiesphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHRpCapabilities must be a valid pointer to a VkVideoCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07183YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRIf pVideoProfile->videoCodecOperation specifies a decode operation, then the pNext chain of pCapabilities must include a VkVideoDecodeCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07184YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRIf 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.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRIf 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.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRIf pVideoProfile->videoCodecOperation specifies an encode operation, then the pNext chain of pCapabilities must include a VkVideoEncodeCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-07187YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRIf 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.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRIf 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-09257YNegativeVideo.CapabilityQueryMissingChainexplicitvkGetPhysicalDeviceVideoCapabilitiesKHRIf pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeAV1CapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHRpVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-08257YNegativeVideo.EncodeQualityLevelPropsMissingChainexplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRIf 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.EncodeQualityLevelPropsMissingChainexplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRpQualityLevelInfo must be a valid pointer to a valid VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR structure
VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelProperties-parameterYNoneimplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRpQualityLevelProperties must be a valid pointer to a VkVideoEncodeQualityLevelPropertiesKHR structure
VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pNext-06812YNegativeVideo.VideoFormatQueryMissingProfileexplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRThe pNext chain of pVideoFormatInfo must include a VkVideoProfileListInfoKHR structure with profileCount greater than 0
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRpVideoFormatInfo must be a valid pointer to a valid VkPhysicalDeviceVideoFormatInfoKHR structure
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRIf 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-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRpVideoFormatPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameterYNoneimplicitvkGetPhysicalDeviceWaylandPresentationSupportKHRdisplay must be a valid pointer to a wl_display value
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceWaylandPresentationSupportKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306YNoneexplicitvkGetPhysicalDeviceWaylandPresentationSupportKHRqueueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceWin32PresentationSupportKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309YNoneexplicitvkGetPhysicalDeviceWin32PresentationSupportKHRqueueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameterYNoneimplicitvkGetPhysicalDeviceXcbPresentationSupportKHRconnection must be a valid pointer to an xcb_connection_t value
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceXcbPresentationSupportKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312YNoneexplicitvkGetPhysicalDeviceXcbPresentationSupportKHRqueueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameterYNoneimplicitvkGetPhysicalDeviceXlibPresentationSupportKHRdpy must be a valid pointer to a Display value
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceXlibPresentationSupportKHRphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315YNoneexplicitvkGetPhysicalDeviceXlibPresentationSupportKHRqueueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPipelineBinaryDataKHR-device-parameterYNoneimplicitvkGetPipelineBinaryDataKHRdevice must be a valid VkDevice handle
VUID-vkGetPipelineBinaryDataKHR-pInfo-parameterYNoneimplicitvkGetPipelineBinaryDataKHRpInfo must be a valid pointer to a valid VkPipelineBinaryDataInfoKHR structure
VUID-vkGetPipelineBinaryDataKHR-pPipelineBinaryData-parameterYNoneimplicitvkGetPipelineBinaryDataKHRIf the value referenced by pPipelineBinaryDataSize is not 0, and pPipelineBinaryData is not NULL, pPipelineBinaryData must be a valid pointer to an array of pPipelineBinaryDataSize bytes
VUID-vkGetPipelineBinaryDataKHR-pPipelineBinaryDataSize-parameterYNoneimplicitvkGetPipelineBinaryDataKHRpPipelineBinaryDataSize must be a valid pointer to a size_t value
VUID-vkGetPipelineBinaryDataKHR-pPipelineBinaryKey-parameterYNoneimplicitvkGetPipelineBinaryDataKHRpPipelineBinaryKey must be a valid pointer to a VkPipelineBinaryKeyKHR structure
VUID-vkGetPipelineCacheData-device-parameterYNoneimplicitvkGetPipelineCacheDatadevice must be a valid VkDevice handle
VUID-vkGetPipelineCacheData-pData-parameterYNoneimplicitvkGetPipelineCacheDataIf 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-parameterYNoneimplicitvkGetPipelineCacheDatapDataSize must be a valid pointer to a size_t value
VUID-vkGetPipelineCacheData-pipelineCache-parameterYNoneimplicitvkGetPipelineCacheDatapipelineCache must be a valid VkPipelineCache handle
VUID-vkGetPipelineCacheData-pipelineCache-parentYNoneimplicitvkGetPipelineCacheDatapipelineCache must have been created, allocated, or retrieved from device
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHRdevice must be a valid VkDevice handle
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHRpExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHRpInternalRepresentationCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHRIf 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.PipelineExecutableInfoexplicitvkGetPipelineExecutableInternalRepresentationsKHRThe pipeline member of pExecutableInfo must have been created with device
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableInternalRepresentationsKHRThe pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableInternalRepresentationsKHRThe pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelineExecutablePropertiesKHR-device-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHRdevice must be a valid VkDevice handle
VUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHRpExecutableCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHRpPipelineInfo must be a valid pointer to a valid VkPipelineInfoKHR structure
VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHRIf 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.PipelineExecutableInfoexplicitvkGetPipelineExecutablePropertiesKHRThe pipeline member of pPipelineInfo must have been created with device
VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutablePropertiesKHRThe pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelineExecutableStatisticsKHR-device-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHRdevice must be a valid VkDevice handle
VUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHRpExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure
VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHRpStatisticCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHRIf 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.PipelineExecutableInfoexplicitvkGetPipelineExecutableStatisticsKHRThe pipeline member of pExecutableInfo must have been created with device
VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableStatisticsKHRThe pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272YNegativePipeline.PipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableStatisticsKHRThe pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameterYNoneimplicitvkGetPipelineIndirectDeviceAddressNVdevice must be a valid VkDevice handle
VUID-vkGetPipelineIndirectDeviceAddressNV-deviceGeneratedComputePipelines-09078NNoneexplicitvkGetPipelineIndirectDeviceAddressNVThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameterYNoneimplicitvkGetPipelineIndirectDeviceAddressNVpInfo must be a valid pointer to a valid VkPipelineIndirectDeviceAddressInfoNV structure
VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameterYNoneimplicitvkGetPipelineIndirectMemoryRequirementsNVdevice must be a valid VkDevice handle
VUID-vkGetPipelineIndirectMemoryRequirementsNV-deviceGeneratedComputePipelines-09082NNoneexplicitvkGetPipelineIndirectMemoryRequirementsNVThe VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled
VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-09083NNoneexplicitvkGetPipelineIndirectMemoryRequirementsNVpCreateInfo->flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-parameterYNoneimplicitvkGetPipelineIndirectMemoryRequirementsNVpCreateInfo must be a valid pointer to a valid VkComputePipelineCreateInfo structure
VUID-vkGetPipelineIndirectMemoryRequirementsNV-pMemoryRequirements-parameterYNoneimplicitvkGetPipelineIndirectMemoryRequirementsNVpMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetPipelineKeyKHR-device-parameterYNoneimplicitvkGetPipelineKeyKHRdevice must be a valid VkDevice handle
VUID-vkGetPipelineKeyKHR-pNext-09605YNegativePipelineBinary.GetPipelineKeyexplicitvkGetPipelineKeyKHRThe pNext chain of pPipelineCreateInfo must not set VkPipelineBinaryInfoKHR::binaryCount to a value greater than 0
VUID-vkGetPipelineKeyKHR-pPipelineCreateInfo-parameterYNoneimplicitvkGetPipelineKeyKHRIf pPipelineCreateInfo is not NULL, pPipelineCreateInfo must be a valid pointer to a valid VkPipelineCreateInfoKHR structure
VUID-vkGetPipelineKeyKHR-pPipelineKey-parameterYNoneimplicitvkGetPipelineKeyKHRpPipelineKey must be a valid pointer to a VkPipelineBinaryKeyKHR structure
VUID-vkGetPipelinePropertiesEXT-None-06766YNegativePipeline.GetPipelinePropertiesEXTexplicitvkGetPipelinePropertiesEXTThe pipelinePropertiesIdentifier feature must be enabled
VUID-vkGetPipelinePropertiesEXT-device-parameterYNoneimplicitvkGetPipelinePropertiesEXTdevice must be a valid VkDevice handle
VUID-vkGetPipelinePropertiesEXT-pPipelineInfo-parameterYNoneimplicitvkGetPipelinePropertiesEXTpPipelineInfo must be a valid pointer to a valid VkPipelineInfoEXT structure
VUID-vkGetPipelinePropertiesEXT-pPipelineProperties-06739YNegativePipeline.GetPipelinePropertiesEXTexplicitvkGetPipelinePropertiesEXTpPipelineProperties must be a valid pointer to a VkPipelinePropertiesIdentifierEXT structure
VUID-vkGetPipelinePropertiesEXT-pipeline-06738NNoneexplicitvkGetPipelinePropertiesEXTThe pipeline member of pPipelineInfo must have been created with device
VUID-vkGetPrivateData-device-parameterYNoneimplicitvkGetPrivateDatadevice must be a valid VkDevice handle
VUID-vkGetPrivateData-objectHandle-09498YNegativeTooling.PrivateDataGetBadHandle, NegativeTooling.PrivateDataGetDestroyedHandleexplicitvkGetPrivateDataobjectHandle must be a valid handle to an object of type objectType
VUID-vkGetPrivateData-objectType-04018YNegativeTooling.PrivateDataGetNonDeviceexplicitvkGetPrivateDataobjectHandle must be device or a child of device
VUID-vkGetPrivateData-objectType-parameterYNoneimplicitvkGetPrivateDataobjectType must be a valid VkObjectType value
VUID-vkGetPrivateData-pData-parameterYNoneimplicitvkGetPrivateDatapData must be a valid pointer to a uint64_t value
VUID-vkGetPrivateData-privateDataSlot-parameterYNegativeTooling.PrivateDataDestroyHandleimplicitvkGetPrivateDataprivateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkGetPrivateData-privateDataSlot-parentYNoneimplicitvkGetPrivateDataprivateDataSlot must have been created, allocated, or retrieved from device
VUID-vkGetQueryPoolResults-None-09401YNegativeQuery.GetQueryPoolResultsWithoutReset, NegativeVideo.GetQueryPoolResultsVideoQueryDataSizeexplicitvkGetQueryPoolResultsAll queries used by the command must not be uninitialized
VUID-vkGetQueryPoolResults-dataSize-00817YNegativeQuery.PreciseBit, NegativeVideo.GetQueryPoolResultsVideoQueryDataSizeexplicitvkGetQueryPoolResultsdataSize must be large enough to contain the result of each query, as described here
VUID-vkGetQueryPoolResults-dataSize-arraylengthYNoneimplicitvkGetQueryPoolResultsdataSize must be greater than 0
VUID-vkGetQueryPoolResults-device-parameterYNoneimplicitvkGetQueryPoolResultsdevice must be a valid VkDevice handle
VUID-vkGetQueryPoolResults-firstQuery-09436YNegativeQuery.SizesexplicitvkGetQueryPoolResultsfirstQuery must be less than the number of queries in queryPool
VUID-vkGetQueryPoolResults-firstQuery-09437YNegativeQuery.SizesexplicitvkGetQueryPoolResultsThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkGetQueryPoolResults-flags-00815YNegativeQuery.StrideexplicitvkGetQueryPoolResultsIf VK_QUERY_RESULT_64_BIT is set in flags then pData and stride must be multiples of 8
VUID-vkGetQueryPoolResults-flags-02828YNegativeQuery.Stride, NegativeQuery.TestGetQueryPoolResultsDataAndStrideexplicitvkGetQueryPoolResultsIf 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.GetQueryPoolResultsStatusBitexplicitvkGetQueryPoolResultsIf flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
VUID-vkGetQueryPoolResults-flags-parameterYNoneimplicitvkGetQueryPoolResultsflags must be a valid combination of VkQueryResultFlagBits values
VUID-vkGetQueryPoolResults-pData-parameterYNoneimplicitvkGetQueryPoolResultspData must be a valid pointer to an array of dataSize bytes
VUID-vkGetQueryPoolResults-queryCount-09438YNegativeQuery.GetResultsStrideexplicitvkGetQueryPoolResultsIf queryCount is greater than 1, stride must not be zero
VUID-vkGetQueryPoolResults-queryPool-parameterYNegativeQuery.GetQueryPoolResultsWithoutQueryPoolimplicitvkGetQueryPoolResultsqueryPool must be a valid VkQueryPool handle
VUID-vkGetQueryPoolResults-queryPool-parentYNoneimplicitvkGetQueryPoolResultsqueryPool must have been created, allocated, or retrieved from device
VUID-vkGetQueryPoolResults-queryType-03229YNegativeQuery.PerformanceIncompletePassesexplicitvkGetQueryPoolResultsIf 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.PerformanceIncompletePassesexplicitvkGetQueryPoolResultsIf 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.PoolPartialTimestampexplicitvkGetQueryPoolResultsIf the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT
VUID-vkGetQueryPoolResults-queryType-09440YNegativeQuery.PerformanceIncompletePassesexplicitvkGetQueryPoolResultsIf 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.PerformanceIncompletePassesexplicitvkGetQueryPoolResultsIf 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.GetQueryPoolResultsStatusBitexplicitvkGetQueryPoolResultsIf 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-08993NNoneexplicitvkGetQueryPoolResultsIf 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-parameterYNoneimplicitvkGetQueueCheckpointData2NVIf 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-parameterYNoneimplicitvkGetQueueCheckpointData2NVpCheckpointDataCount must be a valid pointer to a uint32_t value
VUID-vkGetQueueCheckpointData2NV-queue-03892NNoneexplicitvkGetQueueCheckpointData2NVThe device that queue belongs to must be in the lost state
VUID-vkGetQueueCheckpointData2NV-queue-parameterYNoneimplicitvkGetQueueCheckpointData2NVqueue must be a valid VkQueue handle
VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameterYNoneimplicitvkGetQueueCheckpointDataNVIf 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-parameterYNoneimplicitvkGetQueueCheckpointDataNVpCheckpointDataCount must be a valid pointer to a uint32_t value
VUID-vkGetQueueCheckpointDataNV-queue-02025NNoneexplicitvkGetQueueCheckpointDataNVThe device that queue belongs to must be in the lost state
VUID-vkGetQueueCheckpointDataNV-queue-parameterYNoneimplicitvkGetQueueCheckpointDataNVqueue must be a valid VkQueue handle
VUID-vkGetRandROutputDisplayEXT-dpy-parameterYNoneimplicitvkGetRandROutputDisplayEXTdpy must be a valid pointer to a Display value
VUID-vkGetRandROutputDisplayEXT-pDisplay-parameterYNoneimplicitvkGetRandROutputDisplayEXTpDisplay must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameterYNoneimplicitvkGetRandROutputDisplayEXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484YNegativeRayTracingPipeline.GetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRdataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleCaptureReplaySize × groupCount
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylengthYNegativeRayTracingPipeline.GetCaptureReplayShaderGroupHandlesKHRimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRdataSize must be greater than 0
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRdevice must be a valid VkDevice handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483YNegativeRayTracingPipeline.GetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRThe sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051YNegativeRayTracingPipeline.GetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRfirstGroup must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRpData must be a valid pointer to an array of dataSize bytes
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-03607YNoneexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRpipeline 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.PipelineTypeCaptureReplayexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRpipeline must be a ray tracing pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-07829YNegativeRayTracingPipeline.LibraryGroupHandlesEXTexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRIf the pipelineLibraryGroupHandles feature is not enabled, pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRpipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parentYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRpipeline must have been created, allocated, or retrieved from device
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03606YNoneexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHRVkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled to call this function
VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420YNoneexplicitvkGetRayTracingShaderGroupHandlesKHRdataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleSize × groupCount
VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylengthYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRdataSize must be greater than 0
VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRdevice must be a valid VkDevice handle
VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-02419YNoneexplicitvkGetRayTracingShaderGroupHandlesKHRThe sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050YNoneexplicitvkGetRayTracingShaderGroupHandlesKHRfirstGroup must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-pData-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRpData must be a valid pointer to an array of dataSize bytes
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-04619YNegativeRayTracingPipeline.PipelineTypeGroupHandlesexplicitvkGetRayTracingShaderGroupHandlesKHRpipeline must be a ray tracing pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-07828YNegativeRayTracingPipeline.LibraryGroupHandlesEXTexplicitvkGetRayTracingShaderGroupHandlesKHRIf the pipelineLibraryGroupHandles feature is not enabled, pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRpipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parentYNoneimplicitvkGetRayTracingShaderGroupHandlesKHRpipeline must have been created, allocated, or retrieved from device
VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHRdevice must be a valid VkDevice handle
VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608YNegativeRayTracingPipeline.GetRayTracingShaderGroupStackSizeUnusedGroupexplicitvkGetRayTracingShaderGroupStackSizeKHRThe value of group must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609YNegativeRayTracingPipeline.GetRayTracingShaderGroupStackSizeUnusedGroupexplicitvkGetRayTracingShaderGroupStackSizeKHRThe shader identified by groupShader in group must not be VK_SHADER_UNUSED_KHR
VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHRgroupShader must be a valid VkShaderGroupShaderKHR value
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622YNegativeRayTracingPipeline.PipelineTypeGroupStackSizeexplicitvkGetRayTracingShaderGroupStackSizeKHRpipeline must be a ray tracing pipeline
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHRpipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parentYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHRpipeline must have been created, allocated, or retrieved from device
VUID-vkGetRefreshCycleDurationGOOGLE-device-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLEdevice must be a valid VkDevice handle
VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLEpDisplayTimingProperties must be a valid pointer to a VkRefreshCycleDurationGOOGLE structure
VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLEswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parentYNoneimplicitvkGetRefreshCycleDurationGOOGLEswapchain must have been created, allocated, or retrieved from device
VUID-vkGetRenderAreaGranularity-device-parameterYNoneimplicitvkGetRenderAreaGranularitydevice must be a valid VkDevice handle
VUID-vkGetRenderAreaGranularity-pGranularity-parameterYNoneimplicitvkGetRenderAreaGranularitypGranularity must be a valid pointer to a VkExtent2D structure
VUID-vkGetRenderAreaGranularity-renderPass-parameterYNoneimplicitvkGetRenderAreaGranularityrenderPass must be a valid VkRenderPass handle
VUID-vkGetRenderAreaGranularity-renderPass-parentYNoneimplicitvkGetRenderAreaGranularityrenderPass must have been created, allocated, or retrieved from device
VUID-vkGetRenderingAreaGranularityKHR-device-parameterYNoneimplicitvkGetRenderingAreaGranularityKHRdevice must be a valid VkDevice handle
VUID-vkGetRenderingAreaGranularityKHR-pGranularity-parameterYNoneimplicitvkGetRenderingAreaGranularityKHRpGranularity must be a valid pointer to a VkExtent2D structure
VUID-vkGetRenderingAreaGranularityKHR-pRenderingAreaInfo-parameterYNoneimplicitvkGetRenderingAreaGranularityKHRpRenderingAreaInfo must be a valid pointer to a valid VkRenderingAreaInfoKHR structure
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084YNegativeDescriptorBuffer.NotEnabledGetSamplerOpaqueCaptureDescriptorDataEXTexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTThe descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-08086YNoneexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTIf device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTdevice must be a valid VkDevice handle
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-08085YNoneexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTpData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTpData must be a pointer value
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXTpInfo must be a valid pointer to a valid VkSamplerCaptureDescriptorDataInfoEXT structure
VUID-vkGetScreenBufferPropertiesQNX-buffer-08968NNoneexplicitvkGetScreenBufferPropertiesQNXbuffer must be a valid QNX Screen buffer
VUID-vkGetScreenBufferPropertiesQNX-buffer-parameterYNoneimplicitvkGetScreenBufferPropertiesQNXbuffer must be a valid pointer to a valid _screen_buffer value
VUID-vkGetScreenBufferPropertiesQNX-device-parameterYNoneimplicitvkGetScreenBufferPropertiesQNXdevice must be a valid VkDevice handle
VUID-vkGetScreenBufferPropertiesQNX-pProperties-parameterYNoneimplicitvkGetScreenBufferPropertiesQNXpProperties must be a valid pointer to a VkScreenBufferPropertiesQNX structure
VUID-vkGetSemaphoreCounterValue-device-parameterYNoneimplicitvkGetSemaphoreCounterValuedevice must be a valid VkDevice handle
VUID-vkGetSemaphoreCounterValue-pValue-parameterYNoneimplicitvkGetSemaphoreCounterValuepValue must be a valid pointer to a uint64_t value
VUID-vkGetSemaphoreCounterValue-semaphore-03255YNegativeSyncObject.SemaphoreCounterTypeexplicitvkGetSemaphoreCounterValuesemaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-vkGetSemaphoreCounterValue-semaphore-parameterYNoneimplicitvkGetSemaphoreCounterValuesemaphore must be a valid VkSemaphore handle
VUID-vkGetSemaphoreCounterValue-semaphore-parentYNoneimplicitvkGetSemaphoreCounterValuesemaphore must have been created, allocated, or retrieved from device
VUID-vkGetSemaphoreFdKHR-device-parameterYNoneimplicitvkGetSemaphoreFdKHRdevice must be a valid VkDevice handle
VUID-vkGetSemaphoreFdKHR-pFd-parameterYNoneimplicitvkGetSemaphoreFdKHRpFd must be a valid pointer to an int value
VUID-vkGetSemaphoreFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetSemaphoreFdKHRpGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure
VUID-vkGetSemaphoreWin32HandleKHR-device-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHRdevice must be a valid VkDevice handle
VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHRpGetWin32HandleInfo must be a valid pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure
VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHRpHandle must be a valid pointer to a HANDLE value
VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIAdevice must be a valid VkDevice handle
VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIApGetZirconHandleInfo must be a valid pointer to a valid VkSemaphoreGetZirconHandleInfoFUCHSIA structure
VUID-vkGetSemaphoreZirconHandleFUCHSIA-pZirconHandle-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIApZirconHandle must be a valid pointer to a zx_handle_t value
VUID-vkGetShaderBinaryDataEXT-None-08461YNoneexplicitvkGetShaderBinaryDataEXTThe shaderObject feature must be enabled
VUID-vkGetShaderBinaryDataEXT-None-08499YNegativeShaderObject.GetShaderBinaryDataInvalidPointerexplicitvkGetShaderBinaryDataEXTIf pData is not NULL, it must be aligned to 16 bytes
VUID-vkGetShaderBinaryDataEXT-device-parameterYNoneimplicitvkGetShaderBinaryDataEXTdevice must be a valid VkDevice handle
VUID-vkGetShaderBinaryDataEXT-pData-parameterYNoneimplicitvkGetShaderBinaryDataEXTIf 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-parameterYNoneimplicitvkGetShaderBinaryDataEXTpDataSize must be a valid pointer to a size_t value
VUID-vkGetShaderBinaryDataEXT-shader-parameterYNoneimplicitvkGetShaderBinaryDataEXTshader must be a valid VkShaderEXT handle
VUID-vkGetShaderBinaryDataEXT-shader-parentYNoneimplicitvkGetShaderBinaryDataEXTshader must have been created, allocated, or retrieved from device
VUID-vkGetShaderInfoAMD-device-parameterYNoneimplicitvkGetShaderInfoAMDdevice must be a valid VkDevice handle
VUID-vkGetShaderInfoAMD-infoType-parameterYNoneimplicitvkGetShaderInfoAMDinfoType must be a valid VkShaderInfoTypeAMD value
VUID-vkGetShaderInfoAMD-pInfo-parameterYNoneimplicitvkGetShaderInfoAMDIf 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-parameterYNoneimplicitvkGetShaderInfoAMDpInfoSize must be a valid pointer to a size_t value
VUID-vkGetShaderInfoAMD-pipeline-parameterYNoneimplicitvkGetShaderInfoAMDpipeline must be a valid VkPipeline handle
VUID-vkGetShaderInfoAMD-pipeline-parentYNoneimplicitvkGetShaderInfoAMDpipeline must have been created, allocated, or retrieved from device
VUID-vkGetShaderInfoAMD-shaderStage-parameterYNoneimplicitvkGetShaderInfoAMDshaderStage must be a valid VkShaderStageFlagBits value
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXTdevice must be a valid VkDevice handle
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pCreateInfo-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXTpCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pIdentifier-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXTpIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-shaderModuleIdentifier-06885YNegativeGraphicsLibrary.ShaderModuleIdentifierFeaturesexplicitvkGetShaderModuleCreateInfoIdentifierEXTshaderModuleIdentifier feature must be enabled
VUID-vkGetShaderModuleIdentifierEXT-device-parameterYNoneimplicitvkGetShaderModuleIdentifierEXTdevice must be a valid VkDevice handle
VUID-vkGetShaderModuleIdentifierEXT-pIdentifier-parameterYNoneimplicitvkGetShaderModuleIdentifierEXTpIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure
VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parameterYNoneimplicitvkGetShaderModuleIdentifierEXTshaderModule must be a valid VkShaderModule handle
VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parentYNoneimplicitvkGetShaderModuleIdentifierEXTshaderModule must have been created, allocated, or retrieved from device
VUID-vkGetShaderModuleIdentifierEXT-shaderModuleIdentifier-06884YNegativeGraphicsLibrary.ShaderModuleIdentifierFeaturesexplicitvkGetShaderModuleIdentifierEXTshaderModuleIdentifier feature must be enabled
VUID-vkGetSwapchainCounterEXT-counter-parameterYNoneimplicitvkGetSwapchainCounterEXTcounter must be a valid VkSurfaceCounterFlagBitsEXT value
VUID-vkGetSwapchainCounterEXT-device-parameterYNoneimplicitvkGetSwapchainCounterEXTdevice must be a valid VkDevice handle
VUID-vkGetSwapchainCounterEXT-pCounterValue-parameterYNoneimplicitvkGetSwapchainCounterEXTpCounterValue must be a valid pointer to a uint64_t value
VUID-vkGetSwapchainCounterEXT-swapchain-01245NNoneexplicitvkGetSwapchainCounterEXTOne or more present commands on swapchain must have been processed by the presentation engine
VUID-vkGetSwapchainCounterEXT-swapchain-parameterYNoneimplicitvkGetSwapchainCounterEXTswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainCounterEXT-swapchain-parentYNoneimplicitvkGetSwapchainCounterEXTswapchain must have been created, allocated, or retrieved from device
VUID-vkGetSwapchainImagesKHR-device-parameterYNoneimplicitvkGetSwapchainImagesKHRdevice must be a valid VkDevice handle
VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameterYNoneimplicitvkGetSwapchainImagesKHRpSwapchainImageCount must be a valid pointer to a uint32_t value
VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameterYNoneimplicitvkGetSwapchainImagesKHRIf 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-parameterYNoneimplicitvkGetSwapchainImagesKHRswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainImagesKHR-swapchain-parentYNoneimplicitvkGetSwapchainImagesKHRswapchain must have been created, allocated, or retrieved from device
VUID-vkGetSwapchainStatusKHR-device-parameterYNoneimplicitvkGetSwapchainStatusKHRdevice must be a valid VkDevice handle
VUID-vkGetSwapchainStatusKHR-swapchain-parameterYNoneimplicitvkGetSwapchainStatusKHRswapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainStatusKHR-swapchain-parentYNoneimplicitvkGetSwapchainStatusKHRswapchain must have been created, allocated, or retrieved from device
VUID-vkGetValidationCacheDataEXT-device-parameterYNoneimplicitvkGetValidationCacheDataEXTdevice must be a valid VkDevice handle
VUID-vkGetValidationCacheDataEXT-pData-parameterYNoneimplicitvkGetValidationCacheDataEXTIf 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-parameterYNoneimplicitvkGetValidationCacheDataEXTpDataSize must be a valid pointer to a size_t value
VUID-vkGetValidationCacheDataEXT-validationCache-parameterYNoneimplicitvkGetValidationCacheDataEXTvalidationCache must be a valid VkValidationCacheEXT handle
VUID-vkGetValidationCacheDataEXT-validationCache-parentYNoneimplicitvkGetValidationCacheDataEXTvalidationCache must have been created, allocated, or retrieved from device
VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRdevice must be a valid VkDevice handle
VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirements-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRIf 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-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRpMemoryRequirementsCount must be a valid pointer to a uint32_t value
VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRvideoSession must be a valid VkVideoSessionKHR handle
VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parentYNoneimplicitvkGetVideoSessionMemoryRequirementsKHRvideoSession must have been created, allocated, or retrieved from device
VUID-vkGetWinrtDisplayNV-pDisplay-parameterYNoneimplicitvkGetWinrtDisplayNVpDisplay must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetWinrtDisplayNV-physicalDevice-parameterYNoneimplicitvkGetWinrtDisplayNVphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkImportFenceFdKHR-device-parameterYNoneimplicitvkImportFenceFdKHRdevice must be a valid VkDevice handle
VUID-vkImportFenceFdKHR-fence-01463YNoneexplicitvkImportFenceFdKHRfence must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameterYNoneimplicitvkImportFenceFdKHRpImportFenceFdInfo must be a valid pointer to a valid VkImportFenceFdInfoKHR structure
VUID-vkImportFenceWin32HandleKHR-device-parameterYNoneimplicitvkImportFenceWin32HandleKHRdevice must be a valid VkDevice handle
VUID-vkImportFenceWin32HandleKHR-fence-04448YNoneexplicitvkImportFenceWin32HandleKHRfence must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameterYNoneimplicitvkImportFenceWin32HandleKHRpImportFenceWin32HandleInfo must be a valid pointer to a valid VkImportFenceWin32HandleInfoKHR structure
VUID-vkImportSemaphoreFdKHR-device-parameterYNoneimplicitvkImportSemaphoreFdKHRdevice must be a valid VkDevice handle
VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameterYNoneimplicitvkImportSemaphoreFdKHRpImportSemaphoreFdInfo must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure
VUID-vkImportSemaphoreFdKHR-semaphore-01142YNegativeObjectLifetime.ImportFdSemaphoreInUseexplicitvkImportSemaphoreFdKHRsemaphore must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportSemaphoreWin32HandleKHR-device-parameterYNoneimplicitvkImportSemaphoreWin32HandleKHRdevice must be a valid VkDevice handle
VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameterYNoneimplicitvkImportSemaphoreWin32HandleKHRpImportSemaphoreWin32HandleInfo must be a valid pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure
VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameterYNoneimplicitvkImportSemaphoreZirconHandleFUCHSIAdevice must be a valid VkDevice handle
VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameterYNoneimplicitvkImportSemaphoreZirconHandleFUCHSIApImportSemaphoreZirconHandleInfo must be a valid pointer to a valid VkImportSemaphoreZirconHandleInfoFUCHSIA structure
VUID-vkImportSemaphoreZirconHandleFUCHSIA-semaphore-04764YNoneexplicitvkImportSemaphoreZirconHandleFUCHSIAsemaphore must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkInitializePerformanceApiINTEL-device-parameterYNoneimplicitvkInitializePerformanceApiINTELdevice must be a valid VkDevice handle
VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameterYNoneimplicitvkInitializePerformanceApiINTELpInitializeInfo must be a valid pointer to a valid VkInitializePerformanceApiInfoINTEL structure
VUID-vkInvalidateMappedMemoryRanges-device-parameterYNoneimplicitvkInvalidateMappedMemoryRangesdevice must be a valid VkDevice handle
VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylengthYNoneimplicitvkInvalidateMappedMemoryRangesmemoryRangeCount must be greater than 0
VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameterYNoneimplicitvkInvalidateMappedMemoryRangespMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures
VUID-vkLatencySleepNV-device-parameterYNoneimplicitvkLatencySleepNVdevice must be a valid VkDevice handle
VUID-vkLatencySleepNV-pSleepInfo-parameterYNoneimplicitvkLatencySleepNVpSleepInfo must be a valid pointer to a valid VkLatencySleepInfoNV structure
VUID-vkLatencySleepNV-swapchain-parameterYNoneimplicitvkLatencySleepNVswapchain must be a valid VkSwapchainKHR handle
VUID-vkLatencySleepNV-swapchain-parentYNoneimplicitvkLatencySleepNVswapchain must have been created, allocated, or retrieved from device
VUID-vkMapMemory-device-parameterYNoneimplicitvkMapMemorydevice must be a valid VkDevice handle
VUID-vkMapMemory-flags-09568YNoneexplicitvkMapMemoryVK_MEMORY_MAP_PLACED_BIT_EXT must not be set in flags
VUID-vkMapMemory-flags-parameterYNoneimplicitvkMapMemoryflags must be a valid combination of VkMemoryMapFlagBits values
VUID-vkMapMemory-memory-00678YNegativeMemory.MapMemoryexplicitvkMapMemorymemory must not be currently host mapped
VUID-vkMapMemory-memory-00682YNegativeMemory.MapMemWithoutHostVisibleBitexplicitvkMapMemorymemory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VUID-vkMapMemory-memory-00683YNegativeMemory.MapMemWithoutHostVisibleBit, NegativeWsi.DeviceMaskexplicitvkMapMemorymemory must not have been allocated with multiple instances
VUID-vkMapMemory-memory-parameterYNoneimplicitvkMapMemorymemory must be a valid VkDeviceMemory handle
VUID-vkMapMemory-memory-parentYNoneimplicitvkMapMemorymemory must have been created, allocated, or retrieved from device
VUID-vkMapMemory-offset-00679YNegativeMemory.MapMemoryexplicitvkMapMemoryoffset must be less than the size of memory
VUID-vkMapMemory-ppData-parameterYNegativeMemory.MapMemoryNullppDataimplicitvkMapMemoryppData must be a valid pointer to a pointer value
VUID-vkMapMemory-size-00680YNegativeMemory.MapMemoryexplicitvkMapMemoryIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-vkMapMemory-size-00681YNegativeMemory.MapMemoryexplicitvkMapMemoryIf 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-parameterYNoneimplicitvkMapMemory2KHRdevice must be a valid VkDevice handle
VUID-vkMapMemory2KHR-pMemoryMapInfo-parameterYNoneimplicitvkMapMemory2KHRpMemoryMapInfo must be a valid pointer to a valid VkMemoryMapInfoKHR structure
VUID-vkMapMemory2KHR-ppData-parameterYNoneimplicitvkMapMemory2KHRppData must be a valid pointer to a pointer value
VUID-vkMergePipelineCaches-device-parameterYNoneimplicitvkMergePipelineCachesdevice must be a valid VkDevice handle
VUID-vkMergePipelineCaches-dstCache-00770YNegativePipeline.MergePipelineCachesInvalidDstexplicitvkMergePipelineCachesdstCache must not appear in the list of source caches
VUID-vkMergePipelineCaches-dstCache-parameterYNoneimplicitvkMergePipelineCachesdstCache must be a valid VkPipelineCache handle
VUID-vkMergePipelineCaches-dstCache-parentYNoneimplicitvkMergePipelineCachesdstCache must have been created, allocated, or retrieved from device
VUID-vkMergePipelineCaches-pSrcCaches-parameterYNoneimplicitvkMergePipelineCachespSrcCaches must be a valid pointer to an array of srcCacheCount valid VkPipelineCache handles
VUID-vkMergePipelineCaches-pSrcCaches-parentYNoneimplicitvkMergePipelineCachesEach element of pSrcCaches must have been created, allocated, or retrieved from device
VUID-vkMergePipelineCaches-srcCacheCount-arraylengthYNoneimplicitvkMergePipelineCachessrcCacheCount must be greater than 0
VUID-vkMergeValidationCachesEXT-device-parameterYNoneimplicitvkMergeValidationCachesEXTdevice must be a valid VkDevice handle
VUID-vkMergeValidationCachesEXT-dstCache-01536YVkLayerTest.ValidationCacheTestBadMergeexplicitvkMergeValidationCachesEXTdstCache must not appear in the list of source caches
VUID-vkMergeValidationCachesEXT-dstCache-parameterYNoneimplicitvkMergeValidationCachesEXTdstCache must be a valid VkValidationCacheEXT handle
VUID-vkMergeValidationCachesEXT-dstCache-parentYNoneimplicitvkMergeValidationCachesEXTdstCache must have been created, allocated, or retrieved from device
VUID-vkMergeValidationCachesEXT-pSrcCaches-parameterYNoneimplicitvkMergeValidationCachesEXTpSrcCaches must be a valid pointer to an array of srcCacheCount valid VkValidationCacheEXT handles
VUID-vkMergeValidationCachesEXT-pSrcCaches-parentYNoneimplicitvkMergeValidationCachesEXTEach element of pSrcCaches must have been created, allocated, or retrieved from device
VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylengthYNoneimplicitvkMergeValidationCachesEXTsrcCacheCount must be greater than 0
VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkQueueBeginDebugUtilsLabelEXTpLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueBeginDebugUtilsLabelEXTqueue must be a valid VkQueue handle
VUID-vkQueueBindSparse-commonparentYNoneimplicitvkQueueBindSparseBoth 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-01113YNoneexplicitvkQueueBindSparseIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueBindSparse-fence-01114YNoneexplicitvkQueueBindSparseIf 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-parameterYNoneimplicitvkQueueBindSparseIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueBindSparse-pBindInfo-parameterYNoneimplicitvkQueueBindSparseIf bindInfoCount is not 0, pBindInfo must be a valid pointer to an array of bindInfoCount valid VkBindSparseInfo structures
VUID-vkQueueBindSparse-pSignalSemaphores-01115YNoneexplicitvkQueueBindSparseEach 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.QueueSubmitWaitingSameSemaphoreexplicitvkQueueBindSparseWhen 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.QueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueBindSparseAll 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-parameterYNoneimplicitvkQueueBindSparsequeue must be a valid VkQueue handle
VUID-vkQueueBindSparse-queuetypeYNoneimplicitvkQueueBindSparseThe queue must support sparse binding operations
VUID-vkQueueEndDebugUtilsLabelEXT-None-01911NNoneexplicitvkQueueEndDebugUtilsLabelEXTThere must be an outstanding vkQueueBeginDebugUtilsLabelEXT command prior to the vkQueueEndDebugUtilsLabelEXT on the queue
VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueEndDebugUtilsLabelEXTqueue must be a valid VkQueue handle
VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkQueueInsertDebugUtilsLabelEXTpLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueInsertDebugUtilsLabelEXTqueue must be a valid VkQueue handle
VUID-vkQueueNotifyOutOfBandNV-pQueueTypeInfo-parameterYNoneimplicitvkQueueNotifyOutOfBandNVpQueueTypeInfo must be a valid pointer to a valid VkOutOfBandQueueTypeInfoNV structure
VUID-vkQueueNotifyOutOfBandNV-queue-parameterYNoneimplicitvkQueueNotifyOutOfBandNVqueue must be a valid VkQueue handle
VUID-vkQueuePresentKHR-pPresentInfo-parameterYNoneimplicitvkQueuePresentKHRpPresentInfo must be a valid pointer to a valid VkPresentInfoKHR structure
VUID-vkQueuePresentKHR-pSwapchains-01292YNoneexplicitvkQueuePresentKHREach 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-01293NNoneexplicitvkQueuePresentKHRIf 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.QueuePresentWaitingSameSemaphoreexplicitvkQueuePresentKHRWhen 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-03267YNoneexplicitvkQueuePresentKHRAll elements of the pWaitSemaphores member of pPresentInfo must be created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-vkQueuePresentKHR-pWaitSemaphores-03268YNegativeWsi.QueuePresentBinarySemaphoreNotSignaledexplicitvkQueuePresentKHRAll 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-parameterYNoneimplicitvkQueuePresentKHRqueue must be a valid VkQueue handle
VUID-vkQueueSetPerformanceConfigurationINTEL-commonparentYNoneimplicitvkQueueSetPerformanceConfigurationINTELBoth of configuration, and queue must have been created, allocated, or retrieved from the same VkDevice
VUID-vkQueueSetPerformanceConfigurationINTEL-configuration-parameterYNoneimplicitvkQueueSetPerformanceConfigurationINTELconfiguration must be a valid VkPerformanceConfigurationINTEL handle
VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameterYNoneimplicitvkQueueSetPerformanceConfigurationINTELqueue must be a valid VkQueue handle
VUID-vkQueueSubmit-commonparentYNoneimplicitvkQueueSubmitBoth 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.SubmitSignaledFenceexplicitvkQueueSubmitIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueSubmit-fence-00064YNegativeExternalMemorySync.TemporaryFenceexplicitvkQueueSubmitIf 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-parameterYNoneimplicitvkQueueSubmitIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueSubmit-pCommandBuffers-00065YNegativeSyncObject.QueueForwardProgressFenceWaitexplicitvkQueueSubmitAny 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-00070YNegativeDescriptors.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, NegativeSecondaryCommandBuffer.CascadedInvalidation, VkLayerTest.ExecuteUnrecordedCBexplicitvkQueueSubmitEach element of the pCommandBuffers member of each element of pSubmits must be in the pending or executable state
VUID-vkQueueSubmit-pCommandBuffers-00071YNegativeCommand.SimultaneousUseOneShot, NegativeSyncVal.ResourceHandleIndexStabilityexplicitvkQueueSubmitIf 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-00072YNoneexplicitvkQueueSubmitAny 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-00073YNoneexplicitvkQueueSubmitIf 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.MismatchedQueueFamiliesOnSubmitexplicitvkQueueSubmitEach 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.PerformanceReleaseProfileLockBeforeSubmitexplicitvkQueueSubmitIf 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-00067YNoneexplicitvkQueueSubmitEach 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-02207NNoneexplicitvkQueueSubmitIf any element of pSubmits->pCommandBuffers includes a Queue Family Ownership Transfer Acquire Operation, there must exist a previously submitted Queue Family Ownership Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens-before the acquire operation
VUID-vkQueueSubmit-pSubmits-02808NNoneexplicitvkQueueSubmitAny 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.BarrierQueueFamilyexplicitvkQueueSubmitAny 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-parameterYNoneimplicitvkQueueSubmitIf submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo structures
VUID-vkQueueSubmit-pWaitDstStageMask-00066YNoneexplicitvkQueueSubmitAny 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.QueueSubmitWaitingSameSemaphoreexplicitvkQueueSubmitWhen 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.QueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueSubmitAll 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.SubmitexplicitvkQueueSubmitIf queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, there must be no element of pSubmits that includes a VkProtectedSubmitInfo structure in its pNext chain with protectedSubmit equal to VK_TRUE
VUID-vkQueueSubmit-queue-parameterYNoneimplicitvkQueueSubmitqueue must be a valid VkQueue handle
VUID-vkQueueSubmit2-commandBuffer-03867NNoneexplicitvkQueueSubmit2If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits referenced a 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-03874YNoneexplicitvkQueueSubmit2The 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-03875YNoneexplicitvkQueueSubmit2If 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-03876YNoneexplicitvkQueueSubmit2Any 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-03877YNoneexplicitvkQueueSubmit2If 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-03878YNoneexplicitvkQueueSubmit2The 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-03879NNoneexplicitvkQueueSubmit2If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits includes a Queue Family Ownership Transfer Acquire Operation, there must exist a previously submitted Queue Family Ownership Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation
VUID-vkQueueSubmit2-commandBuffer-03880NNoneexplicitvkQueueSubmit2If 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-commonparentYNoneimplicitvkQueueSubmit2Both 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-04894YNoneexplicitvkQueueSubmit2If fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueSubmit2-fence-04895YNoneexplicitvkQueueSubmit2If 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-parameterYNoneimplicitvkQueueSubmit2If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueSubmit2-pSubmits-parameterYNoneimplicitvkQueueSubmit2If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo2 structures
VUID-vkQueueSubmit2-queue-06447YNoneexplicitvkQueueSubmit2If 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-parameterYNoneimplicitvkQueueSubmit2queue must be a valid VkQueue handle
VUID-vkQueueSubmit2-semaphore-03868YNoneexplicitvkQueueSubmit2The 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.QueueSubmitWaitingSameSemaphoreexplicitvkQueueSubmit2When 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.QueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueSubmit2The 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-03869YNoneexplicitvkQueueSubmit2The 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-03870YNoneexplicitvkQueueSubmit2The 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.QueueSubmit2KHRUsedButSynchronizaion2DisabledexplicitvkQueueSubmit2The synchronization2 feature must be enabled
VUID-vkQueueWaitIdle-queue-parameterYNoneimplicitvkQueueWaitIdlequeue must be a valid VkQueue handle
VUID-vkRegisterDeviceEventEXT-device-parameterYNoneimplicitvkRegisterDeviceEventEXTdevice must be a valid VkDevice handle
VUID-vkRegisterDeviceEventEXT-pAllocator-parameterYNoneimplicitvkRegisterDeviceEventEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameterYNoneimplicitvkRegisterDeviceEventEXTpDeviceEventInfo must be a valid pointer to a valid VkDeviceEventInfoEXT structure
VUID-vkRegisterDeviceEventEXT-pFence-parameterYNoneimplicitvkRegisterDeviceEventEXTpFence must be a valid pointer to a VkFence handle
VUID-vkRegisterDisplayEventEXT-commonparentYNegativeParent.PhysicalDevice_RegisterDisplayEventimplicitvkRegisterDisplayEventEXTBoth of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice
VUID-vkRegisterDisplayEventEXT-device-parameterYNoneimplicitvkRegisterDisplayEventEXTdevice must be a valid VkDevice handle
VUID-vkRegisterDisplayEventEXT-display-parameterYNoneimplicitvkRegisterDisplayEventEXTdisplay must be a valid VkDisplayKHR handle
VUID-vkRegisterDisplayEventEXT-pAllocator-parameterYNoneimplicitvkRegisterDisplayEventEXTIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameterYNoneimplicitvkRegisterDisplayEventEXTpDisplayEventInfo must be a valid pointer to a valid VkDisplayEventInfoEXT structure
VUID-vkRegisterDisplayEventEXT-pFence-parameterYNoneimplicitvkRegisterDisplayEventEXTpFence must be a valid pointer to a VkFence handle
VUID-vkReleaseCapturedPipelineDataKHR-device-parameterYNoneimplicitvkReleaseCapturedPipelineDataKHRdevice must be a valid VkDevice handle
VUID-vkReleaseCapturedPipelineDataKHR-pAllocator-parameterNNoneimplicitvkReleaseCapturedPipelineDataKHRIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkReleaseCapturedPipelineDataKHR-pInfo-parameterYNoneimplicitvkReleaseCapturedPipelineDataKHRpInfo must be a valid pointer to a valid VkReleaseCapturedPipelineDataInfoKHR structure
VUID-vkReleaseCapturedPipelineDataKHR-pipeline-09611YNegativePipelineBinary.ReleaseCapturedDataAllocatorexplicitvkReleaseCapturedPipelineDataKHRIf VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided in pAllocator
VUID-vkReleaseCapturedPipelineDataKHR-pipeline-09612YNegativePipelineBinary.ReleaseCapturedDataAllocatorexplicitvkReleaseCapturedPipelineDataKHRIf no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL
VUID-vkReleaseDisplayEXT-display-parameterYNoneimplicitvkReleaseDisplayEXTdisplay must be a valid VkDisplayKHR handle
VUID-vkReleaseDisplayEXT-display-parentYNoneimplicitvkReleaseDisplayEXTdisplay must have been created, allocated, or retrieved from physicalDevice
VUID-vkReleaseDisplayEXT-physicalDevice-parameterYNoneimplicitvkReleaseDisplayEXTphysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkReleaseFullScreenExclusiveModeEXT-device-parameterYNoneimplicitvkReleaseFullScreenExclusiveModeEXTdevice must be a valid VkDevice handle
VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02677YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkReleaseFullScreenExclusiveModeEXTswapchain must not be in the retired state
VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02678YNegativeWsi.AcquireFullScreenExclusiveModeEXTexplicitvkReleaseFullScreenExclusiveModeEXTswapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-parameterYNoneimplicitvkReleaseFullScreenExclusiveModeEXTswapchain must be a valid VkSwapchainKHR handle
VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-parentNNoneimplicitvkReleaseFullScreenExclusiveModeEXTswapchain must have been created, allocated, or retrieved from device
VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737NNoneexplicitvkReleasePerformanceConfigurationINTELconfiguration must not be released before all command buffers submitted while the configuration was set are in pending state
VUID-vkReleasePerformanceConfigurationINTEL-configuration-parameterYNoneimplicitvkReleasePerformanceConfigurationINTELIf configuration is not VK_NULL_HANDLE, configuration must be a valid VkPerformanceConfigurationINTEL handle
VUID-vkReleasePerformanceConfigurationINTEL-configuration-parentYNoneimplicitvkReleasePerformanceConfigurationINTELIf configuration is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkReleasePerformanceConfigurationINTEL-device-parameterYNoneimplicitvkReleasePerformanceConfigurationINTELdevice must be a valid VkDevice handle
VUID-vkReleaseProfilingLockKHR-device-03235YNoneexplicitvkReleaseProfilingLockKHRThe profiling lock of device must have been held via a previous successful call to vkAcquireProfilingLockKHR
VUID-vkReleaseProfilingLockKHR-device-parameterYNoneimplicitvkReleaseProfilingLockKHRdevice must be a valid VkDevice handle
VUID-vkReleaseSwapchainImagesEXT-device-parameterYNoneimplicitvkReleaseSwapchainImagesEXTdevice must be a valid VkDevice handle
VUID-vkReleaseSwapchainImagesEXT-pReleaseInfo-parameterYNoneimplicitvkReleaseSwapchainImagesEXTpReleaseInfo must be a valid pointer to a valid VkReleaseSwapchainImagesInfoEXT structure
VUID-vkReleaseSwapchainImagesEXT-swapchainMaintenance1-10159NNoneexplicitvkReleaseSwapchainImagesEXTFeature swapchainMaintenance1 must be enabled
VUID-vkResetCommandBuffer-commandBuffer-00045YNoneexplicitvkResetCommandBuffercommandBuffer must not be in the pending state
VUID-vkResetCommandBuffer-commandBuffer-00046YNegativeCommand.CommandBufferResetexplicitvkResetCommandBuffercommandBuffer must have been allocated from a pool that was created with the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
VUID-vkResetCommandBuffer-commandBuffer-parameterYNoneimplicitvkResetCommandBuffercommandBuffer must be a valid VkCommandBuffer handle
VUID-vkResetCommandBuffer-flags-parameterYNoneimplicitvkResetCommandBufferflags must be a valid combination of VkCommandBufferResetFlagBits values
VUID-vkResetCommandPool-commandPool-00040YNoneexplicitvkResetCommandPoolAll VkCommandBuffer objects allocated from commandPool must not be in the pending state
VUID-vkResetCommandPool-commandPool-parameterYNoneimplicitvkResetCommandPoolcommandPool must be a valid VkCommandPool handle
VUID-vkResetCommandPool-commandPool-parentYNoneimplicitvkResetCommandPoolcommandPool must have been created, allocated, or retrieved from device
VUID-vkResetCommandPool-device-parameterYNoneimplicitvkResetCommandPooldevice must be a valid VkDevice handle
VUID-vkResetCommandPool-flags-parameterYNoneimplicitvkResetCommandPoolflags must be a valid combination of VkCommandPoolResetFlagBits values
VUID-vkResetDescriptorPool-descriptorPool-00313YNegativeDescriptors.DescriptorPoolInUseResetSignaledexplicitvkResetDescriptorPoolAll uses of descriptorPool (via any allocated descriptor sets) must have completed execution
VUID-vkResetDescriptorPool-descriptorPool-parameterYNegativeDescriptors.DescriptorPoolimplicitvkResetDescriptorPooldescriptorPool must be a valid VkDescriptorPool handle
VUID-vkResetDescriptorPool-descriptorPool-parentYNoneimplicitvkResetDescriptorPooldescriptorPool must have been created, allocated, or retrieved from device
VUID-vkResetDescriptorPool-device-parameterYNoneimplicitvkResetDescriptorPooldevice must be a valid VkDevice handle
VUID-vkResetDescriptorPool-flags-zerobitmaskYNoneimplicitvkResetDescriptorPoolflags must be 0
VUID-vkResetEvent-device-parameterYNoneimplicitvkResetEventdevice must be a valid VkDevice handle
VUID-vkResetEvent-event-03821NNoneexplicitvkResetEventThere must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkResetEvent-event-03822NNoneexplicitvkResetEventThere must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkResetEvent-event-03823YNegativeSyncObject.InvalidDeviceOnlyEventexplicitvkResetEventevent must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkResetEvent-event-parameterYNoneimplicitvkResetEventevent must be a valid VkEvent handle
VUID-vkResetEvent-event-parentYNoneimplicitvkResetEventevent must have been created, allocated, or retrieved from device
VUID-vkResetFences-device-parameterYNoneimplicitvkResetFencesdevice must be a valid VkDevice handle
VUID-vkResetFences-fenceCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkResetFencesfenceCount must be greater than 0
VUID-vkResetFences-pFences-01123YNoneexplicitvkResetFencesEach element of pFences must not be currently associated with any queue command that has not yet completed execution on that queue
VUID-vkResetFences-pFences-parameterYNoneimplicitvkResetFencespFences must be a valid pointer to an array of fenceCount valid VkFence handles
VUID-vkResetFences-pFences-parentYNoneimplicitvkResetFencesEach element of pFences must have been created, allocated, or retrieved from device
VUID-vkResetQueryPool-None-02665YNegativeQuery.HostResetNotEnabledexplicitvkResetQueryPoolThe hostQueryReset feature must be enabled
VUID-vkResetQueryPool-device-parameterYNoneimplicitvkResetQueryPooldevice must be a valid VkDevice handle
VUID-vkResetQueryPool-firstQuery-02741NNoneexplicitvkResetQueryPoolSubmitted commands that refer to the range specified by firstQuery and queryCount in queryPool must have completed execution
VUID-vkResetQueryPool-firstQuery-02742NNoneexplicitvkResetQueryPoolThe 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.HostResetFirstQueryexplicitvkResetQueryPoolfirstQuery must be less than the number of queries in queryPool
VUID-vkResetQueryPool-firstQuery-09437YNegativeQuery.HostResetBadRangeexplicitvkResetQueryPoolThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkResetQueryPool-queryPool-parameterYNegativeQuery.HostResetQueryPool, NegativeQuery.ResetQueryPoolWithoutQueryPoolimplicitvkResetQueryPoolqueryPool must be a valid VkQueryPool handle
VUID-vkResetQueryPool-queryPool-parentYNegativeQuery.HostResetDeviceimplicitvkResetQueryPoolqueryPool must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-06403NNoneexplicitvkSetBufferCollectionBufferConstraintsFUCHSIAvkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIAcollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parentYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIAcollection must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIAdevice must be a valid VkDevice handle
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-pBufferConstraintsInfo-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIApBufferConstraintsInfo must be a valid pointer to a valid VkBufferConstraintsInfoFUCHSIA structure
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-06394NNoneexplicitvkSetBufferCollectionImageConstraintsFUCHSIAvkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIAcollection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parentYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIAcollection must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIAdevice must be a valid VkDevice handle
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-pImageConstraintsInfo-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIApImageConstraintsInfo must be a valid pointer to a valid VkImageConstraintsInfoFUCHSIA structure
VUID-vkSetDebugUtilsObjectNameEXT-device-parameterYNoneimplicitvkSetDebugUtilsObjectNameEXTdevice must be a valid VkDevice handle
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587YNegativeDebugExtensions.DebugUtilsNameexplicitvkSetDebugUtilsObjectNameEXTpNameInfo->objectType must not be VK_OBJECT_TYPE_UNKNOWN
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588YNegativeDebugExtensions.DebugUtilsNameexplicitvkSetDebugUtilsObjectNameEXTpNameInfo->objectHandle must not be VK_NULL_HANDLE
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07872YNoneexplicitvkSetDebugUtilsObjectNameEXTIf 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-07873YNoneexplicitvkSetDebugUtilsObjectNameEXTIf 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.SetDebugUtilsObjectSecondDeviceexplicitvkSetDebugUtilsObjectNameEXTIf 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-parameterYNoneimplicitvkSetDebugUtilsObjectNameEXTpNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure
VUID-vkSetDebugUtilsObjectTagEXT-device-parameterYNoneimplicitvkSetDebugUtilsObjectTagEXTdevice must be a valid VkDevice handle
VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07875YNoneexplicitvkSetDebugUtilsObjectTagEXTIf 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-07876YNoneexplicitvkSetDebugUtilsObjectTagEXTIf 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-07877YNoneexplicitvkSetDebugUtilsObjectTagEXTIf 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-parameterYNoneimplicitvkSetDebugUtilsObjectTagEXTpTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure
VUID-vkSetDeviceMemoryPriorityEXT-device-parameterYNoneimplicitvkSetDeviceMemoryPriorityEXTdevice must be a valid VkDevice handle
VUID-vkSetDeviceMemoryPriorityEXT-memory-parameterYNoneimplicitvkSetDeviceMemoryPriorityEXTmemory must be a valid VkDeviceMemory handle
VUID-vkSetDeviceMemoryPriorityEXT-memory-parentYNoneimplicitvkSetDeviceMemoryPriorityEXTmemory must have been created, allocated, or retrieved from device
VUID-vkSetDeviceMemoryPriorityEXT-priority-06258YNegativeMemory.SetDeviceMemoryPriorityexplicitvkSetDeviceMemoryPriorityEXTpriority must be between 0 and 1, inclusive
VUID-vkSetEvent-device-parameterYNoneimplicitvkSetEventdevice must be a valid VkDevice handle
VUID-vkSetEvent-event-03941YNegativeSyncObject.InvalidDeviceOnlyEventexplicitvkSetEventevent must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkSetEvent-event-09543YNegativeSyncObject.ResetEventThenSetexplicitvkSetEventevent must not be waited on by a command buffer in the pending state
VUID-vkSetEvent-event-parameterYNoneimplicitvkSetEventevent must be a valid VkEvent handle
VUID-vkSetEvent-event-parentYNoneimplicitvkSetEventevent must have been created, allocated, or retrieved from device
VUID-vkSetHdrMetadataEXT-device-parameterYNoneimplicitvkSetHdrMetadataEXTdevice must be a valid VkDevice handle
VUID-vkSetHdrMetadataEXT-pMetadata-parameterYNoneimplicitvkSetHdrMetadataEXTpMetadata must be a valid pointer to an array of swapchainCount valid VkHdrMetadataEXT structures
VUID-vkSetHdrMetadataEXT-pSwapchains-parameterYNoneimplicitvkSetHdrMetadataEXTpSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles
VUID-vkSetHdrMetadataEXT-pSwapchains-parentYNoneimplicitvkSetHdrMetadataEXTEach element of pSwapchains must have been created, allocated, or retrieved from device
VUID-vkSetHdrMetadataEXT-swapchainCount-arraylengthYNoneimplicitvkSetHdrMetadataEXTswapchainCount must be greater than 0
VUID-vkSetLatencyMarkerNV-device-parameterYNoneimplicitvkSetLatencyMarkerNVdevice must be a valid VkDevice handle
VUID-vkSetLatencyMarkerNV-pLatencyMarkerInfo-parameterYNoneimplicitvkSetLatencyMarkerNVpLatencyMarkerInfo must be a valid pointer to a valid VkSetLatencyMarkerInfoNV structure
VUID-vkSetLatencyMarkerNV-swapchain-parameterYNoneimplicitvkSetLatencyMarkerNVswapchain must be a valid VkSwapchainKHR handle
VUID-vkSetLatencyMarkerNV-swapchain-parentYNoneimplicitvkSetLatencyMarkerNVswapchain must have been created, allocated, or retrieved from device
VUID-vkSetLatencySleepModeNV-device-parameterYNoneimplicitvkSetLatencySleepModeNVdevice must be a valid VkDevice handle
VUID-vkSetLatencySleepModeNV-pSleepModeInfo-parameterYNoneimplicitvkSetLatencySleepModeNVpSleepModeInfo must be a valid pointer to a valid VkLatencySleepModeInfoNV structure
VUID-vkSetLatencySleepModeNV-swapchain-parameterYNoneimplicitvkSetLatencySleepModeNVswapchain must be a valid VkSwapchainKHR handle
VUID-vkSetLatencySleepModeNV-swapchain-parentYNoneimplicitvkSetLatencySleepModeNVswapchain must have been created, allocated, or retrieved from device
VUID-vkSetLocalDimmingAMD-device-parameterYNoneimplicitvkSetLocalDimmingAMDdevice must be a valid VkDevice handle
VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618NNoneexplicitvkSetLocalDimmingAMDVkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport must be supported
VUID-vkSetLocalDimmingAMD-swapChain-parameterYNoneimplicitvkSetLocalDimmingAMDswapChain must be a valid VkSwapchainKHR handle
VUID-vkSetLocalDimmingAMD-swapChain-parentYNoneimplicitvkSetLocalDimmingAMDswapChain must have been created, allocated, or retrieved from device
VUID-vkSetPrivateData-device-parameterYNoneimplicitvkSetPrivateDatadevice must be a valid VkDevice handle
VUID-vkSetPrivateData-objectHandle-04016YNegativeTooling.PrivateDataSetNonDevice, NegativeTooling.PrivateDataSetSecondDeviceexplicitvkSetPrivateDataobjectHandle must be device or a child of device
VUID-vkSetPrivateData-objectHandle-04017YNegativeTooling.PrivateDataSetBadHandleexplicitvkSetPrivateDataobjectHandle must be a valid handle to an object of type objectType
VUID-vkSetPrivateData-objectType-parameterYNoneimplicitvkSetPrivateDataobjectType must be a valid VkObjectType value
VUID-vkSetPrivateData-privateDataSlot-parameterYNegativeTooling.PrivateDataDestroyHandleimplicitvkSetPrivateDataprivateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkSetPrivateData-privateDataSlot-parentYNoneimplicitvkSetPrivateDataprivateDataSlot must have been created, allocated, or retrieved from device
VUID-vkSignalSemaphore-device-parameterYNoneimplicitvkSignalSemaphoredevice must be a valid VkDevice handle
VUID-vkSignalSemaphore-pSignalInfo-parameterYNoneimplicitvkSignalSemaphorepSignalInfo must be a valid pointer to a valid VkSemaphoreSignalInfo structure
VUID-vkSubmitDebugUtilsMessageEXT-instance-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXTinstance must be a valid VkInstance handle
VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXTmessageSeverity must be a valid VkDebugUtilsMessageSeverityFlagBitsEXT value
VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXTmessageTypes must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values
VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmaskYNoneimplicitvkSubmitDebugUtilsMessageEXTmessageTypes must not be 0
VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591NNoneexplicitvkSubmitDebugUtilsMessageEXTThe objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN
VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXTpCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure
VUID-vkTransitionImageLayoutEXT-device-parameterYNoneimplicitvkTransitionImageLayoutEXTdevice must be a valid VkDevice handle
VUID-vkTransitionImageLayoutEXT-pTransitions-parameterYNoneimplicitvkTransitionImageLayoutEXTpTransitions must be a valid pointer to an array of transitionCount valid VkHostImageLayoutTransitionInfoEXT structures
VUID-vkTransitionImageLayoutEXT-transitionCount-arraylengthYNoneimplicitvkTransitionImageLayoutEXTtransitionCount must be greater than 0
VUID-vkTrimCommandPool-commandPool-parameterYNoneimplicitvkTrimCommandPoolcommandPool must be a valid VkCommandPool handle
VUID-vkTrimCommandPool-commandPool-parentYNoneimplicitvkTrimCommandPoolcommandPool must have been created, allocated, or retrieved from device
VUID-vkTrimCommandPool-device-parameterYNoneimplicitvkTrimCommandPooldevice must be a valid VkDevice handle
VUID-vkTrimCommandPool-flags-zerobitmaskYNoneimplicitvkTrimCommandPoolflags must be 0
VUID-vkUninitializePerformanceApiINTEL-device-parameterYNoneimplicitvkUninitializePerformanceApiINTELdevice must be a valid VkDevice handle
VUID-vkUnmapMemory-device-parameterYNoneimplicitvkUnmapMemorydevice must be a valid VkDevice handle
VUID-vkUnmapMemory-memory-00689YNegativeMemory.MapMemoryexplicitvkUnmapMemorymemory must be currently host mapped
VUID-vkUnmapMemory-memory-parameterYNoneimplicitvkUnmapMemorymemory must be a valid VkDeviceMemory handle
VUID-vkUnmapMemory-memory-parentYNoneimplicitvkUnmapMemorymemory must have been created, allocated, or retrieved from device
VUID-vkUnmapMemory2KHR-device-parameterYNoneimplicitvkUnmapMemory2KHRdevice must be a valid VkDevice handle
VUID-vkUnmapMemory2KHR-pMemoryUnmapInfo-parameterYNoneimplicitvkUnmapMemory2KHRpMemoryUnmapInfo must be a valid pointer to a valid VkMemoryUnmapInfoKHR structure
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06995NNoneexplicitvkUpdateDescriptorSetWithTemplateHost access to descriptorSet must be externally synchronized unless explicitly denoted otherwise for specific flags
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplatedescriptorSet must be a valid VkDescriptorSet handle
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parentYNoneimplicitvkUpdateDescriptorSetWithTemplatedescriptorSet must have been created, allocated, or retrieved from device
VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplatedescriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parentYNoneimplicitvkUpdateDescriptorSetWithTemplatedescriptorUpdateTemplate must have been created, allocated, or retrieved from device
VUID-vkUpdateDescriptorSetWithTemplate-device-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplatedevice must be a valid VkDevice handle
VUID-vkUpdateDescriptorSetWithTemplate-pData-01685NNoneexplicitvkUpdateDescriptorSetWithTemplatepData 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.CmdBufferDescriptorSetImageSamplerDestroyedexplicitvkUpdateDescriptorSetsThe 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-parameterYNoneimplicitvkUpdateDescriptorSetsdevice must be a valid VkDevice handle
VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameterYNoneimplicitvkUpdateDescriptorSetsIf descriptorCopyCount is not 0, pDescriptorCopies must be a valid pointer to an array of descriptorCopyCount valid VkCopyDescriptorSet structures
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06236YNoneexplicitvkUpdateDescriptorSetsFor 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.UpdateDescriptorSetsBufferexplicitvkUpdateDescriptorSetsFor 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-06238NNoneexplicitvkUpdateDescriptorSetsFor 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.UpdateDescriptorSetsImageexplicitvkUpdateDescriptorSetsFor 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-06240YNoneexplicitvkUpdateDescriptorSetsFor 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-06241YNoneexplicitvkUpdateDescriptorSetsFor 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.InvalidDescriptorWriteImageInfoexplicitvkUpdateDescriptorSetsFor 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-06940NNoneexplicitvkUpdateDescriptorSetsFor 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-06941NNoneexplicitvkUpdateDescriptorSetsFor 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-06993NNoneexplicitvkUpdateDescriptorSetsHost access to pDescriptorWrites[i].dstSet and pDescriptorCopies[i].dstSet must be externally synchronized unless explicitly denoted otherwise for specific flags
VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameterYNoneimplicitvkUpdateDescriptorSetsIf descriptorWriteCount is not 0, pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures
VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11038NNoneexplicitvkUpdateIndirectExecutionSetPipelineEXTEach member of the Indirect Execution Set referenced by the update command must not be in use by the device
VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11039YNegativeDeviceGeneratedCommands.UpdateIESPipelineCompatibleexplicitvkUpdateIndirectExecutionSetPipelineEXTThe layout of each pipeline in pExecutionSetWrites must be compatible with the initialPipeline used to create the Indirect Execution Set
VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11040YNegativeDeviceGeneratedCommands.UpdateIESPipelineDynamicStateexplicitvkUpdateIndirectExecutionSetPipelineEXTEach pipeline in the Indirect Execution Set must have identically defined static and dynamic state values to the initialPipeline used to create the Indirect Execution Set
VUID-vkUpdateIndirectExecutionSetPipelineEXT-device-parameterYNoneimplicitvkUpdateIndirectExecutionSetPipelineEXTdevice must be a valid VkDevice handle
VUID-vkUpdateIndirectExecutionSetPipelineEXT-executionSetWriteCount-11037YNegativeDeviceGeneratedCommands.UpdateIESPipelineWriteCountexplicitvkUpdateIndirectExecutionSetPipelineEXTexecutionSetWriteCount must be less than or equal to VkIndirectExecutionSetPipelineInfoEXT::maxPipelineCount
VUID-vkUpdateIndirectExecutionSetPipelineEXT-executionSetWriteCount-arraylengthYNegativeDeviceGeneratedCommands.UpdateIESPipelineWriteCountimplicitvkUpdateIndirectExecutionSetPipelineEXTexecutionSetWriteCount must be greater than 0
VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-11035YNegativeDeviceGeneratedCommands.UpdateIESMixShaderObjectPipelineexplicitvkUpdateIndirectExecutionSetPipelineEXTindirectExecutionSet must have been created with type VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT
VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-parameterYNoneimplicitvkUpdateIndirectExecutionSetPipelineEXTindirectExecutionSet must be a valid VkIndirectExecutionSetEXT handle
VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-parentYNoneimplicitvkUpdateIndirectExecutionSetPipelineEXTindirectExecutionSet must have been created, allocated, or retrieved from device
VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11085YNegativeDeviceGeneratedCommands.UpdateIESPipelineStencilExportEXTexplicitvkUpdateIndirectExecutionSetPipelineEXTEach pipeline in the Indirect Execution Set must match the initialPipeline used to create the Indirect Execution Set in its use of StencilExportEXT
VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11086YNegativeDeviceGeneratedCommands.UpdateIESPipelineSampleMaskexplicitvkUpdateIndirectExecutionSetPipelineEXTEach pipeline in the Indirect Execution Set must match the initialPipeline used to create the Indirect Execution Set in its use of SampleMask
VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11098YNegativeDeviceGeneratedCommands.UpdateIESPipelineFragDepthexplicitvkUpdateIndirectExecutionSetPipelineEXTEach pipeline in the Indirect Execution Set must match the initialPipeline used to create the Indirect Execution Set in its use of FragDepth
VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11147YNegativeDeviceGeneratedCommands.UpdateIESPipelineFragmentOutputexplicitvkUpdateIndirectExecutionSetPipelineEXTEach pipeline in the Indirect Execution Set must have identically defined fragment outputs interface to the initialPipeline used to create the Indirect Execution Set
VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11152YNegativeDeviceGeneratedCommands.UpdateIESPipelineShaderStagesexplicitvkUpdateIndirectExecutionSetPipelineEXTEach pipeline in the Indirect Execution Set must match the initialPipeline used to create the Indirect Execution Set in its included shader stages
VUID-vkUpdateIndirectExecutionSetPipelineEXT-pExecutionSetWrites-11042YNegativeDeviceGeneratedCommands.UpdateIESPipelineWriteCountexplicitvkUpdateIndirectExecutionSetPipelineEXTEach element in the pExecutionSetWrites array must have a unique VkWriteIndirectExecutionSetPipelineEXT::index
VUID-vkUpdateIndirectExecutionSetPipelineEXT-pExecutionSetWrites-parameterYNoneimplicitvkUpdateIndirectExecutionSetPipelineEXTpExecutionSetWrites must be a valid pointer to an array of executionSetWriteCount valid VkWriteIndirectExecutionSetPipelineEXT structures
VUID-vkUpdateIndirectExecutionSetShaderEXT-FragDepth-11054YNegativeDeviceGeneratedCommands.UpdateIESShaderObjectFragmentOutputexplicitvkUpdateIndirectExecutionSetShaderEXTEach fragment shader element in the Indirect Execution Set must match the initial shader state used to create the Indirect Execution Set in its use of FragDepth
VUID-vkUpdateIndirectExecutionSetShaderEXT-None-11044NNoneexplicitvkUpdateIndirectExecutionSetShaderEXTEach member of the Indirect Execution Set referenced by the update command must not be in use by the device
VUID-vkUpdateIndirectExecutionSetShaderEXT-None-11148YNegativeDeviceGeneratedCommands.UpdateIESShaderObjectFragmentOutputexplicitvkUpdateIndirectExecutionSetShaderEXTEach fragment shader element in the Indirect Execution Set must have identically defined fragment outputs interface to the initial shader state used to create the Indirect Execution Set
VUID-vkUpdateIndirectExecutionSetShaderEXT-SampleMask-11050YNegativeDeviceGeneratedCommands.UpdateIESShaderObjectFragmentOutputexplicitvkUpdateIndirectExecutionSetShaderEXTEach fragment shader element in the Indirect Execution Set must match the initial shader state used to create the Indirect Execution Set in its use of SampleMask
VUID-vkUpdateIndirectExecutionSetShaderEXT-StencilExportEXT-11003YNegativeDeviceGeneratedCommands.UpdateIESShaderObjectFragmentOutputexplicitvkUpdateIndirectExecutionSetShaderEXTEach fragment shader element in the Indirect Execution Set must match the initial shader state used to create the Indirect Execution Set in its use of StencilExportEXT
VUID-vkUpdateIndirectExecutionSetShaderEXT-device-parameterYNoneimplicitvkUpdateIndirectExecutionSetShaderEXTdevice must be a valid VkDevice handle
VUID-vkUpdateIndirectExecutionSetShaderEXT-executionSetWriteCount-arraylengthYNegativeDeviceGeneratedCommands.UpdateIESShaderObjectWriteCountimplicitvkUpdateIndirectExecutionSetShaderEXTexecutionSetWriteCount must be greater than 0
VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-11041YNegativeDeviceGeneratedCommands.UpdateIESMixShaderObjectPipelineexplicitvkUpdateIndirectExecutionSetShaderEXTindirectExecutionSet must have been created with type VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT
VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-parameterYNoneimplicitvkUpdateIndirectExecutionSetShaderEXTindirectExecutionSet must be a valid VkIndirectExecutionSetEXT handle
VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-parentYNoneimplicitvkUpdateIndirectExecutionSetShaderEXTindirectExecutionSet must have been created, allocated, or retrieved from device
VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-11043YNegativeDeviceGeneratedCommands.UpdateIESShaderObjectDuplicateIndexexplicitvkUpdateIndirectExecutionSetShaderEXTEach element in the pExecutionSetWrites array must have a unique VkWriteIndirectExecutionSetShaderEXT::index
VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-11140NNoneexplicitvkUpdateIndirectExecutionSetShaderEXTThe descriptor layout of each shader in pExecutionSetWrites must be compatible with the initial layout info used to create the Indirect Execution Set
VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-parameterYNoneimplicitvkUpdateIndirectExecutionSetShaderEXTpExecutionSetWrites must be a valid pointer to an array of executionSetWriteCount valid VkWriteIndirectExecutionSetShaderEXT structures
VUID-vkUpdateVideoSessionParametersKHR-device-parameterYNoneimplicitvkUpdateVideoSessionParametersKHRdevice must be a valid VkDevice handle
VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-07215YNegativeVideo.UpdateSessionParamsIncorrectSequenceCountexplicitvkUpdateVideoSessionParametersKHRpUpdateInfo->updateSequenceCount must equal the current update sequence counter of videoSessionParameters plus one
VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-parameterYNoneimplicitvkUpdateVideoSessionParametersKHRpUpdateInfo must be a valid pointer to a valid VkVideoSessionParametersUpdateInfoKHR structure
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-06441YNegativeVideo.UpdateSessionParamsEncodeH264ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH264ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH264ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH264ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH264ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH264ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsDecodeH265ExceededCapacityexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH264ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH264ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.UpdateSessionParamsEncodeH265ConflictingKeysexplicitvkUpdateVideoSessionParametersKHRIf 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.CreateUpdateSessionParamsEncodeH265InvalidTileColumnsRowsexplicitvkUpdateVideoSessionParametersKHRIf 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.CreateUpdateSessionParamsEncodeH265InvalidTileColumnsRowsexplicitvkUpdateVideoSessionParametersKHRIf 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-09260YNegativeVideo.UpdateSessionParamsDecodeAV1explicitvkUpdateVideoSessionParametersKHRvideoSessionParameters must not have been created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parameterYNoneimplicitvkUpdateVideoSessionParametersKHRvideoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parentYNoneimplicitvkUpdateVideoSessionParametersKHRvideoSessionParameters must have been created, allocated, or retrieved from device
VUID-vkWaitForFences-device-parameterYNoneimplicitvkWaitForFencesdevice must be a valid VkDevice handle
VUID-vkWaitForFences-fenceCount-arraylengthYVkLayerTest.ValidateArrayLengthimplicitvkWaitForFencesfenceCount must be greater than 0
VUID-vkWaitForFences-pFences-parameterYNoneimplicitvkWaitForFencespFences must be a valid pointer to an array of fenceCount valid VkFence handles
VUID-vkWaitForFences-pFences-parentYNoneimplicitvkWaitForFencesEach element of pFences must have been created, allocated, or retrieved from device
VUID-vkWaitForPresentKHR-device-parameterYNoneimplicitvkWaitForPresentKHRdevice must be a valid VkDevice handle
VUID-vkWaitForPresentKHR-presentWait-06234YNegativeWsi.PresentIdWaitFeaturesexplicitvkWaitForPresentKHRThe presentWait feature must be enabled
VUID-vkWaitForPresentKHR-swapchain-04997YNegativeWsi.PresentIdWaitexplicitvkWaitForPresentKHRswapchain must not be in the retired state
VUID-vkWaitForPresentKHR-swapchain-parameterYNoneimplicitvkWaitForPresentKHRswapchain must be a valid VkSwapchainKHR handle
VUID-vkWaitForPresentKHR-swapchain-parentYNoneimplicitvkWaitForPresentKHRswapchain must have been created, allocated, or retrieved from device
VUID-vkWaitSemaphores-device-parameterYNoneimplicitvkWaitSemaphoresdevice must be a valid VkDevice handle
VUID-vkWaitSemaphores-pWaitInfo-parameterYNoneimplicitvkWaitSemaphorespWaitInfo must be a valid pointer to a valid VkSemaphoreWaitInfo structure
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylengthYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRaccelerationStructureCount must be greater than 0
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585YNoneexplicitvkWriteAccelerationStructuresPropertiesKHRThe VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431YNegativeRayTracing.WriteAccelerationStructuresPropertiesMaintenance1HostexplicitvkWriteAccelerationStructuresPropertiesKHRAll 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.WriteAccelerationStructureMemoryexplicitvkWriteAccelerationStructuresPropertiesKHRThe buffer used to create each acceleration structure in pAccelerationStructures must be bound to host-visible device memory
VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784YNoneexplicitvkWriteAccelerationStructuresPropertiesKHRThe buffer used to create each acceleration structure in pAccelerationStructures must be bound to memory that was not allocated with multiple instances
VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452YNoneexplicitvkWriteAccelerationStructuresPropertiesKHRdataSize must be greater than or equal to accelerationStructureCount*stride
VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylengthYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRdataSize must be greater than 0
VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRdevice must be a valid VkDevice handle
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmallexplicitvkWriteAccelerationStructuresPropertiesKHRAll acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRpAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parentYNoneimplicitvkWriteAccelerationStructuresPropertiesKHREach element of pAccelerationStructures must have been created, allocated, or retrieved from device
VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRpData must be a valid pointer to an array of dataSize bytes
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmall, NegativeRayTracing.WriteAccelerationStructuresPropertiesMaintenance1HostexplicitvkWriteAccelerationStructuresPropertiesKHRIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmallexplicitvkWriteAccelerationStructuresPropertiesKHRIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmall, NegativeRayTracing.WriteAccelerationStructuresPropertiesMaintenance1HostexplicitvkWriteAccelerationStructuresPropertiesKHRIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmallexplicitvkWriteAccelerationStructuresPropertiesKHRIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06731YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmall, NegativeRayTracing.WriteAccelerationStructuresPropertiesHostexplicitvkWriteAccelerationStructuresPropertiesKHRIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06732YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmallexplicitvkWriteAccelerationStructuresPropertiesKHRIf queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06733YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmall, NegativeRayTracing.WriteAccelerationStructuresPropertiesHostexplicitvkWriteAccelerationStructuresPropertiesKHRIf 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-06734YNegativeRayTracing.WriteAccelerationStructuresPropertiesDataSizeTooSmallexplicitvkWriteAccelerationStructuresPropertiesKHRIf 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.WriteAccelerationStructuresPropertiesMaintenance1HostexplicitvkWriteAccelerationStructuresPropertiesKHRqueryType 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-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHRqueryType must be a valid VkQueryType value
VUID-vkWriteMicromapsPropertiesEXT-buffer-07577NNoneexplicitvkWriteMicromapsPropertiesEXTThe buffer used to create each micromap in pMicromaps must be bound to host-visible device memory
VUID-vkWriteMicromapsPropertiesEXT-buffer-07579NNoneexplicitvkWriteMicromapsPropertiesEXTThe buffer used to create each micromap in pMicromaps must be bound to memory that was not allocated with multiple instances
VUID-vkWriteMicromapsPropertiesEXT-dataSize-07576NNoneexplicitvkWriteMicromapsPropertiesEXTdataSize must be greater than or equal to micromapCount*stride
VUID-vkWriteMicromapsPropertiesEXT-dataSize-arraylengthYNoneimplicitvkWriteMicromapsPropertiesEXTdataSize must be greater than 0
VUID-vkWriteMicromapsPropertiesEXT-device-parameterYNoneimplicitvkWriteMicromapsPropertiesEXTdevice must be a valid VkDevice handle
VUID-vkWriteMicromapsPropertiesEXT-micromapCount-arraylengthYNoneimplicitvkWriteMicromapsPropertiesEXTmicromapCount must be greater than 0
VUID-vkWriteMicromapsPropertiesEXT-micromapHostCommands-07578NNoneexplicitvkWriteMicromapsPropertiesEXTThe VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkWriteMicromapsPropertiesEXT-pData-parameterYNoneimplicitvkWriteMicromapsPropertiesEXTpData must be a valid pointer to an array of dataSize bytes
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07501NNoneexplicitvkWriteMicromapsPropertiesEXTAll micromaps in pMicromaps must have been constructed prior to the execution of this command
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07502NNoneexplicitvkWriteMicromapsPropertiesEXTAll 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-parameterYNoneimplicitvkWriteMicromapsPropertiesEXTpMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parentYNoneimplicitvkWriteMicromapsPropertiesEXTEach element of pMicromaps must have been created, allocated, or retrieved from device
VUID-vkWriteMicromapsPropertiesEXT-queryType-07503NNoneexplicitvkWriteMicromapsPropertiesEXTqueryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT
VUID-vkWriteMicromapsPropertiesEXT-queryType-10071NNoneexplicitvkWriteMicromapsPropertiesEXTIf queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteMicromapsPropertiesEXT-queryType-10072NNoneexplicitvkWriteMicromapsPropertiesEXTIf queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT then pData must point to a VkDeviceSize
VUID-vkWriteMicromapsPropertiesEXT-queryType-parameterYNoneimplicitvkWriteMicromapsPropertiesEXTqueryType must be a valid VkQueryType value